From 16bc4e9ab924b4ce797052fc8d6d09ffcf957eab Mon Sep 17 00:00:00 2001 From: legrand Date: Fri, 6 Jul 2007 08:57:41 +0000 Subject: [PATCH] added moeo for 1.0-beta version git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@561 331e1502-861f-0410-8da2-ba01fb791d7f --- .../paradiseo-moeo/AUTHORS | 4 + .../paradiseo-moeo/CMakeLists.txt | 111 ++++ .../paradiseo-moeo/NEWS | 1 + .../paradiseo-moeo/README | 69 ++ .../paradiseo-moeo/doc/CMakeLists.txt | 38 ++ .../doc/html/MOEO_8h-source.html | 230 +++++++ .../paradiseo-moeo/doc/html/annotated.html | 118 ++++ .../doc/html/classMOEO-members.html | 86 +++ .../paradiseo-moeo/doc/html/classMOEO.html | 388 +++++++++++ .../paradiseo-moeo/doc/html/classMOEO.png | Bin 0 -> 4369 bytes .../paradiseo-moeo/doc/html/classes.html | 56 ++ ...oAchievementFitnessAssignment-members.html | 51 ++ ...classmoeoAchievementFitnessAssignment.html | 344 ++++++++++ .../classmoeoAchievementFitnessAssignment.png | Bin 0 -> 1898 bytes ...eoAdditiveEpsilonBinaryMetric-members.html | 47 ++ .../classmoeoAdditiveEpsilonBinaryMetric.html | 171 +++++ .../classmoeoAdditiveEpsilonBinaryMetric.png | Bin 0 -> 2698 bytes ...lassmoeoAggregativeComparator-members.html | 44 ++ .../html/classmoeoAggregativeComparator.html | 162 +++++ .../html/classmoeoAggregativeComparator.png | Bin 0 -> 1050 bytes .../doc/html/classmoeoAlgo.html | 61 ++ .../paradiseo-moeo/doc/html/classmoeoAlgo.png | Bin 0 -> 1962 bytes .../doc/html/classmoeoArchive-members.html | 80 +++ .../doc/html/classmoeoArchive.html | 324 ++++++++++ .../doc/html/classmoeoArchive.png | Bin 0 -> 1084 bytes ...eObjectiveVectorSavingUpdater-members.html | 49 ++ ...eoArchiveObjectiveVectorSavingUpdater.html | 145 +++++ ...oeoArchiveObjectiveVectorSavingUpdater.png | Bin 0 -> 1285 bytes .../html/classmoeoArchiveUpdater-members.html | 46 ++ .../doc/html/classmoeoArchiveUpdater.html | 119 ++++ .../doc/html/classmoeoArchiveUpdater.png | Bin 0 -> 799 bytes ...dicatorBasedFitnessAssignment-members.html | 43 ++ ...BinaryIndicatorBasedFitnessAssignment.html | 62 ++ ...oBinaryIndicatorBasedFitnessAssignment.png | Bin 0 -> 2163 bytes .../html/classmoeoBinaryMetric-members.html | 40 ++ .../doc/html/classmoeoBinaryMetric.html | 71 +++ .../doc/html/classmoeoBinaryMetric.png | Bin 0 -> 5892 bytes ...moeoBinaryMetricSavingUpdater-members.html | 51 ++ .../classmoeoBinaryMetricSavingUpdater.html | 148 +++++ .../classmoeoBinaryMetricSavingUpdater.png | Bin 0 -> 1154 bytes .../doc/html/classmoeoBitVector-members.html | 86 +++ .../doc/html/classmoeoBitVector.html | 186 ++++++ .../doc/html/classmoeoBitVector.png | Bin 0 -> 2539 bytes .../doc/html/classmoeoCombinedLS-members.html | 43 ++ .../doc/html/classmoeoCombinedLS.html | 190 ++++++ .../doc/html/classmoeoCombinedLS.png | Bin 0 -> 1797 bytes .../doc/html/classmoeoComparator-members.html | 40 ++ .../doc/html/classmoeoComparator.html | 64 ++ .../doc/html/classmoeoComparator.png | Bin 0 -> 3417 bytes .../classmoeoContributionMetric-members.html | 45 ++ .../doc/html/classmoeoContributionMetric.html | 262 ++++++++ .../doc/html/classmoeoContributionMetric.png | Bin 0 -> 2274 bytes ...oConvertPopToObjectiveVectors-members.html | 41 ++ ...classmoeoConvertPopToObjectiveVectors.html | 95 +++ .../classmoeoConvertPopToObjectiveVectors.png | Bin 0 -> 1170 bytes ...iterionBasedFitnessAssignment-members.html | 43 ++ ...ssmoeoCriterionBasedFitnessAssignment.html | 60 ++ ...assmoeoCriterionBasedFitnessAssignment.png | Bin 0 -> 1503 bytes ...eoCrowdingDiversityAssignment-members.html | 46 ++ .../classmoeoCrowdingDiversityAssignment.html | 204 ++++++ .../classmoeoCrowdingDiversityAssignment.png | Bin 0 -> 1893 bytes .../classmoeoDetTournamentSelect-members.html | 47 ++ .../html/classmoeoDetTournamentSelect.html | 196 ++++++ .../doc/html/classmoeoDetTournamentSelect.png | Bin 0 -> 1070 bytes .../doc/html/classmoeoDistance-members.html | 43 ++ .../doc/html/classmoeoDistance.html | 197 ++++++ .../doc/html/classmoeoDistance.png | Bin 0 -> 1238 bytes .../html/classmoeoDistanceMatrix-members.html | 42 ++ .../doc/html/classmoeoDistanceMatrix.html | 149 +++++ .../doc/html/classmoeoDistanceMatrix.png | Bin 0 -> 889 bytes .../classmoeoDiversityAssignment-members.html | 43 ++ .../html/classmoeoDiversityAssignment.html | 163 +++++ .../doc/html/classmoeoDiversityAssignment.png | Bin 0 -> 3296 bytes ...iversityThenFitnessComparator-members.html | 41 ++ ...assmoeoDiversityThenFitnessComparator.html | 106 +++ ...lassmoeoDiversityThenFitnessComparator.png | Bin 0 -> 1406 bytes ...smoeoDummyDiversityAssignment-members.html | 43 ++ .../classmoeoDummyDiversityAssignment.html | 149 +++++ .../classmoeoDummyDiversityAssignment.png | Bin 0 -> 1273 bytes ...assmoeoDummyFitnessAssignment-members.html | 43 ++ .../html/classmoeoDummyFitnessAssignment.html | 149 +++++ .../html/classmoeoDummyFitnessAssignment.png | Bin 0 -> 1225 bytes .../doc/html/classmoeoEA-members.html | 40 ++ .../paradiseo-moeo/doc/html/classmoeoEA.html | 65 ++ .../paradiseo-moeo/doc/html/classmoeoEA.png | Bin 0 -> 2158 bytes .../doc/html/classmoeoEasyEA-members.html | 62 ++ .../doc/html/classmoeoEasyEA.html | 599 +++++++++++++++++ .../doc/html/classmoeoEasyEA.png | Bin 0 -> 1292 bytes ...lassmoeoEasyEA_1_1eoDummyEval-members.html | 43 ++ .../html/classmoeoEasyEA_1_1eoDummyEval.html | 67 ++ .../html/classmoeoEasyEA_1_1eoDummyEval.png | Bin 0 -> 979 bytes ...ssmoeoEasyEA_1_1eoDummySelect-members.html | 41 ++ .../classmoeoEasyEA_1_1eoDummySelect.html | 67 ++ .../html/classmoeoEasyEA_1_1eoDummySelect.png | Bin 0 -> 1019 bytes ...oeoEasyEA_1_1eoDummyTransform-members.html | 41 ++ .../classmoeoEasyEA_1_1eoDummyTransform.html | 67 ++ .../classmoeoEasyEA_1_1eoDummyTransform.png | Bin 0 -> 1125 bytes .../classmoeoElitistReplacement-members.html | 50 ++ .../doc/html/classmoeoElitistReplacement.html | 310 +++++++++ .../doc/html/classmoeoElitistReplacement.png | Bin 0 -> 1073 bytes ...moeoElitistReplacement_1_1Cmp-members.html | 39 ++ .../classmoeoElitistReplacement_1_1Cmp.html | 100 +++ .../html/classmoeoEntropyMetric-members.html | 50 ++ .../doc/html/classmoeoEntropyMetric.html | 303 +++++++++ .../doc/html/classmoeoEntropyMetric.png | Bin 0 -> 2280 bytes ...smoeoEnvironmentalReplacement-members.html | 51 ++ .../classmoeoEnvironmentalReplacement.html | 315 +++++++++ .../classmoeoEnvironmentalReplacement.png | Bin 0 -> 1438 bytes ...vironmentalReplacement_1_1Cmp-members.html | 39 ++ ...ssmoeoEnvironmentalReplacement_1_1Cmp.html | 100 +++ .../classmoeoEuclideanDistance-members.html | 48 ++ .../doc/html/classmoeoEuclideanDistance.html | 116 ++++ .../doc/html/classmoeoEuclideanDistance.png | Bin 0 -> 1292 bytes .../doc/html/classmoeoEvalFunc-members.html | 42 ++ .../doc/html/classmoeoEvalFunc.html | 55 ++ .../doc/html/classmoeoEvalFunc.png | Bin 0 -> 847 bytes ...dicatorBasedFitnessAssignment-members.html | 52 ++ ...BinaryIndicatorBasedFitnessAssignment.html | 416 ++++++++++++ ...pBinaryIndicatorBasedFitnessAssignment.png | Bin 0 -> 1896 bytes ...natedSortingFitnessAssignment-members.html | 51 ++ ...tNonDominatedSortingFitnessAssignment.html | 325 ++++++++++ ...stNonDominatedSortingFitnessAssignment.png | Bin 0 -> 1684 bytes ...gnment_1_1ObjectiveComparator-members.html | 42 ++ ...nessAssignment_1_1ObjectiveComparator.html | 114 ++++ ...tnessAssignment_1_1ObjectiveComparator.png | Bin 0 -> 1663 bytes .../classmoeoFitnessAssignment-members.html | 43 ++ .../doc/html/classmoeoFitnessAssignment.html | 168 +++++ .../doc/html/classmoeoFitnessAssignment.png | Bin 0 -> 5201 bytes ...itnessThenDiversityComparator-members.html | 41 ++ ...assmoeoFitnessThenDiversityComparator.html | 106 +++ ...lassmoeoFitnessThenDiversityComparator.png | Bin 0 -> 1402 bytes ...ntCrowdingDiversityAssignment-members.html | 47 ++ ...ontByFrontCrowdingDiversityAssignment.html | 200 ++++++ ...rontByFrontCrowdingDiversityAssignment.png | Bin 0 -> 1874 bytes ...ontSharingDiversityAssignment-members.html | 53 ++ ...rontByFrontSharingDiversityAssignment.html | 248 +++++++ ...FrontByFrontSharingDiversityAssignment.png | Bin 0 -> 1895 bytes ...anceObjectiveVectorComparator-members.html | 45 ++ ...eoGDominanceObjectiveVectorComparator.html | 194 ++++++ ...oeoGDominanceObjectiveVectorComparator.png | Bin 0 -> 1559 bytes ...ssmoeoGenerationalReplacement-members.html | 42 ++ .../classmoeoGenerationalReplacement.html | 113 ++++ .../html/classmoeoGenerationalReplacement.png | Bin 0 -> 2064 bytes .../doc/html/classmoeoHybridLS-members.html | 48 ++ .../doc/html/classmoeoHybridLS.html | 141 ++++ .../doc/html/classmoeoHybridLS.png | Bin 0 -> 750 bytes ...ssmoeoHypervolumeBinaryMetric-members.html | 50 ++ .../classmoeoHypervolumeBinaryMetric.html | 225 +++++++ .../html/classmoeoHypervolumeBinaryMetric.png | Bin 0 -> 2681 bytes .../doc/html/classmoeoIBEA-members.html | 57 ++ .../doc/html/classmoeoIBEA.html | 498 +++++++++++++++ .../paradiseo-moeo/doc/html/classmoeoIBEA.png | Bin 0 -> 1377 bytes ...dicatorBasedFitnessAssignment-members.html | 43 ++ ...ssmoeoIndicatorBasedFitnessAssignment.html | 63 ++ ...assmoeoIndicatorBasedFitnessAssignment.png | Bin 0 -> 2885 bytes .../doc/html/classmoeoLS-members.html | 40 ++ .../paradiseo-moeo/doc/html/classmoeoLS.html | 63 ++ .../paradiseo-moeo/doc/html/classmoeoLS.png | Bin 0 -> 1810 bytes .../classmoeoManhattanDistance-members.html | 48 ++ .../doc/html/classmoeoManhattanDistance.html | 116 ++++ .../doc/html/classmoeoManhattanDistance.png | Bin 0 -> 1294 bytes .../doc/html/classmoeoMetric-members.html | 37 ++ .../doc/html/classmoeoMetric.html | 63 ++ .../doc/html/classmoeoMetric.png | Bin 0 -> 6647 bytes .../doc/html/classmoeoNSGA-members.html | 56 ++ .../doc/html/classmoeoNSGA.html | 457 +++++++++++++ .../paradiseo-moeo/doc/html/classmoeoNSGA.png | Bin 0 -> 1449 bytes .../doc/html/classmoeoNSGAII-members.html | 56 ++ .../doc/html/classmoeoNSGAII.html | 422 ++++++++++++ .../doc/html/classmoeoNSGAII.png | Bin 0 -> 1286 bytes .../classmoeoNormalizedDistance-members.html | 47 ++ .../doc/html/classmoeoNormalizedDistance.html | 220 +++++++ .../doc/html/classmoeoNormalizedDistance.png | Bin 0 -> 1213 bytes ...olutionVsSolutionBinaryMetric-members.html | 45 ++ ...malizedSolutionVsSolutionBinaryMetric.html | 178 ++++++ ...rmalizedSolutionVsSolutionBinaryMetric.png | Bin 0 -> 2692 bytes ...tiveObjectiveVectorComparator-members.html | 41 ++ ...oeoObjectiveObjectiveVectorComparator.html | 106 +++ ...moeoObjectiveObjectiveVectorComparator.png | Bin 0 -> 1308 bytes .../classmoeoObjectiveVector-members.html | 44 ++ .../doc/html/classmoeoObjectiveVector.html | 222 +++++++ ...moeoObjectiveVectorComparator-members.html | 40 ++ .../classmoeoObjectiveVectorComparator.html | 64 ++ .../classmoeoObjectiveVectorComparator.png | Bin 0 -> 2533 bytes ...lassmoeoObjectiveVectorTraits-members.html | 43 ++ .../html/classmoeoObjectiveVectorTraits.html | 183 ++++++ ...assmoeoOneObjectiveComparator-members.html | 43 ++ .../html/classmoeoOneObjectiveComparator.html | 150 +++++ .../html/classmoeoOneObjectiveComparator.png | Bin 0 -> 1066 bytes ...oParetoBasedFitnessAssignment-members.html | 43 ++ ...classmoeoParetoBasedFitnessAssignment.html | 61 ++ .../classmoeoParetoBasedFitnessAssignment.png | Bin 0 -> 1875 bytes ...retoObjectiveVectorComparator-members.html | 41 ++ ...ssmoeoParetoObjectiveVectorComparator.html | 106 +++ ...assmoeoParetoObjectiveVectorComparator.png | Bin 0 -> 1501 bytes .../html/classmoeoRandomSelect-members.html | 45 ++ .../doc/html/classmoeoRandomSelect.html | 74 +++ .../doc/html/classmoeoRandomSelect.png | Bin 0 -> 1901 bytes .../classmoeoRealObjectiveVector-members.html | 53 ++ .../html/classmoeoRealObjectiveVector.html | 351 ++++++++++ .../doc/html/classmoeoRealObjectiveVector.png | Bin 0 -> 890 bytes .../doc/html/classmoeoRealVector-members.html | 86 +++ .../doc/html/classmoeoRealVector.html | 113 ++++ .../doc/html/classmoeoRealVector.png | Bin 0 -> 2896 bytes .../html/classmoeoReplacement-members.html | 40 ++ .../doc/html/classmoeoReplacement.html | 63 ++ .../doc/html/classmoeoReplacement.png | Bin 0 -> 2429 bytes .../html/classmoeoRouletteSelect-members.html | 44 ++ .../doc/html/classmoeoRouletteSelect.html | 144 +++++ .../doc/html/classmoeoRouletteSelect.png | Bin 0 -> 1009 bytes ...ssmoeoScalarFitnessAssignment-members.html | 43 ++ .../classmoeoScalarFitnessAssignment.html | 61 ++ .../html/classmoeoScalarFitnessAssignment.png | Bin 0 -> 1934 bytes ...classmoeoSelectFromPopAndArch-members.html | 49 ++ .../html/classmoeoSelectFromPopAndArch.html | 201 ++++++ .../html/classmoeoSelectFromPopAndArch.png | Bin 0 -> 1109 bytes .../doc/html/classmoeoSelectOne-members.html | 41 ++ .../doc/html/classmoeoSelectOne.html | 65 ++ .../doc/html/classmoeoSelectOne.png | Bin 0 -> 2926 bytes ...oeoSharingDiversityAssignment-members.html | 51 ++ .../classmoeoSharingDiversityAssignment.html | 347 ++++++++++ .../classmoeoSharingDiversityAssignment.png | Bin 0 -> 1935 bytes .../classmoeoSolutionUnaryMetric-members.html | 40 ++ .../html/classmoeoSolutionUnaryMetric.html | 62 ++ .../doc/html/classmoeoSolutionUnaryMetric.png | Bin 0 -> 2041 bytes ...olutionVsSolutionBinaryMetric-members.html | 40 ++ ...assmoeoSolutionVsSolutionBinaryMetric.html | 63 ++ ...lassmoeoSolutionVsSolutionBinaryMetric.png | Bin 0 -> 2700 bytes ...lassmoeoStochTournamentSelect-members.html | 47 ++ .../html/classmoeoStochTournamentSelect.html | 196 ++++++ .../html/classmoeoStochTournamentSelect.png | Bin 0 -> 1089 bytes ...dicatorBasedFitnessAssignment-members.html | 43 ++ ...oUnaryIndicatorBasedFitnessAssignment.html | 61 ++ ...eoUnaryIndicatorBasedFitnessAssignment.png | Bin 0 -> 1628 bytes .../html/classmoeoUnaryMetric-members.html | 40 ++ .../doc/html/classmoeoUnaryMetric.html | 61 ++ .../doc/html/classmoeoUnaryMetric.png | Bin 0 -> 956 bytes .../doc/html/classmoeoVector-members.html | 85 +++ .../doc/html/classmoeoVector.html | 264 ++++++++ .../doc/html/classmoeoVector.png | Bin 0 -> 2359 bytes .../classmoeoVectorUnaryMetric-members.html | 40 ++ .../doc/html/classmoeoVectorUnaryMetric.html | 62 ++ .../doc/html/classmoeoVectorUnaryMetric.png | Bin 0 -> 2011 bytes ...oeoVectorVsVectorBinaryMetric-members.html | 40 ++ .../classmoeoVectorVsVectorBinaryMetric.html | 62 ++ .../classmoeoVectorVsVectorBinaryMetric.png | Bin 0 -> 1856 bytes .../paradiseo-moeo/doc/html/doxygen.css | 358 +++++++++++ .../paradiseo-moeo/doc/html/doxygen.png | Bin 0 -> 1281 bytes .../paradiseo-moeo/doc/html/files.html | 105 +++ .../paradiseo-moeo/doc/html/ftv2blank.png | Bin 0 -> 174 bytes .../paradiseo-moeo/doc/html/ftv2doc.png | Bin 0 -> 255 bytes .../doc/html/ftv2folderclosed.png | Bin 0 -> 259 bytes .../doc/html/ftv2folderopen.png | Bin 0 -> 261 bytes .../paradiseo-moeo/doc/html/ftv2lastnode.png | Bin 0 -> 233 bytes .../paradiseo-moeo/doc/html/ftv2link.png | Bin 0 -> 358 bytes .../paradiseo-moeo/doc/html/ftv2mlastnode.png | Bin 0 -> 160 bytes .../paradiseo-moeo/doc/html/ftv2mnode.png | Bin 0 -> 194 bytes .../paradiseo-moeo/doc/html/ftv2node.png | Bin 0 -> 235 bytes .../paradiseo-moeo/doc/html/ftv2plastnode.png | Bin 0 -> 165 bytes .../paradiseo-moeo/doc/html/ftv2pnode.png | Bin 0 -> 200 bytes .../paradiseo-moeo/doc/html/ftv2vertline.png | Bin 0 -> 229 bytes .../paradiseo-moeo/doc/html/functions.html | 294 +++++++++ .../doc/html/functions_func.html | 202 ++++++ .../doc/html/functions_type.html | 54 ++ .../doc/html/functions_vars.html | 181 ++++++ .../paradiseo-moeo/doc/html/hierarchy.html | 296 +++++++++ .../paradiseo-moeo/doc/html/index.html | 8 + .../doc/html/index_8h-source.html | 29 + .../paradiseo-moeo/doc/html/installdox | 117 ++++ .../paradiseo-moeo/doc/html/main.html | 38 ++ .../make__checkpoint__moeo_8h-source.html | 189 ++++++ .../html/make__continue__moeo_8h-source.html | 123 ++++ .../doc/html/make__ea__moeo_8h-source.html | 291 +++++++++ ...chievementFitnessAssignment_8h-source.html | 135 ++++ ...AdditiveEpsilonBinaryMetric_8h-source.html | 92 +++ .../moeoAggregativeComparator_8h-source.html | 68 ++ .../doc/html/moeoAlgo_8h-source.html | 46 ++ ...bjectiveVectorSavingUpdater_8h-source.html | 104 +++ .../html/moeoArchiveUpdater_8h-source.html | 69 ++ .../doc/html/moeoArchive_8h-source.html | 172 +++++ ...catorBasedFitnessAssignment_8h-source.html | 49 ++ ...eoBinaryMetricSavingUpdater_8h-source.html | 98 +++ .../doc/html/moeoBitVector_8h-source.html | 92 +++ .../doc/html/moeoCombinedLS_8h-source.html | 76 +++ .../doc/html/moeoComparator_8h-source.html | 49 ++ .../moeoContributionMetric_8h-source.html | 110 ++++ ...onvertPopToObjectiveVectors_8h-source.html | 65 ++ ...erionBasedFitnessAssignment_8h-source.html | 49 ++ ...CrowdingDiversityAssignment_8h-source.html | 124 ++++ .../moeoDetTournamentSelect_8h-source.html | 92 +++ .../html/moeoDistanceMatrix_8h-source.html | 91 +++ .../doc/html/moeoDistance_8h-source.html | 64 ++ .../moeoDiversityAssignment_8h-source.html | 65 ++ ...ersityThenFitnessComparator_8h-source.html | 65 ++ ...oeoDummyDiversityAssignment_8h-source.html | 74 +++ .../moeoDummyFitnessAssignment_8h-source.html | 74 +++ .../doc/html/moeoEA_8h-source.html | 50 ++ .../doc/html/moeoEasyEA_8h-source.html | 169 +++++ .../moeoElitistReplacement_8h-source.html | 114 ++++ .../doc/html/moeoEntropyMetric_8h-source.html | 174 +++++ ...oeoEnvironmentalReplacement_8h-source.html | 128 ++++ .../html/moeoEuclideanDistance_8h-source.html | 75 +++ .../doc/html/moeoEvalFunc_8h-source.html | 52 ++ ...catorBasedFitnessAssignment_8h-source.html | 185 ++++++ ...tedSortingFitnessAssignment_8h-source.html | 222 +++++++ .../html/moeoFitnessAssignment_8h-source.html | 65 ++ ...nessThenDiversityComparator_8h-source.html | 65 ++ ...CrowdingDiversityAssignment_8h-source.html | 139 ++++ ...tSharingDiversityAssignment_8h-source.html | 108 ++++ ...ceObjectiveVectorComparator_8h-source.html | 109 ++++ ...moeoGenerationalReplacement_8h-source.html | 59 ++ .../doc/html/moeoHybridLS_8h-source.html | 86 +++ ...moeoHypervolumeBinaryMetric_8h-source.html | 141 ++++ .../doc/html/moeoIBEA_8h-source.html | 133 ++++ ...catorBasedFitnessAssignment_8h-source.html | 49 ++ .../doc/html/moeoLS_8h-source.html | 51 ++ .../html/moeoManhattanDistance_8h-source.html | 75 +++ .../doc/html/moeoMetric_8h-source.html | 74 +++ .../doc/html/moeoNSGAII_8h-source.html | 128 ++++ .../doc/html/moeoNSGA_8h-source.html | 128 ++++ .../moeoNormalizedDistance_8h-source.html | 114 ++++ ...utionVsSolutionBinaryMetric_8h-source.html | 93 +++ ...veObjectiveVectorComparator_8h-source.html | 72 +++ ...eoObjectiveVectorComparator_8h-source.html | 50 ++ ...moeoObjectiveVectorTraits_8cpp-source.html | 45 ++ .../moeoObjectiveVectorTraits_8h-source.html | 107 ++++ .../html/moeoObjectiveVector_8h-source.html | 88 +++ .../moeoOneObjectiveComparator_8h-source.html | 72 +++ ...aretoBasedFitnessAssignment_8h-source.html | 49 ++ ...toObjectiveVectorComparator_8h-source.html | 90 +++ .../doc/html/moeoRandomSelect_8h-source.html | 62 ++ .../moeoRealObjectiveVector_8h-source.html | 140 ++++ .../doc/html/moeoRealVector_8h-source.html | 62 ++ .../doc/html/moeoReplacement_8h-source.html | 49 ++ .../html/moeoRouletteSelect_8h-source.html | 77 +++ ...moeoScalarFitnessAssignment_8h-source.html | 49 ++ .../moeoSelectFromPopAndArch_8h-source.html | 93 +++ .../doc/html/moeoSelectOne_8h-source.html | 49 ++ .../doc/html/moeoSelectors_8h-source.html | 186 ++++++ ...oSharingDiversityAssignment_8h-source.html | 131 ++++ .../moeoStochTournamentSelect_8h-source.html | 100 +++ ...catorBasedFitnessAssignment_8h-source.html | 49 ++ .../doc/html/moeoVector_8h-source.html | 134 ++++ .../paradiseo-moeo/doc/html/search.idx | Bin 0 -> 530774 bytes .../paradiseo-moeo/doc/html/search.php | 381 +++++++++++ .../paradiseo-moeo/doc/html/tab_b.gif | Bin 0 -> 35 bytes .../paradiseo-moeo/doc/html/tab_l.gif | Bin 0 -> 706 bytes .../paradiseo-moeo/doc/html/tab_r.gif | Bin 0 -> 2585 bytes .../paradiseo-moeo/doc/html/tabs.css | 102 +++ .../paradiseo-moeo/doc/html/tree.html | 495 ++++++++++++++ .../paradiseo-moeo/doc/index.h | 44 ++ .../paradiseo-moeo/doc/latex/FreeSans.ttf | Bin 0 -> 22932 bytes .../paradiseo-moeo/doc/latex/Makefile | 39 ++ .../paradiseo-moeo/doc/latex/annotated.tex | 84 +++ .../paradiseo-moeo/doc/latex/classMOEO.eps | 243 +++++++ .../paradiseo-moeo/doc/latex/classMOEO.tex | 226 +++++++ .../classmoeoAchievementFitnessAssignment.eps | 215 +++++++ .../classmoeoAchievementFitnessAssignment.tex | 172 +++++ .../classmoeoAdditiveEpsilonBinaryMetric.eps | 233 +++++++ .../classmoeoAdditiveEpsilonBinaryMetric.tex | 78 +++ .../latex/classmoeoAggregativeComparator.eps | 209 ++++++ .../latex/classmoeoAggregativeComparator.tex | 79 +++ .../doc/latex/classmoeoAlgo.eps | 229 +++++++ .../doc/latex/classmoeoAlgo.tex | 25 + .../doc/latex/classmoeoArchive.eps | 215 +++++++ .../doc/latex/classmoeoArchive.tex | 170 +++++ ...oeoArchiveObjectiveVectorSavingUpdater.eps | 209 ++++++ ...oeoArchiveObjectiveVectorSavingUpdater.tex | 70 ++ .../doc/latex/classmoeoArchiveUpdater.eps | 209 ++++++ .../doc/latex/classmoeoArchiveUpdater.tex | 61 ++ ...oBinaryIndicatorBasedFitnessAssignment.eps | 221 +++++++ ...oBinaryIndicatorBasedFitnessAssignment.tex | 27 + .../doc/latex/classmoeoBinaryMetric.eps | 271 ++++++++ .../doc/latex/classmoeoBinaryMetric.tex | 27 + .../classmoeoBinaryMetricSavingUpdater.eps | 209 ++++++ .../classmoeoBinaryMetricSavingUpdater.tex | 79 +++ .../doc/latex/classmoeoBitVector.eps | 227 +++++++ .../doc/latex/classmoeoBitVector.tex | 91 +++ .../doc/latex/classmoeoCombinedLS.eps | 215 +++++++ .../doc/latex/classmoeoCombinedLS.tex | 98 +++ .../doc/latex/classmoeoComparator.eps | 227 +++++++ .../doc/latex/classmoeoComparator.tex | 27 + .../doc/latex/classmoeoContributionMetric.eps | 227 +++++++ .../doc/latex/classmoeoContributionMetric.tex | 120 ++++ .../classmoeoConvertPopToObjectiveVectors.eps | 203 ++++++ .../classmoeoConvertPopToObjectiveVectors.tex | 49 ++ ...assmoeoCriterionBasedFitnessAssignment.eps | 209 ++++++ ...assmoeoCriterionBasedFitnessAssignment.tex | 27 + .../classmoeoCrowdingDiversityAssignment.eps | 215 +++++++ .../classmoeoCrowdingDiversityAssignment.tex | 114 ++++ .../latex/classmoeoDetTournamentSelect.eps | 215 +++++++ .../latex/classmoeoDetTournamentSelect.tex | 102 +++ .../doc/latex/classmoeoDistance.eps | 209 ++++++ .../doc/latex/classmoeoDistance.tex | 87 +++ .../doc/latex/classmoeoDistanceMatrix.eps | 203 ++++++ .../doc/latex/classmoeoDistanceMatrix.tex | 78 +++ .../latex/classmoeoDiversityAssignment.eps | 231 +++++++ .../latex/classmoeoDiversityAssignment.tex | 75 +++ ...lassmoeoDiversityThenFitnessComparator.eps | 209 ++++++ ...lassmoeoDiversityThenFitnessComparator.tex | 49 ++ .../classmoeoDummyDiversityAssignment.eps | 209 ++++++ .../classmoeoDummyDiversityAssignment.tex | 75 +++ .../latex/classmoeoDummyFitnessAssignment.eps | 209 ++++++ .../latex/classmoeoDummyFitnessAssignment.tex | 75 +++ .../paradiseo-moeo/doc/latex/classmoeoEA.eps | 235 +++++++ .../paradiseo-moeo/doc/latex/classmoeoEA.tex | 27 + .../doc/latex/classmoeoEasyEA.eps | 221 +++++++ .../doc/latex/classmoeoEasyEA.tex | 194 ++++++ .../latex/classmoeoEasyEA_1_1eoDummyEval.eps | 209 ++++++ .../latex/classmoeoEasyEA_1_1eoDummyEval.tex | 33 + .../classmoeoEasyEA_1_1eoDummySelect.eps | 209 ++++++ .../classmoeoEasyEA_1_1eoDummySelect.tex | 33 + .../classmoeoEasyEA_1_1eoDummyTransform.eps | 209 ++++++ .../classmoeoEasyEA_1_1eoDummyTransform.tex | 33 + .../doc/latex/classmoeoElitistReplacement.eps | 215 +++++++ .../doc/latex/classmoeoElitistReplacement.tex | 141 ++++ .../classmoeoElitistReplacement_1_1Cmp.tex | 52 ++ .../doc/latex/classmoeoEntropyMetric.eps | 227 +++++++ .../doc/latex/classmoeoEntropyMetric.tex | 152 +++++ .../classmoeoEnvironmentalReplacement.eps | 215 +++++++ .../classmoeoEnvironmentalReplacement.tex | 147 +++++ ...assmoeoEnvironmentalReplacement_1_1Cmp.tex | 52 ++ .../doc/latex/classmoeoEuclideanDistance.eps | 215 +++++++ .../doc/latex/classmoeoEuclideanDistance.tex | 59 ++ .../doc/latex/classmoeoEvalFunc.eps | 209 ++++++ .../doc/latex/classmoeoEvalFunc.tex | 22 + ...pBinaryIndicatorBasedFitnessAssignment.eps | 221 +++++++ ...pBinaryIndicatorBasedFitnessAssignment.tex | 213 +++++++ ...stNonDominatedSortingFitnessAssignment.eps | 215 +++++++ ...stNonDominatedSortingFitnessAssignment.tex | 179 ++++++ ...tnessAssignment_1_1ObjectiveComparator.eps | 209 ++++++ ...tnessAssignment_1_1ObjectiveComparator.tex | 55 ++ .../doc/latex/classmoeoFitnessAssignment.eps | 257 ++++++++ .../doc/latex/classmoeoFitnessAssignment.tex | 75 +++ ...lassmoeoFitnessThenDiversityComparator.eps | 209 ++++++ ...lassmoeoFitnessThenDiversityComparator.tex | 49 ++ ...rontByFrontCrowdingDiversityAssignment.eps | 215 +++++++ ...rontByFrontCrowdingDiversityAssignment.tex | 102 +++ ...FrontByFrontSharingDiversityAssignment.eps | 215 +++++++ ...FrontByFrontSharingDiversityAssignment.tex | 117 ++++ ...oeoGDominanceObjectiveVectorComparator.eps | 209 ++++++ ...oeoGDominanceObjectiveVectorComparator.tex | 104 +++ .../classmoeoGenerationalReplacement.eps | 239 +++++++ .../classmoeoGenerationalReplacement.tex | 51 ++ .../doc/latex/classmoeoHybridLS.eps | 209 ++++++ .../doc/latex/classmoeoHybridLS.tex | 67 ++ .../classmoeoHypervolumeBinaryMetric.eps | 233 +++++++ .../classmoeoHypervolumeBinaryMetric.tex | 108 ++++ .../doc/latex/classmoeoIBEA.eps | 221 +++++++ .../doc/latex/classmoeoIBEA.tex | 175 +++++ ...assmoeoIndicatorBasedFitnessAssignment.eps | 227 +++++++ ...assmoeoIndicatorBasedFitnessAssignment.tex | 27 + .../paradiseo-moeo/doc/latex/classmoeoLS.eps | 215 +++++++ .../paradiseo-moeo/doc/latex/classmoeoLS.tex | 29 + .../doc/latex/classmoeoManhattanDistance.eps | 215 +++++++ .../doc/latex/classmoeoManhattanDistance.tex | 59 ++ .../doc/latex/classmoeoMetric.eps | 236 +++++++ .../doc/latex/classmoeoMetric.tex | 25 + .../doc/latex/classmoeoNSGA.eps | 221 +++++++ .../doc/latex/classmoeoNSGA.tex | 169 +++++ .../doc/latex/classmoeoNSGAII.eps | 221 +++++++ .../doc/latex/classmoeoNSGAII.tex | 169 +++++ .../doc/latex/classmoeoNormalizedDistance.eps | 209 ++++++ .../doc/latex/classmoeoNormalizedDistance.tex | 112 ++++ ...rmalizedSolutionVsSolutionBinaryMetric.eps | 227 +++++++ ...rmalizedSolutionVsSolutionBinaryMetric.tex | 84 +++ ...moeoObjectiveObjectiveVectorComparator.eps | 209 ++++++ ...moeoObjectiveObjectiveVectorComparator.tex | 49 ++ .../doc/latex/classmoeoObjectiveVector.tex | 114 ++++ .../classmoeoObjectiveVectorComparator.eps | 219 +++++++ .../classmoeoObjectiveVectorComparator.tex | 29 + .../latex/classmoeoObjectiveVectorTraits.tex | 97 +++ .../latex/classmoeoOneObjectiveComparator.eps | 209 ++++++ .../latex/classmoeoOneObjectiveComparator.tex | 78 +++ .../classmoeoParetoBasedFitnessAssignment.eps | 215 +++++++ .../classmoeoParetoBasedFitnessAssignment.tex | 27 + ...assmoeoParetoObjectiveVectorComparator.eps | 209 ++++++ ...assmoeoParetoObjectiveVectorComparator.tex | 49 ++ .../doc/latex/classmoeoRandomSelect.eps | 239 +++++++ .../doc/latex/classmoeoRandomSelect.tex | 36 ++ .../latex/classmoeoRealObjectiveVector.eps | 197 ++++++ .../latex/classmoeoRealObjectiveVector.tex | 181 ++++++ .../doc/latex/classmoeoRealVector.eps | 227 +++++++ .../doc/latex/classmoeoRealVector.tex | 52 ++ .../doc/latex/classmoeoReplacement.eps | 225 +++++++ .../doc/latex/classmoeoReplacement.tex | 27 + .../doc/latex/classmoeoRouletteSelect.eps | 215 +++++++ .../doc/latex/classmoeoRouletteSelect.tex | 82 +++ .../classmoeoScalarFitnessAssignment.eps | 215 +++++++ .../classmoeoScalarFitnessAssignment.tex | 27 + .../latex/classmoeoSelectFromPopAndArch.eps | 215 +++++++ .../latex/classmoeoSelectFromPopAndArch.tex | 89 +++ .../doc/latex/classmoeoSelectOne.eps | 233 +++++++ .../doc/latex/classmoeoSelectOne.tex | 27 + .../classmoeoSharingDiversityAssignment.eps | 215 +++++++ .../classmoeoSharingDiversityAssignment.tex | 178 ++++++ .../latex/classmoeoSolutionUnaryMetric.eps | 221 +++++++ .../latex/classmoeoSolutionUnaryMetric.tex | 27 + ...lassmoeoSolutionVsSolutionBinaryMetric.eps | 227 +++++++ ...lassmoeoSolutionVsSolutionBinaryMetric.tex | 27 + .../latex/classmoeoStochTournamentSelect.eps | 215 +++++++ .../latex/classmoeoStochTournamentSelect.tex | 102 +++ ...eoUnaryIndicatorBasedFitnessAssignment.eps | 215 +++++++ ...eoUnaryIndicatorBasedFitnessAssignment.tex | 27 + .../doc/latex/classmoeoUnaryMetric.eps | 215 +++++++ .../doc/latex/classmoeoUnaryMetric.tex | 27 + .../doc/latex/classmoeoVector.eps | 221 +++++++ .../doc/latex/classmoeoVector.tex | 135 ++++ .../doc/latex/classmoeoVectorUnaryMetric.eps | 221 +++++++ .../doc/latex/classmoeoVectorUnaryMetric.tex | 27 + .../classmoeoVectorVsVectorBinaryMetric.eps | 221 +++++++ .../classmoeoVectorVsVectorBinaryMetric.tex | 27 + .../paradiseo-moeo/doc/latex/doxygen.sty | 78 +++ .../paradiseo-moeo/doc/latex/hierarchy.tex | 230 +++++++ .../paradiseo-moeo/doc/latex/main.tex | 5 + .../paradiseo-moeo/doc/latex/refman.tex | 119 ++++ .../paradiseo-moeo/doc/man/man3/MOEO.3 | 253 ++++++++ .../man3/moeoAchievementFitnessAssignment.3 | 185 ++++++ .../man3/moeoAdditiveEpsilonBinaryMetric.3 | 86 +++ .../doc/man/man3/moeoAggregativeComparator.3 | 83 +++ .../paradiseo-moeo/doc/man/man3/moeoAlgo.3 | 23 + .../paradiseo-moeo/doc/man/man3/moeoArchive.3 | 172 +++++ .../moeoArchiveObjectiveVectorSavingUpdater.3 | 81 +++ .../doc/man/man3/moeoArchiveUpdater.3 | 65 ++ ...oeoBinaryIndicatorBasedFitnessAssignment.3 | 27 + .../doc/man/man3/moeoBinaryMetric.3 | 27 + .../man/man3/moeoBinaryMetricSavingUpdater.3 | 91 +++ .../doc/man/man3/moeoBitVector.3 | 91 +++ .../doc/man/man3/moeoCombinedLS.3 | 101 +++ .../doc/man/man3/moeoComparator.3 | 27 + .../doc/man/man3/moeoContributionMetric.3 | 129 ++++ .../man3/moeoConvertPopToObjectiveVectors.3 | 47 ++ .../moeoCriterionBasedFitnessAssignment.3 | 25 + .../man3/moeoCrowdingDiversityAssignment.3 | 126 ++++ .../doc/man/man3/moeoDetTournamentSelect.3 | 107 ++++ .../doc/man/man3/moeoDistance.3 | 93 +++ .../doc/man/man3/moeoDistanceMatrix.3 | 79 +++ .../doc/man/man3/moeoDiversityAssignment.3 | 81 +++ .../man3/moeoDiversityThenFitnessComparator.3 | 49 ++ .../man/man3/moeoDummyDiversityAssignment.3 | 77 +++ .../doc/man/man3/moeoDummyFitnessAssignment.3 | 77 +++ .../paradiseo-moeo/doc/man/man3/moeoEA.3 | 27 + .../paradiseo-moeo/doc/man/man3/moeoEasyEA.3 | 283 ++++++++ .../doc/man/man3/moeoEasyEA_eoDummyEval.3 | 33 + .../doc/man/man3/moeoEasyEA_eoDummySelect.3 | 33 + .../man/man3/moeoEasyEA_eoDummyTransform.3 | 33 + .../doc/man/man3/moeoElitistReplacement.3 | 163 +++++ .../doc/man/man3/moeoElitistReplacement_Cmp.3 | 57 ++ .../doc/man/man3/moeoEntropyMetric.3 | 163 +++++ .../man/man3/moeoEnvironmentalReplacement.3 | 171 +++++ .../man3/moeoEnvironmentalReplacement_Cmp.3 | 57 ++ .../doc/man/man3/moeoEuclideanDistance.3 | 61 ++ .../doc/man/man3/moeoEvalFunc.3 | 21 + ...ExpBinaryIndicatorBasedFitnessAssignment.3 | 223 +++++++ ...FastNonDominatedSortingFitnessAssignment.3 | 189 ++++++ ...ingFitnessAssignment_ObjectiveComparator.3 | 57 ++ .../doc/man/man3/moeoFitnessAssignment.3 | 81 +++ .../man3/moeoFitnessThenDiversityComparator.3 | 49 ++ ...oFrontByFrontCrowdingDiversityAssignment.3 | 112 ++++ ...eoFrontByFrontSharingDiversityAssignment.3 | 130 ++++ .../moeoGDominanceObjectiveVectorComparator.3 | 107 ++++ .../man/man3/moeoGenerationalReplacement.3 | 51 ++ .../doc/man/man3/moeoHybridLS.3 | 77 +++ .../man/man3/moeoHypervolumeBinaryMetric.3 | 120 ++++ .../paradiseo-moeo/doc/man/man3/moeoIBEA.3 | 231 +++++++ .../moeoIndicatorBasedFitnessAssignment.3 | 27 + .../paradiseo-moeo/doc/man/man3/moeoLS.3 | 29 + .../doc/man/man3/moeoManhattanDistance.3 | 61 ++ .../paradiseo-moeo/doc/man/man3/moeoMetric.3 | 25 + .../paradiseo-moeo/doc/man/man3/moeoNSGA.3 | 213 +++++++ .../paradiseo-moeo/doc/man/man3/moeoNSGAII.3 | 203 ++++++ .../doc/man/man3/moeoNormalizedDistance.3 | 123 ++++ ...NormalizedSolutionVsSolutionBinaryMetric.3 | 93 +++ .../moeoObjectiveObjectiveVectorComparator.3 | 49 ++ .../doc/man/man3/moeoObjectiveVector.3 | 123 ++++ .../man/man3/moeoObjectiveVectorComparator.3 | 29 + .../doc/man/man3/moeoObjectiveVectorTraits.3 | 105 +++ .../doc/man/man3/moeoOneObjectiveComparator.3 | 79 +++ .../man3/moeoParetoBasedFitnessAssignment.3 | 27 + .../moeoParetoObjectiveVectorComparator.3 | 49 ++ .../doc/man/man3/moeoRandomSelect.3 | 37 ++ .../doc/man/man3/moeoRealObjectiveVector.3 | 179 ++++++ .../doc/man/man3/moeoRealVector.3 | 53 ++ .../doc/man/man3/moeoReplacement.3 | 27 + .../doc/man/man3/moeoRouletteSelect.3 | 84 +++ .../man/man3/moeoScalarFitnessAssignment.3 | 27 + .../doc/man/man3/moeoSelectFromPopAndArch.3 | 105 +++ .../doc/man/man3/moeoSelectOne.3 | 27 + .../man/man3/moeoSharingDiversityAssignment.3 | 198 ++++++ .../doc/man/man3/moeoSolutionUnaryMetric.3 | 25 + .../man3/moeoSolutionVsSolutionBinaryMetric.3 | 27 + .../doc/man/man3/moeoStochTournamentSelect.3 | 107 ++++ ...moeoUnaryIndicatorBasedFitnessAssignment.3 | 25 + .../doc/man/man3/moeoUnaryMetric.3 | 25 + .../paradiseo-moeo/doc/man/man3/moeoVector.3 | 137 ++++ .../doc/man/man3/moeoVectorUnaryMetric.3 | 25 + .../man/man3/moeoVectorVsVectorBinaryMetric.3 | 25 + .../paradiseo-moeo/doc/moeo.doxyfile | 237 +++++++ .../paradiseo-moeo/moeo-conf.cmake | 32 + .../paradiseo-moeo/src/CMakeLists.txt | 80 +++ .../paradiseo-moeo/src/algo/moeoAlgo.h | 21 + .../paradiseo-moeo/src/algo/moeoCombinedLS.h | 67 ++ .../paradiseo-moeo/src/algo/moeoEA.h | 25 + .../paradiseo-moeo/src/algo/moeoEasyEA.h | 218 +++++++ .../paradiseo-moeo/src/algo/moeoHybridLS.h | 76 +++ .../paradiseo-moeo/src/algo/moeoIBEA.h | 168 +++++ .../paradiseo-moeo/src/algo/moeoIBMOLS.h | 280 ++++++++ .../src/algo/moeoIteratedIBMOLS.h | 215 +++++++ .../paradiseo-moeo/src/algo/moeoLS.h | 27 + .../paradiseo-moeo/src/algo/moeoNSGA.h | 158 +++++ .../paradiseo-moeo/src/algo/moeoNSGAII.h | 153 +++++ .../paradiseo-moeo/src/archive/moeoArchive.h | 180 ++++++ .../comparator/moeoAggregativeComparator.h | 55 ++ .../src/comparator/moeoComparator.h | 24 + .../moeoDiversityThenFitnessComparator.h | 45 ++ .../moeoFitnessThenDiversityComparator.h | 45 ++ .../moeoGDominanceObjectiveVectorComparator.h | 102 +++ .../moeoObjectiveObjectiveVectorComparator.h | 52 ++ .../moeoObjectiveVectorComparator.h | 26 + .../comparator/moeoOneObjectiveComparator.h | 57 ++ .../moeoParetoObjectiveVectorComparator.h | 70 ++ .../paradiseo-moeo/src/core/MOEO.h | 291 +++++++++ .../paradiseo-moeo/src/core/moeoBitVector.h | 83 +++ .../paradiseo-moeo/src/core/moeoEvalFunc.h | 24 + .../src/core/moeoObjectiveVector.h | 91 +++ .../src/core/moeoObjectiveVectorTraits.cpp | 17 + .../src/core/moeoObjectiveVectorTraits.h | 103 +++ .../src/core/moeoRealObjectiveVector.h | 166 +++++ .../paradiseo-moeo/src/core/moeoRealVector.h | 45 ++ .../paradiseo-moeo/src/core/moeoVector.h | 143 +++++ .../src/distance/moeoDistance.h | 54 ++ .../src/distance/moeoDistanceMatrix.h | 76 +++ .../src/distance/moeoEuclideanDistance.h | 58 ++ .../src/distance/moeoManhattanDistance.h | 58 ++ .../src/distance/moeoNormalizedDistance.h | 112 ++++ .../moeoCrowdingDiversityAssignment.h | 122 ++++ .../src/diversity/moeoDiversityAssignment.h | 51 ++ .../diversity/moeoDummyDiversityAssignment.h | 59 ++ ...oFrontByFrontCrowdingDiversityAssignment.h | 133 ++++ ...eoFrontByFrontSharingDiversityAssignment.h | 106 +++ .../moeoSharingDiversityAssignment.h | 142 +++++ .../src/do/make_checkpoint_moeo.h | 176 +++++ .../src/do/make_continue_moeo.h | 106 +++ .../paradiseo-moeo/src/do/make_ea_moeo.h | 272 ++++++++ .../paradiseo-moeo/src/do/make_ls_moeo.h | 120 ++++ .../moeoAchievementFitnessAssignment.h | 145 +++++ ...oeoBinaryIndicatorBasedFitnessAssignment.h | 24 + .../moeoCriterionBasedFitnessAssignment.h | 24 + .../src/fitness/moeoDummyFitnessAssignment.h | 59 ++ ...ExpBinaryIndicatorBasedFitnessAssignment.h | 202 ++++++ ...FastNonDominatedSortingFitnessAssignment.h | 239 +++++++ .../src/fitness/moeoFitnessAssignment.h | 51 ++ .../moeoIndicatorBasedFitnessAssignment.h | 24 + .../moeoParetoBasedFitnessAssignment.h | 24 + ...encePointIndicatorBasedFitnessAssignment.h | 109 ++++ .../src/fitness/moeoScalarFitnessAssignment.h | 24 + ...moeoUnaryIndicatorBasedFitnessAssignment.h | 24 + .../metric/moeoAdditiveEpsilonBinaryMetric.h | 84 +++ .../src/metric/moeoContributionMetric.h | 107 ++++ .../src/metric/moeoEntropyMetric.h | 182 ++++++ .../src/metric/moeoHypervolumeBinaryMetric.h | 141 ++++ .../paradiseo-moeo/src/metric/moeoMetric.h | 67 ++ ...NormalizedSolutionVsSolutionBinaryMetric.h | 88 +++ .../paradiseo-moeo/src/moeo | 101 +++ .../src/move/moeoMoveIncrEval.h | 11 + .../src/replacement/moeoElitistReplacement.h | 130 ++++ .../moeoEnvironmentalReplacement.h | 146 +++++ .../replacement/moeoGenerationalReplacement.h | 39 ++ .../src/replacement/moeoReplacement.h | 24 + .../src/selection/moeoDetTournamentSelect.h | 83 +++ .../src/selection/moeoRandomSelect.h | 43 ++ .../src/selection/moeoRouletteSelect.h | 62 ++ .../src/selection/moeoSelectFromPopAndArch.h | 92 +++ .../src/selection/moeoSelectOne.h | 24 + .../src/selection/moeoSelectors.h | 158 +++++ .../src/selection/moeoStochTournamentSelect.h | 91 +++ .../moeoArchiveObjectiveVectorSavingUpdater.h | 94 +++ .../src/utils/moeoArchiveUpdater.h | 54 ++ .../src/utils/moeoBinaryMetricSavingUpdater.h | 90 +++ .../utils/moeoConvertPopToObjectiveVectors.h | 44 ++ .../paradiseo-moeo/tutorial/CMakeLists.txt | 18 + .../tutorial/Lesson1/CMakeLists.txt | 140 ++++ .../tutorial/Lesson1/FlowShopEA.cpp | 107 ++++ .../tutorial/Lesson1/FlowShopEA.param | 49 ++ .../tutorial/Lesson1/Lesson1.pdf | Bin 0 -> 306994 bytes .../tutorial/Lesson2/CMakeLists.txt | 116 ++++ .../tutorial/Lesson2/Lesson2.pdf | Bin 0 -> 14412 bytes .../paradiseo-moeo/tutorial/Lesson2/Sch1.cpp | 107 ++++ .../tutorial/examples/CMakeLists.txt | 9 + .../tutorial/examples/flowshop/CMakeLists.txt | 150 +++++ .../tutorial/examples/flowshop/FlowShop.cpp | 18 + .../tutorial/examples/flowshop/FlowShop.h | 33 + .../flowshop/FlowShopBenchmarkParser.cpp | 101 +++ .../flowshop/FlowShopBenchmarkParser.h | 84 +++ .../examples/flowshop/FlowShopEval.cpp | 64 ++ .../tutorial/examples/flowshop/FlowShopEval.h | 79 +++ .../examples/flowshop/FlowShopInit.cpp | 39 ++ .../tutorial/examples/flowshop/FlowShopInit.h | 47 ++ .../flowshop/FlowShopObjectiveVector.h | 24 + .../FlowShopObjectiveVectorTraits.cpp | 32 + .../flowshop/FlowShopObjectiveVectorTraits.h | 46 ++ .../flowshop/FlowShopOpCrossoverQuad.cpp | 84 +++ .../flowshop/FlowShopOpCrossoverQuad.h | 53 ++ .../flowshop/FlowShopOpMutationExchange.cpp | 50 ++ .../flowshop/FlowShopOpMutationExchange.h | 40 ++ .../flowshop/FlowShopOpMutationShift.cpp | 60 ++ .../flowshop/FlowShopOpMutationShift.h | 40 ++ .../examples/flowshop/benchs/020_05_01.txt | 63 ++ .../examples/flowshop/benchs/020_05_02.txt | 63 ++ .../examples/flowshop/benchs/020_10_01.txt | 63 ++ .../examples/flowshop/benchs/020_10_02.txt | 63 ++ .../examples/flowshop/benchs/020_20_01.txt | 63 ++ .../examples/flowshop/benchs/050_05_01.txt | 153 +++++ .../examples/flowshop/benchs/050_10_01.txt | 153 +++++ .../examples/flowshop/benchs/050_20_01.txt | 153 +++++ .../examples/flowshop/benchs/100_05_01.txt | 303 +++++++++ .../examples/flowshop/benchs/100_10_01.txt | 303 +++++++++ .../examples/flowshop/benchs/100_20_01.txt | 303 +++++++++ .../examples/flowshop/benchs/200_10_01.txt | 603 ++++++++++++++++++ .../tutorial/examples/flowshop/benchs/README | 1 + .../examples/flowshop/make_eval_FlowShop.h | 55 ++ .../flowshop/make_genotype_FlowShop.h | 48 ++ .../examples/flowshop/make_op_FlowShop.h | 107 ++++ 723 files changed, 71050 insertions(+) create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/AUTHORS create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/CMakeLists.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/NEWS create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/README create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/CMakeLists.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/MOEO_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/annotated.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classMOEO-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classMOEO.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classMOEO.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classes.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAggregativeComparator-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAlgo.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAlgo.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchive-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchive.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchive.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveUpdater-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBitVector-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBitVector.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBitVector.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCombinedLS-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCombinedLS.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCombinedLS.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoComparator-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoComparator.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoComparator.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoContributionMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoContributionMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoContributionMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistance-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistance.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistance.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistanceMatrix-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEA-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEA.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEA.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEntropyMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEntropyMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEntropyMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEuclideanDistance-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEvalFunc-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEvalFunc.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEvalFunc.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHybridLS-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHybridLS.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHybridLS.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIBEA-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIBEA.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIBEA.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoLS-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoLS.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoLS.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoManhattanDistance-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoManhattanDistance.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoManhattanDistance.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGA-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGA.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGA.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGAII-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGAII.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGAII.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedDistance-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVector-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVector.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRandomSelect-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRandomSelect.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRandomSelect.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealVector-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealVector.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealVector.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoReplacement-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoReplacement.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoReplacement.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRouletteSelect-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRouletteSelect.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRouletteSelect.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectOne-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectOne.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectOne.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVector-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVector.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVector.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric-members.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/doxygen.css create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/doxygen.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/files.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2blank.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2doc.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2folderclosed.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2folderopen.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2lastnode.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2link.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2mlastnode.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2mnode.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2node.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2plastnode.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2pnode.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2vertline.png create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_func.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_type.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_vars.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/hierarchy.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/index.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/index_8h-source.html create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/installdox create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/main.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__checkpoint__moeo_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__continue__moeo_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__ea__moeo_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAchievementFitnessAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAdditiveEpsilonBinaryMetric_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAggregativeComparator_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAlgo_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchiveObjectiveVectorSavingUpdater_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchiveUpdater_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchive_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBinaryIndicatorBasedFitnessAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBinaryMetricSavingUpdater_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBitVector_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCombinedLS_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoComparator_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoContributionMetric_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoConvertPopToObjectiveVectors_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCriterionBasedFitnessAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCrowdingDiversityAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDetTournamentSelect_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDistanceMatrix_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDistance_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDiversityAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDiversityThenFitnessComparator_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDummyDiversityAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDummyFitnessAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEA_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEasyEA_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoElitistReplacement_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEntropyMetric_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEnvironmentalReplacement_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEuclideanDistance_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEvalFunc_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoExpBinaryIndicatorBasedFitnessAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFastNonDominatedSortingFitnessAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFitnessAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFitnessThenDiversityComparator_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFrontByFrontCrowdingDiversityAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFrontByFrontSharingDiversityAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoGDominanceObjectiveVectorComparator_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoGenerationalReplacement_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoHybridLS_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoHypervolumeBinaryMetric_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoIBEA_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoIndicatorBasedFitnessAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoLS_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoManhattanDistance_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoMetric_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNSGAII_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNSGA_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNormalizedDistance_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNormalizedSolutionVsSolutionBinaryMetric_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveObjectiveVectorComparator_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorComparator_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8cpp-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVector_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoOneObjectiveComparator_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoParetoBasedFitnessAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoParetoObjectiveVectorComparator_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRandomSelect_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRealObjectiveVector_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRealVector_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoReplacement_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRouletteSelect_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoScalarFitnessAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectFromPopAndArch_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectOne_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectors_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSharingDiversityAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoStochTournamentSelect_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoUnaryIndicatorBasedFitnessAssignment_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoVector_8h-source.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/search.idx create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/search.php create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tab_b.gif create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tab_l.gif create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tab_r.gif create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tabs.css create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tree.html create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/index.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/FreeSans.ttf create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/Makefile create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/annotated.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classMOEO.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classMOEO.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAlgo.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAlgo.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchive.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchive.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBitVector.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBitVector.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCombinedLS.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCombinedLS.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoComparator.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoComparator.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoContributionMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoContributionMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistance.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistance.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEA.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEA.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement_1_1Cmp.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement_1_1Cmp.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEvalFunc.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEvalFunc.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHybridLS.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHybridLS.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIBEA.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIBEA.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoLS.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoLS.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGA.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGA.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGAII.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGAII.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVector.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorTraits.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRandomSelect.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRandomSelect.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealVector.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealVector.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoReplacement.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoReplacement.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectOne.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectOne.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVector.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVector.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.eps create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/doxygen.sty create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/hierarchy.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/main.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/refman.tex create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/MOEO.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAchievementFitnessAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAdditiveEpsilonBinaryMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAggregativeComparator.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAlgo.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchive.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchiveObjectiveVectorSavingUpdater.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchiveUpdater.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryIndicatorBasedFitnessAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryMetricSavingUpdater.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBitVector.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCombinedLS.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoComparator.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoContributionMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoConvertPopToObjectiveVectors.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCriterionBasedFitnessAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCrowdingDiversityAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDetTournamentSelect.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDistance.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDistanceMatrix.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDiversityAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDiversityThenFitnessComparator.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDummyDiversityAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDummyFitnessAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEA.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyEval.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummySelect.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyTransform.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoElitistReplacement.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoElitistReplacement_Cmp.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEntropyMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement_Cmp.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEuclideanDistance.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEvalFunc.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoExpBinaryIndicatorBasedFitnessAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment_ObjectiveComparator.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFitnessAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFitnessThenDiversityComparator.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFrontByFrontCrowdingDiversityAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFrontByFrontSharingDiversityAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoGDominanceObjectiveVectorComparator.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoGenerationalReplacement.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoHybridLS.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoHypervolumeBinaryMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoIBEA.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoIndicatorBasedFitnessAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoLS.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoManhattanDistance.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNSGA.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNSGAII.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNormalizedDistance.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNormalizedSolutionVsSolutionBinaryMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveObjectiveVectorComparator.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVector.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorComparator.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorTraits.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoOneObjectiveComparator.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoParetoBasedFitnessAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoParetoObjectiveVectorComparator.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRandomSelect.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRealObjectiveVector.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRealVector.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoReplacement.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRouletteSelect.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoScalarFitnessAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSelectFromPopAndArch.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSelectOne.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSharingDiversityAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSolutionUnaryMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSolutionVsSolutionBinaryMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoStochTournamentSelect.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoUnaryIndicatorBasedFitnessAssignment.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoUnaryMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVector.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVectorUnaryMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVectorVsVectorBinaryMetric.3 create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/moeo.doxyfile create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/moeo-conf.cmake create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/CMakeLists.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoAlgo.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoCombinedLS.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoEA.h create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoEasyEA.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoHybridLS.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIBEA.h create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIBMOLS.h create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIteratedIBMOLS.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoLS.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoNSGA.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoNSGAII.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/archive/moeoArchive.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoAggregativeComparator.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoComparator.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoDiversityThenFitnessComparator.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoFitnessThenDiversityComparator.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoGDominanceObjectiveVectorComparator.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoObjectiveObjectiveVectorComparator.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoObjectiveVectorComparator.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoOneObjectiveComparator.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoParetoObjectiveVectorComparator.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/MOEO.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoBitVector.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoEvalFunc.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVector.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.cpp create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoRealObjectiveVector.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoRealVector.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoVector.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoDistance.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoDistanceMatrix.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoEuclideanDistance.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoManhattanDistance.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoNormalizedDistance.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoCrowdingDiversityAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoDiversityAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoDummyDiversityAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoFrontByFrontCrowdingDiversityAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoFrontByFrontSharingDiversityAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoSharingDiversityAssignment.h create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_checkpoint_moeo.h create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_continue_moeo.h create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_ea_moeo.h create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_ls_moeo.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoAchievementFitnessAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoBinaryIndicatorBasedFitnessAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoCriterionBasedFitnessAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoDummyFitnessAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoExpBinaryIndicatorBasedFitnessAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoFastNonDominatedSortingFitnessAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoFitnessAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoIndicatorBasedFitnessAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoParetoBasedFitnessAssignment.h create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoReferencePointIndicatorBasedFitnessAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoScalarFitnessAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoUnaryIndicatorBasedFitnessAssignment.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoAdditiveEpsilonBinaryMetric.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoContributionMetric.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoEntropyMetric.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoHypervolumeBinaryMetric.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoMetric.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/moeo create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/move/moeoMoveIncrEval.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoElitistReplacement.h create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoEnvironmentalReplacement.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoGenerationalReplacement.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoReplacement.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoDetTournamentSelect.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoRandomSelect.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoRouletteSelect.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectFromPopAndArch.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectOne.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectors.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoStochTournamentSelect.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoArchiveObjectiveVectorSavingUpdater.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoArchiveUpdater.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoBinaryMetricSavingUpdater.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoConvertPopToObjectiveVectors.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/CMakeLists.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/CMakeLists.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.cpp create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.param create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/Lesson1.pdf create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson2/CMakeLists.txt create mode 100755 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson2/Lesson2.pdf create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson2/Sch1.cpp create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/CMakeLists.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/CMakeLists.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.cpp create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopBenchmarkParser.cpp create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopBenchmarkParser.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopEval.cpp create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopEval.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopInit.cpp create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopInit.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVector.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.cpp create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpCrossoverQuad.cpp create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpCrossoverQuad.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.cpp create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.cpp create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_01.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_02.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_01.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_02.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_20_01.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_05_01.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_10_01.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_20_01.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_05_01.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_10_01.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_20_01.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/200_10_01.txt create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/README create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_eval_FlowShop.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_genotype_FlowShop.h create mode 100644 tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_op_FlowShop.h diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/AUTHORS b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/AUTHORS new file mode 100644 index 000000000..50787a3ef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/AUTHORS @@ -0,0 +1,4 @@ +Sébastien Cahon +Arnaud Liefooghe +Thomas Legrand +Abdelhakim Deneche diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/CMakeLists.txt new file mode 100644 index 000000000..d1fc05403 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/CMakeLists.txt @@ -0,0 +1,111 @@ + +###################################################################################### +### 0) If you want to set your variables in moeo-conf.cmake and avoid the cmd line +###################################################################################### + +INCLUDE(moeo-conf.cmake OPTIONAL) + +###################################################################################### + + +###################################################################################### +### 1) Main project config +###################################################################################### + +# set the project name +PROJECT(ParadisEO-MOEO) + +# check cmake version compatibility +CMAKE_MINIMUM_REQUIRED(VERSION 2.4 FATAL_ERROR) + +# regular expression checking +INCLUDE_REGULAR_EXPRESSION("^.*$" "^$") + +# set a language for the entire project. +ENABLE_LANGUAGE(CXX) +ENABLE_LANGUAGE(C) + +##################################################################################### + + +##################################################################################### +### 2) Include required modules +##################################################################################### +INCLUDE(CMakeBackwardCompatibilityCXX) + +INCLUDE(FindDoxygen) + +INCLUDE(FindGnuplot) + +# check for some functions +INCLUDE(CheckLibraryExists) + +###################################################################################### + + +###################################################################################### +### 3) SET main paths (can be defined in moeo-conf.cmake) +###################################################################################### + +IF(NOT DEFINED MOEO_DIR) + SET(MOEO_DIR ${ParadisEO-MOEO_SOURCE_DIR} CACHE PATH "ParadisEO-MOEO main directory") +ENDIF(NOT DEFINED MOEO_DIR) + +# Need main EO directory path +IF(NOT DEFINED EO_DIR OR NOT EO_DIR) + SET(EO_DIR ${EOdir} CACHE PATH "ParadisEO-EO main directory" FORCE) # given on the command line +ELSE(NOT DEFINED EO_DIR OR NOT EO_DIR) + MESSAGE(STATUS "EOdir already defined as ${EO_DIR}") +ENDIF(NOT DEFINED EO_DIR OR NOT EO_DIR) + +# Set the main paths +IF(NOT DEFINED EO_SRC_DIR) + SET(EO_SRC_DIR "${EO_DIR}/src") +ENDIF(NOT DEFINED EO_SRC_DIR) + +IF(NOT DEFINED MOEO_SRC_DIR) + SET(MOEO_SRC_DIR ${MOEO_DIR}/src) +ENDIF(NOT DEFINED MOEO_SRC_DIR) + +IF(NOT DEFINED MOEO_DOC_DIR) + SET(MOEO_DOC_DIR ${MOEO_DIR}/doc) +ENDIF(NOT DEFINED MOEO_DOC_DIR) +###################################################################################### + + +###################################################################################### +### 4) Paths checking +###################################################################################### +IF(EXISTS ${EO_DIR}) + MESSAGE (STATUS "Using ParadisEO-EO path: ${EO_DIR}") +ELSE(EXISTS ${EO_DIR}) + MESSAGE (FATAL_ERROR "Could not find the ParadisEO-EO path: ${EO_DIR}. You should use : cmake . -DEOdir=") +ENDIF(EXISTS ${EO_DIR}) + +# Is it an absolute path ? +IF(WIN32) + SET (ABSOLUTE_PATH_REGEX "^[A-Z]:|^[a-z]:") +ELSE(WIN32) + SET (ABSOLUTE_PATH_REGEX "^/") +ENDIF(WIN32) + +IF(NOT ${EO_DIR} MATCHES "${ABSOLUTE_PATH_REGEX}") + MESSAGE (FATAL_ERROR "${EO_DIR} MUST BE an absolute path") +ENDIF(NOT ${EO_DIR} MATCHES "${ABSOLUTE_PATH_REGEX}") + +IF(WIN32) + SET(EO_LIB_DIR "${EO_DIR}\\win\\lib\\") +ELSE(WIN32) + SET(EO_LIB_DIR "${EO_DIR}/src") +ENDIF(WIN32) + +###################################################################################### + + +###################################################################################### +### 5) Where must cmake go now ? +###################################################################################### + +SUBDIRS(doc src tutorial) + +###################################################################################### diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/NEWS b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/NEWS new file mode 100644 index 000000000..52e218e1c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/NEWS @@ -0,0 +1 @@ +* release 1.0 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/README b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/README new file mode 100644 index 000000000..04cfef5c6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/README @@ -0,0 +1,69 @@ + PARADISEO-MOEO README FILE +======================================================================= + check latest news at http://paradiseo.gforge.inria.fr/ +======================================================================= + +Welcome to ParadisEO-MOEO, the Multi-Objective Evolving Objects library. +The latest news about ParadisEO-MOEO can be found on the gforge repository at +http://paradiseo.gforge.inria.fr/ +In case of any problem, please e-mail us at +paradiseo-help@lists.gforge.inria.fr + + +======================================================================= + BUILDING PARADISEO-MOEO +======================================================================= +The basic installation procedure goes the following: + +Go to your build-directory and run + > cmake -DEOdir=$(EO_SRC) + > make + // optional (if the documentation is not already available) + > make doc + +where $(EO_SRC) is the top-level source directory of PARADISEO-EO. + +To clean everything, simply run + > make clean + +======================================================================= + DIRECTORY STRUCTURE +======================================================================= +After unpacking the archive file, you should end up with the following +structure: + +.../ The main PARADISEO-MOEO directory, created when unpacking. + | + | + +-- build BUILD directory that contains libraries and executable files. + | + | + +-- src SOURCE directory that contains PARADISEO-MOEO source files. + | + | + +-- doc DOCUMENTATION directory (generated by Doxygen). + | | + | +-- html HTML files - start at index.html. + | | + | +-- latex latex files - use to generate Postcript doc. + | | + | +-- man Unix man format documentation. + | + | + +-- tutorial TUTORIAL directory that contains with lessons. + | + +-- examples APPLICATIONS - one directory per separate application. + | | + | +-- flowshop Flow-shop scheduling problem example source files. + | | + | +-- benchs Benchmark suites for the flow-shop. + | + +-- Lesson1 A bi-objective flow-shop problem example solved using main MOEAs. + | + +-- Lesson2 NSGA-II to solve the SCH1 problem. + +======================================================================= + NOTES +======================================================================= + +Mailing list : paradiseo-help@lists.gforge.inria.fr diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/CMakeLists.txt new file mode 100644 index 000000000..427bdf9ad --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/CMakeLists.txt @@ -0,0 +1,38 @@ + +### ParadisEO-MOEO Doc generation using Doxygen ### + +# Find the Doxygen package - will set all the variables required to use Doxygen +FIND_PACKAGE(Doxygen) + +IF (DOXYGEN_FOUND) + +SET(MOEO_DOC_COMMENT "ParadisEO-MOEO framework documentation") +SET(DOXYGEN_INPUT "moeo.doxyfile") +SET(DOXYGEN_OUTPUT "ParadisEO-MOEO documentation") + +ADD_CUSTOM_COMMAND( + OUTPUT ${DOXYGEN_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E echo_append "Building documentation from ${MOEO_DOC_DIR} ..." + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_INPUT} + COMMAND ${CMAKE_COMMAND} -E echo "Done." + WORKING_DIRECTORY ${MOEO_DOC_DIR} + COMMENT ${MOEO_DOC_COMMENT} + DEPENDS ${DOXYGEN_INPUT} + ) + +# The main target launched with "make doc" +ADD_CUSTOM_TARGET(doc DEPENDS ${DOXYGEN_OUTPUT}) + +# A forced additionnal target that generate the documentation in the current directory +ADD_CUSTOM_TARGET(doc_forced + COMMAND ${CMAKE_COMMAND} -E echo_append "Building documentation from current directory ..." + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_INPUT} + COMMAND ${CMAKE_COMMAND} -E echo " Done." + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + +ELSE (DOXYGEN_FOUND) + MESSAGE(STATUS "Unable to generate the document, Doxygen package not found") +ENDIF (DOXYGEN_FOUND) + + + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/MOEO_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/MOEO_8h-source.html new file mode 100644 index 000000000..bf80259c1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/MOEO_8h-source.html @@ -0,0 +1,230 @@ + + +ParadisEO-MOEO: MOEO.h Source File + + + + +
+
+

MOEO.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // MOEO.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEO_H_
+00014 #define MOEO_H_
+00015 
+00016 #include <iostream>
+00017 #include <stdexcept>
+00018 #include <string>
+00019 #include <EO.h>
+00020 
+00033 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity >
+00034 class MOEO : public EO < MOEOObjectiveVector >
+00035 {
+00036 public:
+00037 
+00039     typedef MOEOObjectiveVector ObjectiveVector;
+00040 
+00042     typedef MOEOFitness Fitness;
+00043 
+00045     typedef MOEODiversity Diversity;
+00046 
+00047 
+00051     MOEO()
+00052     {
+00053         // default values for every parameters
+00054         objectiveVectorValue = ObjectiveVector();
+00055         fitnessValue = Fitness();
+00056         diversityValue = Diversity();
+00057         // invalidate all
+00058         invalidate();
+00059     }
+00060 
+00061 
+00065     virtual ~MOEO() {};
+00066 
+00067 
+00071     ObjectiveVector objectiveVector() const
+00072     {
+00073         if ( invalidObjectiveVector() )
+00074         {
+00075             throw std::runtime_error("invalid objective vector in MOEO");
+00076         }
+00077         return objectiveVectorValue;
+00078     }
+00079 
+00080 
+00085     void objectiveVector(const ObjectiveVector & _objectiveVectorValue)
+00086     {
+00087         objectiveVectorValue = _objectiveVectorValue;
+00088         invalidObjectiveVectorValue = false;
+00089     }
+00090 
+00091 
+00095     void invalidateObjectiveVector()
+00096     {
+00097         invalidObjectiveVectorValue = true;
+00098     }
+00099 
+00100 
+00104     bool invalidObjectiveVector() const
+00105     {
+00106         return invalidObjectiveVectorValue;
+00107     }
+00108 
+00109 
+00113     Fitness fitness() const
+00114     {
+00115         if ( invalidFitness() )
+00116         {
+00117             throw std::runtime_error("invalid fitness in MOEO");
+00118         }
+00119         return fitnessValue;
+00120     }
+00121 
+00122 
+00127     void fitness(const Fitness & _fitnessValue)
+00128     {
+00129         fitnessValue = _fitnessValue;
+00130         invalidFitnessValue = false;
+00131     }
+00132 
+00133 
+00137     void invalidateFitness()
+00138     {
+00139         invalidFitnessValue = true;
+00140     }
+00141 
+00142 
+00146     bool invalidFitness() const
+00147     {
+00148         return invalidFitnessValue;
+00149     }
+00150 
+00151 
+00155     Diversity diversity() const
+00156     {
+00157         if ( invalidDiversity() )
+00158         {
+00159             throw std::runtime_error("invalid diversity in MOEO");
+00160         }
+00161         return diversityValue;
+00162     }
+00163 
+00164 
+00169     void diversity(const Diversity & _diversityValue)
+00170     {
+00171         diversityValue = _diversityValue;
+00172         invalidDiversityValue = false;
+00173     }
+00174 
+00175 
+00179     void invalidateDiversity()
+00180     {
+00181         invalidDiversityValue = true;
+00182     }
+00183 
+00184 
+00188     bool invalidDiversity() const
+00189     {
+00190         return invalidDiversityValue;
+00191     }
+00192 
+00193 
+00197     void invalidate()
+00198     {
+00199         invalidateObjectiveVector();
+00200         invalidateFitness();
+00201         invalidateDiversity();
+00202     }
+00203 
+00204 
+00208     bool invalid() const
+00209     {
+00210         return invalidObjectiveVector();
+00211     }
+00212 
+00213 
+00220     bool operator<(const MOEO & _other) const
+00221     {
+00222         return objectiveVector() < _other.objectiveVector();
+00223     }
+00224 
+00225 
+00229     virtual std::string className() const
+00230     {
+00231         return "MOEO";
+00232     }
+00233 
+00234 
+00239     virtual void printOn(std::ostream & _os) const
+00240     {
+00241         if ( invalidObjectiveVector() )
+00242         {
+00243             _os << "INVALID\t";
+00244         }
+00245         else
+00246         {
+00247             _os << objectiveVectorValue << '\t';
+00248         }
+00249     }
+00250 
+00251 
+00256     virtual void readFrom(std::istream & _is)
+00257     {
+00258         std::string objectiveVector_str;
+00259         int pos = _is.tellg();
+00260         _is >> objectiveVector_str;
+00261         if (objectiveVector_str == "INVALID")
+00262         {
+00263             invalidateObjectiveVector();
+00264         }
+00265         else
+00266         {
+00267             invalidObjectiveVectorValue = false;
+00268             _is.seekg(pos); // rewind
+00269             _is >> objectiveVectorValue;
+00270         }
+00271     }
+00272 
+00273 
+00274 private:
+00275 
+00277     ObjectiveVector objectiveVectorValue;
+00279     bool invalidObjectiveVectorValue;
+00281     Fitness fitnessValue;
+00283     bool invalidFitnessValue;
+00285     Diversity diversityValue;
+00287     bool invalidDiversityValue;
+00288 
+00289 };
+00290 
+00291 #endif /*MOEO_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/annotated.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/annotated.html new file mode 100644 index 000000000..9dbcf38c5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/annotated.html @@ -0,0 +1,118 @@ + + +ParadisEO-MOEO: Class List + + + + +
+
+ +

ParadisEO-MOEO Class List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >Base class allowing to represent a solution (an individual) for multi-objective optimization
moeoAchievementFitnessAssignment< MOEOT >Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980)
moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C
moeoAggregativeComparator< MOEOT >Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value
moeoAlgoAbstract class for multi-objective algorithms
moeoArchive< MOEOT >An archive is a secondary population that stores non-dominated solutions
moeoArchiveObjectiveVectorSavingUpdater< MOEOT >This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation
moeoArchiveUpdater< MOEOT >This class allows to update the archive at each generation with newly found non-dominated solutions
moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >MoeoIndicatorBasedFitnessAssignment for binary indicators
moeoBinaryMetric< A1, A2, R >Base class for binary metrics
moeoBinaryMetricSavingUpdater< MOEOT >This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file
moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >This class is an implementationeo of a simple bit-valued moeoVector
moeoCombinedLS< MOEOT, Type >This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions
moeoComparator< MOEOT >Functor allowing to compare two solutions
moeoContributionMetric< ObjectiveVector >The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc
moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >Functor allowing to get a vector of objective vectors from a population
moeoCriterionBasedFitnessAssignment< MOEOT >MoeoCriterionBasedFitnessAssignment is a moeoFitnessAssignment for criterion-based strategies
moeoCrowdingDiversityAssignment< MOEOT >Diversity assignment sheme based on crowding proposed in: K
moeoDetTournamentSelect< MOEOT >Selection strategy that selects ONE individual by deterministic tournament
moeoDistance< MOEOT, Type >The base class for distance computation
moeoDistanceMatrix< MOEOT, Type >A matrix to compute distances between every pair of individuals contained in a population
moeoDiversityAssignment< MOEOT >Functor that sets the diversity values of a whole population
moeoDiversityThenFitnessComparator< MOEOT >Functor allowing to compare two solutions according to their diversity values, then according to their fitness values
moeoDummyDiversityAssignment< MOEOT >MoeoDummyDiversityAssignment is a moeoDiversityAssignment that gives the value '0' as the individual's diversity for a whole population if it is invalid
moeoDummyFitnessAssignment< MOEOT >MoeoDummyFitnessAssignment is a moeoFitnessAssignment that gives the value '0' as the individual's fitness for a whole population if it is invalid
moeoEA< MOEOT >Abstract class for multi-objective evolutionary algorithms
moeoEasyEA< MOEOT >An easy class to design multi-objective evolutionary algorithms
moeoEasyEA< MOEOT >::eoDummyEvalDummy eval
moeoEasyEA< MOEOT >::eoDummySelectDummy select
moeoEasyEA< MOEOT >::eoDummyTransformDummy transform
moeoElitistReplacement< MOEOT >Elitist replacement strategy that consists in keeping the N best individuals
moeoElitistReplacement< MOEOT >::CmpThis object is used to compare solutions in order to sort the population
moeoEntropyMetric< ObjectiveVector >The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc
moeoEnvironmentalReplacement< MOEOT >Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion
moeoEnvironmentalReplacement< MOEOT >::CmpThis object is used to compare solutions in order to sort the population
moeoEuclideanDistance< MOEOT >A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e
moeoEvalFunc< MOEOT >
moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >Fitness assignment sheme based on an indicator proposed in: E
moeoFastNonDominatedSortingFitnessAssignment< MOEOT >Fitness assignment sheme based on Pareto-dominance count proposed in: N
moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparatorFunctor allowing to compare two solutions according to their first objective value, then their second, and so on
moeoFitnessAssignment< MOEOT >Functor that sets the fitness values of a whole population
moeoFitnessThenDiversityComparator< MOEOT >Functor allowing to compare two solutions according to their fitness values, then according to their diversity values
moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >Diversity assignment sheme based on crowding proposed in: K
moeoFrontByFrontSharingDiversityAssignment< MOEOT >Sharing assignment scheme on the way it is used in NSGA
moeoGDominanceObjectiveVectorComparator< ObjectiveVector >This functor class allows to compare 2 objective vectors according to g-dominance
moeoGenerationalReplacement< MOEOT >Generational replacement: only the new individuals are preserved
moeoHybridLS< MOEOT >This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified
moeoHypervolumeBinaryMetric< ObjectiveVector >Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., Künzli S
moeoIBEA< MOEOT >IBEA (Indicator-Based Evolutionary Algorithm) as described in: E
moeoIndicatorBasedFitnessAssignment< MOEOT >MoeoIndicatorBasedFitnessAssignment is a moeoFitnessAssignment for Indicator-based strategies
moeoLS< MOEOT, Type >Abstract class for local searches applied to multi-objective optimization
moeoManhattanDistance< MOEOT >A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e
moeoMetricBase class for performance metrics (also known as quality indicators)
moeoNormalizedDistance< MOEOT, Type >The base class for double distance computation with normalized objective values (i.e
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values
moeoNSGA< MOEOT >NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N
moeoNSGAII< MOEOT >NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S
moeoObjectiveObjectiveVectorComparator< ObjectiveVector >Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on
moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >Abstract class allowing to represent a solution in the objective space (phenotypic representation)
moeoObjectiveVectorComparator< ObjectiveVector >Abstract class allowing to compare 2 objective vectors
moeoObjectiveVectorTraitsA traits class for moeoObjectiveVector to specify the number of objectives and which ones have to be minimized or maximized
moeoOneObjectiveComparator< MOEOT >Functor allowing to compare two solutions according to one objective
moeoParetoBasedFitnessAssignment< MOEOT >MoeoParetoBasedFitnessAssignment is a moeoFitnessAssignment for Pareto-based strategies
moeoParetoObjectiveVectorComparator< ObjectiveVector >This functor class allows to compare 2 objective vectors according to Pareto dominance
moeoRandomSelect< MOEOT >Selection strategy that selects only one element randomly from a whole population
moeoRealObjectiveVector< ObjectiveVectorTraits >This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e
moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >This class is an implementation of a simple double-valued moeoVector
moeoReplacement< MOEOT >Replacement strategy for multi-objective optimization
moeoRouletteSelect< MOEOT >Selection strategy that selects ONE individual by using roulette wheel process
moeoScalarFitnessAssignment< MOEOT >MoeoScalarFitnessAssignment is a moeoFitnessAssignment for scalar strategies
moeoSelectFromPopAndArch< MOEOT >Elitist selection process that consists in choosing individuals in the archive as well as in the current population
moeoSelectOne< MOEOT >Selection strategy for multi-objective optimization that selects only one element from a whole population
moeoSharingDiversityAssignment< MOEOT >Sharing assignment scheme originally porposed by: D
moeoSolutionUnaryMetric< ObjectiveVector, R >Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector
moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors
moeoStochTournamentSelect< MOEOT >Selection strategy that selects ONE individual by stochastic tournament
moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >MoeoIndicatorBasedFitnessAssignment for unary indicators
moeoUnaryMetric< A, R >Base class for unary metrics
moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >Base class for fixed length chromosomes, just derives from MOEO and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison)
moeoVectorUnaryMetric< ObjectiveVector, R >Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors)
moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors)
+
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classMOEO-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classMOEO-members.html new file mode 100644 index 000000000..62f9e30bb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classMOEO-members.html @@ -0,0 +1,86 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Member List

This is the complete list of members for MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
className() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
diversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
diversity(const Diversity &_diversityValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
Diversity typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
diversityValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
EO()EO< MOEOObjectiveVector >
EO()EO< MOEOObjectiveVector >
Fitness typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
fitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
fitness(const Fitness &_fitnessValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::fitness(const Fitness &_fitness)EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::fitness(performance_type perf)EO< MOEOObjectiveVector >
fitness_traits typedefEO< MOEOObjectiveVector >
fitnessValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
invalid() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate_worth(void)EO< MOEOObjectiveVector >
invalidateDiversity()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateFitness()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateObjectiveVector()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidDiversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidDiversityValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
invalidFitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidFitnessValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
invalidObjectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidObjectiveVectorValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
ObjectiveVector typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
objectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
objectiveVector(const ObjectiveVector &_objectiveVectorValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
objectiveVectorValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
operator<(const MOEO &_other) const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::operator<(const EO &_eo2) const EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::operator<(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
operator>(const EO &_eo2) const EO< MOEOObjectiveVector >
operator>(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
performance(performance_type perf)EO< MOEOObjectiveVector >
performance(void) const EO< MOEOObjectiveVector >
performance_type typedefEO< MOEOObjectiveVector >
printOn(std::ostream &_os) const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
readFrom(std::istream &_is)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
storage_type typedefEO< MOEOObjectiveVector >
worth(worth_type worth)EO< MOEOObjectiveVector >
worth(void) const EO< MOEOObjectiveVector >
worth_type typedefEO< MOEOObjectiveVector >
~EO()EO< MOEOObjectiveVector > [virtual]
~eoObject()eoObject [virtual]
~eoPersistent()eoPersistent [virtual]
~eoPrintable()eoPrintable [virtual]
~MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classMOEO.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classMOEO.html new file mode 100644 index 000000000..eeb0dc648 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classMOEO.html @@ -0,0 +1,388 @@ + + +ParadisEO-MOEO: MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference + + + + +
+
+ +

MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference

Base class allowing to represent a solution (an individual) for multi-objective optimization. +More... +

+#include <MOEO.h> +

+

Inheritance diagram for MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >: +

+ +EO< MOEOObjectiveVector > +eoObject +eoPersistent +eoPrintable +moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > +moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > +moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > +moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > +moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOObjectiveVector ObjectiveVector
 the objective vector type of a solution
+typedef MOEOFitness Fitness
 the fitness type of a solution
+typedef MOEODiversity Diversity
 the diversity type of a solution

Public Member Functions

MOEO ()
 Ctor.
+virtual ~MOEO ()
 Virtual dtor.
+ObjectiveVector objectiveVector () const
 Returns the objective vector of the current solution.
void objectiveVector (const ObjectiveVector &_objectiveVectorValue)
 Sets the objective vector of the current solution.
+void invalidateObjectiveVector ()
 Sets the objective vector as invalid.
+bool invalidObjectiveVector () const
 Returns true if the objective vector is invalid, false otherwise.
+Fitness fitness () const
 Returns the fitness value of the current solution.
void fitness (const Fitness &_fitnessValue)
 Sets the fitness value of the current solution.
+void invalidateFitness ()
 Sets the fitness value as invalid.
+bool invalidFitness () const
 Returns true if the fitness value is invalid, false otherwise.
+Diversity diversity () const
 Returns the diversity value of the current solution.
void diversity (const Diversity &_diversityValue)
 Sets the diversity value of the current solution.
+void invalidateDiversity ()
 Sets the diversity value as invalid.
+bool invalidDiversity () const
 Returns true if the diversity value is invalid, false otherwise.
+void invalidate ()
 Sets the objective vector, the fitness value and the diversity value as invalid.
+bool invalid () const
 Returns true if the fitness value is invalid, false otherwise.
bool operator< (const MOEO &_other) const
 Returns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).
+virtual std::string className () const
 Return the class id (the class name as a std::string).
virtual void printOn (std::ostream &_os) const
 Writing object.
virtual void readFrom (std::istream &_is)
 Reading object.

Private Attributes

+ObjectiveVector objectiveVectorValue
 the objective vector of this solution
+bool invalidObjectiveVectorValue
 true if the objective vector is invalid
+Fitness fitnessValue
 the fitness value of this solution
+bool invalidFitnessValue
 true if the fitness value is invalid
+Diversity diversityValue
 the diversity value of this solution
+bool invalidDiversityValue
 true if the diversity value is invalid
+

Detailed Description

+

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ class MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+ +Base class allowing to represent a solution (an individual) for multi-objective optimization. +

+The template argument MOEOObjectiveVector allows to represent the solution in the objective space (it can be a moeoObjectiveVector object). The template argument MOEOFitness is an object reflecting the quality of the solution in term of convergence (the fitness of a solution is always to be maximized). The template argument MOEODiversity is an object reflecting the quality of the solution in term of diversity (the diversity of a solution is always to be maximized). All template arguments must have a void and a copy constructor. Using some specific representations, you will have to define a copy constructor if the default one is not what you want. In the same cases, you will also have to define the affectation operator (operator=). Then, you will explicitly have to call the parent copy constructor and the parent affectation operator at the beginning of the corresponding implementation. Besides, note that, contrary to the mono-objective case (and to EO) where the fitness value of a solution is confused with its objective value, the fitness value differs of the objectives values in the multi-objective case. +

+ +

+Definition at line 34 of file MOEO.h.


Member Function Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVector (const ObjectiveVector _objectiveVectorValue  )  [inline]
+
+
+ +

+Sets the objective vector of the current solution. +

+

Parameters:
+ + +
_objectiveVectorValue the new objective vector
+
+ +

+Definition at line 85 of file MOEO.h. +

+References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidObjectiveVectorValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVectorValue. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::fitness (const Fitness _fitnessValue  )  [inline]
+
+
+ +

+Sets the fitness value of the current solution. +

+

Parameters:
+ + +
_fitnessValue the new fitness value
+
+ +

+Definition at line 127 of file MOEO.h. +

+References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::fitnessValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidFitnessValue. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::diversity (const Diversity _diversityValue  )  [inline]
+
+
+ +

+Sets the diversity value of the current solution. +

+

Parameters:
+ + +
_diversityValue the new diversity value
+
+ +

+Definition at line 169 of file MOEO.h. +

+References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::diversityValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidDiversityValue. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
bool MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::operator< (const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > &  _other  )  const [inline]
+
+
+ +

+Returns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +

+You should implement another function in the sub-class of MOEO to have another sorting mecanism.

Parameters:
+ + +
_other the other MOEO object to compare with
+
+ +

+Definition at line 220 of file MOEO.h. +

+References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVector(). +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
virtual void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn (std::ostream &  _os  )  const [inline, virtual]
+
+ +

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
virtual void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom (std::istream &  _is  )  [inline, virtual]
+
+ +

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classMOEO.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classMOEO.png new file mode 100644 index 0000000000000000000000000000000000000000..43ac723c7834f7ca515d503184ec4241f51307ba GIT binary patch literal 4369 zcmd5eh$%4O)X{la;ZGeV&d8VZHA>FHNuq0x`C zwzk&)m2e1}ig;Z@8^g4@Jx(y#29locDHD7OFV!`A@WiIj7V``Ov06k;+Wf8c{$R0B zi)YQh7+Sak}psc-xi`AMk7D7aT~vJfBG&i#}DMy$Yi zK7lb)_TNG(t}(yvdF}J`=K!HY(!mU{`#GD7tklpZ#vMCEsZ?c|xMhN=p6p~E&L6Ct zOt$#w#k7`}1gMq1s`z4ox5Fze9y2c8d9bn0Zk=G@*S*3Q)x zp{QMi0q8B-#LfRWt<}16>WyyDW3dfK6`(J8Z`Hm=;?a5ljY_xUa4@Sw-`+(k%DzYJ z|L<&na`nHTQsJcp&=z=q@ZvlnE@z$fUY8Ow(mf#uEMwMQeu8AVh?+$(ad{B%5GOZS zGsRButfKgYgErxnX`za&^h3c&yGTj3aWc7%8@3I)N%LiD3{(=Oy?dz$>GKyybKH+x@ay2 zQ17z2Wz2;VX+#5eA9~=6(z;+kx^~HIJO2uQ_Ei`wfbWC!EcUad>>26g8klPm=V`rt zgle#+5UE1K>P)aLL?JKL7`^gqpXl719q-5>mcLiq+wvXNmxcYJ4h`&WC{I%pL2e)R z(fV&m!DHO#@(YL@b&ThkcJ2nca+4CJQoYN`YAHHIpfos77bxo%FW6MtYbsZv{|7Md zv!hEKo%m$B@aunuFF?{#MB*=l`#6o&U&{kzxvL`>SkBdeE!8@b`n zJe?nr7Lpvl3YH?w;oMHteuIOEOyuvR?0=lwzqjz)l`Xg7p2aB|mbHFv7!e1xpU6uZ z`7&#wNY(zGvEAt6P1O&qry*YSWB9S?s)8W=gft9y z?uhir?oXSji##5u95?An%ry*{@$PQsIq7IT*9k~TstGJbjX$0sccv%VQz}sfxFE@x zRYcCf2hE;OV;H_alKnkTF-q+HK$&juDpIaQaRQ2i5^qY%3QkD5(dh zH98v_yh?pl*^D>b%5&4bIa{w$=ajN6Z}bhGRsgw4C=&D~zLI_~wcc_a;naSrIN!aj zGFK@TOxdS$DOrsO(#Q@IcO!w0qspu)j~Le(s~X9g$)%!X;B1}v2E?S|j@w_jQ>JFq zZLEc~ZW|kO8-*!;X2HD5z;0#*ML@=3D5;4QWSd=BYT|chHT@n`hqfgWgqIlm|Gs=4m~@lmx?h zZe>h0#`kLG9i-VC7C~~(I;7BRK3SKUvZJnNVJoSI+pMVH3B{ot?1202hEsHl;ftM! zzxwH)RXoXgaO)P_^NGY?<>?g^n7MVsQTe5|HE-3vN#fBu0R8LEze_-Gbf^(WR|0A) zZ*RM$)4t*Y#APc^Now!Hi0og9fCXoWWk4Hd3j}H}gKHoVddL!ZCqr!KA0TA80kT{I zAxnv6aLMxj&TU13@b(ui^R~4+L=R7D)u=Cq_d31zn?3E^zRbv{@_zJ7aq^FbDMMN6 zm~m`dAfY-YC)(Gt9ahHD!oC=W?`ch+KnlbggIR??NdzGwETH zgB#UvA}pnC^>;npc+mOSM;gw`D$90%TXvMOPnvrG%JYm-j=c>$IxhGmc5mqYJJ~c} zixDdY8YRIl1@>MEW z17_lF%f?=J4Iu5L4Z~G5qk%;|?D1hlr+8+1&*C?Y`&IbBjcG1kHMGl@tMXk%gSKA> zX7Uq?CO;h;dg81(K0jH7PaQqo1a%d0Ck#K;AgnpgP95R}%EWI?WwO$uzVyf=RK^9; zfJcl};5TG>ppq1dP$W2;6)25Q`Wy^iiyQ5Hb`SeP_iIJZ2S<70xJyL$0K-n@t!@=TK21@^nUmWK9 z;FE^oENk2c2Y`)pYl|n9`W^{HW40E%W&pZt#c%XAw{pvfq((=UU;Z`~B*7k7RKpg! zdh$D&)m6jM7KWtJ#Hwh67xgi6IlM%TKK|XgeRjiwY_0wqBRIH~-j_x}F8fA$0>brv zwc;kNn)9ivt*b^_H4q+Yb68S?FN;T68$Tm1|C#8cflvmW6h*N#^3yAZ_fz4{j)pQV zCv&hD6SQEqJy<~og?Omm<};-_WbonQ_e+IIJk(_L4sYv`g`@3@)<gWUX!p z&Rc8wLlqvy{E&ss8QnhwV~FXJVtl=r4U2sUP$X8q5LGmQR2oEP+S_*jps-u{gN)<< zC=)kj34Lk?{!rbFh-LOG-mpw-4!f2)@{P_izs25Jro5e!KY2Z*yUdjq;s4(ptf~8M zC=k~9(d8@jO%^$Op8fS}@n7|BlT@#FBYuR;if%UWo(Y;`>jRv9^7V==#>X*c0r#@f zhuY~o$}N@?aQ)tE-8N+^qEhR;2ekHhGZ)q-z4J`_#C!YnQrVV5XPT^YE}U{z0U}(@ zZ3}0S<^JhG=RQ+><(dvlR~$B|SFqpHKix?;D<7Fm99zXsJn(b}&gijQ?uV=2Pw*<< z-M}?j`FAwa!%Hpn1FYjq$x_n!8`R~uXF2*SRFqyepS91!U)NIfW>)w1W!IlbC&Ztk zOm$Dji=VXJ+IsI2aHGch7li~BD`VpV@COCMQ-rLupk&f!l-ctTr20`b!RN#-xp>k{tE*MT#B%t+Y>NJ&E zbMDyhE-k4&bt7iTm`J{Z>#G^X1~gFtfQNZFdlKEErd64a&#Gj7gPxB@kCvK{cC$6_ zyV&_t`k6DnL>jmGN!E@a{m&FZE!XiOAn55M8wJ{?CmJ==`tOEK<(3bNc2Cerd%J0- zb0$e*BTxr$RRGT5!juV49mQ5e!gqfgNtP4@3US5SypSN7ue3dz8 zXti>AinrX?JzluIS#L{?uI| foEHga)(WLm;debFHr?3?gATnjXx##xE4Tjx{8CuG literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classes.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classes.html new file mode 100644 index 000000000..5b16de773 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classes.html @@ -0,0 +1,56 @@ + + +ParadisEO-MOEO: Alphabetical List + + + + +
+
+ +

ParadisEO-MOEO Class Index

A | B | C | D | E | F | G | H | I | L | M | N | O | P | R | S | U | V

+ +
  A  
+
moeoEasyEA::eoDummyTransform   moeoNormalizedSolutionVsSolutionBinaryMetric   
moeoAchievementFitnessAssignment   moeoElitistReplacement   moeoNSGA   
moeoAdditiveEpsilonBinaryMetric   moeoElitistReplacement::Cmp   moeoNSGAII   
moeoAggregativeComparator   moeoEntropyMetric   
  O  
+
moeoAlgo   moeoEnvironmentalReplacement   moeoObjectiveObjectiveVectorComparator   
moeoArchive   moeoEnvironmentalReplacement::Cmp   moeoObjectiveVector   
moeoArchiveObjectiveVectorSavingUpdater   moeoEuclideanDistance   moeoObjectiveVectorComparator   
moeoArchiveUpdater   moeoEvalFunc   moeoObjectiveVectorTraits   
  B  
+
moeoExpBinaryIndicatorBasedFitnessAssignment   moeoOneObjectiveComparator   
moeoBinaryIndicatorBasedFitnessAssignment   
  F  
+
  P  
+
moeoBinaryMetric   moeoFastNonDominatedSortingFitnessAssignment   moeoParetoBasedFitnessAssignment   
moeoBinaryMetricSavingUpdater   moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator   moeoParetoObjectiveVectorComparator   
moeoBitVector   moeoFitnessAssignment   
  R  
+
  C  
+
moeoFitnessThenDiversityComparator   moeoRandomSelect   
moeoCombinedLS   moeoFrontByFrontCrowdingDiversityAssignment   moeoRealObjectiveVector   
moeoComparator   moeoFrontByFrontSharingDiversityAssignment   moeoRealVector   
moeoContributionMetric   
  G  
+
moeoReplacement   
moeoConvertPopToObjectiveVectors   moeoGDominanceObjectiveVectorComparator   moeoRouletteSelect   
moeoCriterionBasedFitnessAssignment   moeoGenerationalReplacement   
  S  
+
moeoCrowdingDiversityAssignment   
  H  
+
moeoScalarFitnessAssignment   
  D  
+
moeoHybridLS   moeoSelectFromPopAndArch   
moeoDetTournamentSelect   moeoHypervolumeBinaryMetric   moeoSelectOne   
moeoDistance   
  I  
+
moeoSharingDiversityAssignment   
moeoDistanceMatrix   moeoIBEA   moeoSolutionUnaryMetric   
moeoDiversityAssignment   moeoIndicatorBasedFitnessAssignment   moeoSolutionVsSolutionBinaryMetric   
moeoDiversityThenFitnessComparator   
  L  
+
moeoStochTournamentSelect   
moeoDummyDiversityAssignment   moeoLS   
  U  
+
moeoDummyFitnessAssignment   
  M  
+
moeoUnaryIndicatorBasedFitnessAssignment   
  E  
+
moeoManhattanDistance   moeoUnaryMetric   
moeoEA   moeoMetric   
  V  
+
moeoEasyEA   MOEO   moeoVector   
moeoEasyEA::eoDummyEval   
  N  
+
moeoVectorUnaryMetric   
moeoEasyEA::eoDummySelect   moeoNormalizedDistance   moeoVectorVsVectorBinaryMetric   

A | B | C | D | E | F | G | H | I | L | M | N | O | P | R | S | U | V

+


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment-members.html new file mode 100644 index 000000000..46ea4dc6e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment-members.html @@ -0,0 +1,51 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoAchievementFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoAchievementFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + +
compute(MOEOT &_moeo)moeoAchievementFitnessAssignment< MOEOT > [inline, private]
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
inf() const moeoAchievementFitnessAssignment< MOEOT > [inline, private]
lambdasmoeoAchievementFitnessAssignment< MOEOT > [private]
moeoAchievementFitnessAssignment(ObjectiveVector &_reference, std::vector< double > &_lambdas, double _spn=0.0001)moeoAchievementFitnessAssignment< MOEOT > [inline]
moeoAchievementFitnessAssignment(ObjectiveVector &_reference, double _spn=0.0001)moeoAchievementFitnessAssignment< MOEOT > [inline]
ObjectiveVector typedefmoeoAchievementFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoAchievementFitnessAssignment< MOEOT > [inline, virtual]
referencemoeoAchievementFitnessAssignment< MOEOT > [private]
setReference(const ObjectiveVector &_reference)moeoAchievementFitnessAssignment< MOEOT > [inline]
spnmoeoAchievementFitnessAssignment< MOEOT > [private]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoAchievementFitnessAssignment< MOEOT > [inline, virtual]
moeoScalarFitnessAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.html new file mode 100644 index 000000000..531c60198 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.html @@ -0,0 +1,344 @@ + + +ParadisEO-MOEO: moeoAchievementFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoAchievementFitnessAssignment< MOEOT > Class Template Reference

Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). +More... +

+#include <moeoAchievementFitnessAssignment.h> +

+

Inheritance diagram for moeoAchievementFitnessAssignment< MOEOT >: +

+ +moeoScalarFitnessAssignment< MOEOT > +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

 moeoAchievementFitnessAssignment (ObjectiveVector &_reference, std::vector< double > &_lambdas, double _spn=0.0001)
 Default ctor.
 moeoAchievementFitnessAssignment (ObjectiveVector &_reference, double _spn=0.0001)
 Ctor with default values for lambdas (1/nObjectives).
virtual void operator() (eoPop< MOEOT > &_pop)
 Sets the fitness values for every solution contained in the population _pop.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account (nothing to do).
void setReference (const ObjectiveVector &_reference)
 Sets the reference point.

Private Member Functions

+double inf () const
 Returns a big value (regarded as infinite).
void compute (MOEOT &_moeo)
 Computes the fitness value for a solution.

Private Attributes

+ObjectiveVector reference
 the reference point
+std::vector< double > lambdas
 the weighted coefficients vector
+double spn
 an arbitrary small positive number (0 < _spn << 1)
+

Detailed Description

+

template<class MOEOT>
+ class moeoAchievementFitnessAssignment< MOEOT >

+ +Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). +

+ +

+Definition at line 24 of file moeoAchievementFitnessAssignment.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoAchievementFitnessAssignment< MOEOT >::moeoAchievementFitnessAssignment (ObjectiveVector _reference,
std::vector< double > &  _lambdas,
double  _spn = 0.0001 
) [inline]
+
+
+ +

+Default ctor. +

+

Parameters:
+ + + + +
_reference reference point vector
_lambdas weighted coefficients vector
_spn arbitrary small positive number (0 < _spn << 1)
+
+ +

+Definition at line 38 of file moeoAchievementFitnessAssignment.h. +

+References moeoAchievementFitnessAssignment< MOEOT >::spn. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoAchievementFitnessAssignment< MOEOT >::moeoAchievementFitnessAssignment (ObjectiveVector _reference,
double  _spn = 0.0001 
) [inline]
+
+
+ +

+Ctor with default values for lambdas (1/nObjectives). +

+

Parameters:
+ + + +
_reference reference point vector
_spn arbitrary small positive number (0 < _spn << 1)
+
+ +

+Definition at line 54 of file moeoAchievementFitnessAssignment.h. +

+References moeoAchievementFitnessAssignment< MOEOT >::lambdas, and moeoAchievementFitnessAssignment< MOEOT >::spn. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoAchievementFitnessAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the fitness values for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

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

+References moeoAchievementFitnessAssignment< MOEOT >::compute(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoAchievementFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account (nothing to do). +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implements moeoFitnessAssignment< MOEOT >. +

+Definition at line 89 of file moeoAchievementFitnessAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoAchievementFitnessAssignment< MOEOT >::setReference (const ObjectiveVector _reference  )  [inline]
+
+
+ +

+Sets the reference point. +

+

Parameters:
+ + +
_reference the new reference point
+
+ +

+Definition at line 99 of file moeoAchievementFitnessAssignment.h. +

+References moeoAchievementFitnessAssignment< MOEOT >::reference. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoAchievementFitnessAssignment< MOEOT >::compute (MOEOT &  _moeo  )  [inline, private]
+
+ +

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..4396fd5a311832a8510826e86cb68c3504a28ca2 GIT binary patch literal 1898 zcmcgteK^w#8~&+No$5?QMQ2ze$+{}?HM|S84KX$3W0;Rrm^CzW4x(^nG+%MBtTTpH z3!~$sT4XY-oUjvHrZ_d^vr=@*_qO%9@kJU zs<)R9;5_;IJOFG0+|e$+Ke6Unfj1P0o#=WtxO)z$uT-={-ty&Y9YP!v9drNWM2&HY zO#t=>SG~rkUfr|mKIPKl*kG9v=PU{>R%sVma+4<$c(pqY1<~w>!lic9oM$ham?q&T zR;2c`K8(fZ(qv8{e0+I(k+^&Whn7a?Ua*E^Rf8e9(j>Yk-6zAx7%G;q94;3|U2M*m z+;B^I>Dqe;3l``Ewu5AjMbBKz4sbqx{CyRfe#|kS_i!>c>L;&w2U!;~q31HKVeQV} zrzF$!hfH>?ygGgF316_UZHQWy1sRy>*Q=;Jla3Az?ZQS4!tm)PD{u#R`1&hZ5J1Nk zaC;5x{m;pbk(h||%psnbvS!3F(WoIeyD!WmKgL-ohptnF{#MChGoISyZ-$Eb^6$4~ zR#A>u+uDoXrQSLxGP=w@AYjU*!tK}Lxn{gujk`-UboVjkS@r9A@uz?=s z@-PA)=`|%9fS5zEOO|;3A6rk>#e(HTdd4SWL`lCLI+;1^21O4`{1tBw>*@x3w)Nql z?URG_g8sUY?e!+)o+w_*A<>IHM>p9slJIFnR#I}Jtn-KJP-{9sxY>{zuVb!7FgnRCA0GdYH#5}(Z9Dy_<%3P9;J zIYC;ISHW#Or=)f#4)|sfq^qFA+a#MeLxFv3tF8{JO)8r<@ zt=;>=`&+BUphF_&>HGCoAM75Myjm&PihoRYB(%%ub@8IIy!^OCv-FP5Bcf2n$jjR1 z>v_bRm+qm1P;D6N;SEKfz?-KaB&eYBQQ%|5Ij(6D>{udWl$!7JwyM;i`T@9?#yX6P zqq&#(Z7BCG3Mr6Od`x~QzY9Ovm(D1u*e&#^FViRMhA<=v215|DQtSLm8Pz}pW0CxO z@K&KqyFKJ>?t|8b@q`tcI?d_u9R~5_F9eR z+ZWxsLF>Vpg%zhee~W%ewqi0viF87n{ZC}q_?8fao1-)m7QfYxouJle++IP8%8v*Z zp^qI$g~Au^EqmLNw2&CzJ?|3R2R@HN1QP^pnpS`rp=tSRxV%0cq}1j8tZb!`emgR~ zWRSE#q@}0de~y(&4g*lMM}^a%_t-j$^~It4c`NqFhCi>kk-=0KVV7NNP3@V@@_6op=QjA@gK-!2t~}K@ zt$1R|-n$fggn;*!bovj-lW0xnE=-%PjY*rlFg=M!pk>?8UT<~#~;Oy~I~@fl8>txmKq z1kdYW@z~e&WISI)Wk@4&zil9W^5l%Z`R9yh1%6{ExW-32R*0F}<0Yoz1Eqfuzq;O) z#c%?!S679kYT5DrBWIPl+fMANwrGfen0jD#W|MOVzwt8t%W^E``v^JsN39|oZ9dX+ zH|n(RL{sq{1u~|$WWWChf@A)R;H~yuipt{OKe#{b>2~3x&$6z`N$?9cvOj9MN6#I# z;k#PM(y)35K}$~WF13CU?7K2$&}cOC-!ZWOTWb&u@5(3>YJw4P$9SO|j)!IZ6SAs% AJpcdz literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric-members.html new file mode 100644 index 000000000..022d9a56b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric-members.html @@ -0,0 +1,47 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > Member List

This is the complete list of members for moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >, including all inherited members.

+ + + + + + + + + + + +
boundsmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [protected]
epsilon(const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj)moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > [inline, private]
functor_category()eoBF< A1, A2, R > [static]
moeoNormalizedSolutionVsSolutionBinaryMetric()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline]
operator()(const ObjectiveVector &_o1, const ObjectiveVector &_o2)moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > [inline]
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline, virtual]
tiny()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.html new file mode 100644 index 000000000..bb64895b9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.html @@ -0,0 +1,171 @@ + + +ParadisEO-MOEO: moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > Class Template Reference

Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. +More... +

+#include <moeoAdditiveEpsilonBinaryMetric.h> +

+

Inheritance diagram for moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >: +

+ +moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + + +

Public Member Functions

double operator() (const ObjectiveVector &_o1, const ObjectiveVector &_o2)
 Returns the minimal distance by which the objective vector _o1 must be translated in all objectives so that it weakly dominates the objective vector _o2.

Private Member Functions

double epsilon (const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj)
 Returns the epsilon value by which the objective vector _o1 must be translated in the objective _obj so that it dominates the objective vector _o2.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >

+ +Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. +

+M., Grunert da Fonseca V.: Performance Assessment of Multiobjective Optimizers: An Analysis and Review. IEEE Transactions on Evolutionary Computation 7(2), pp.117–132 (2003). +

+ +

+Definition at line 24 of file moeoAdditiveEpsilonBinaryMetric.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
double moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::operator() (const ObjectiveVector &  _o1,
const ObjectiveVector &  _o2 
) [inline]
+
+
+ +

+Returns the minimal distance by which the objective vector _o1 must be translated in all objectives so that it weakly dominates the objective vector _o2. +

+

Warning:
don't forget to set the bounds for every objective before the call of this function
+
Parameters:
+ + + +
_o1 the first objective vector
_o2 the second objective vector
+
+ +

+Definition at line 35 of file moeoAdditiveEpsilonBinaryMetric.h. +

+References moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::epsilon(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + + + + + + + +
double moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::epsilon (const ObjectiveVector &  _o1,
const ObjectiveVector &  _o2,
const unsigned int  _obj 
) [inline, private]
+
+
+ +

+Returns the epsilon value by which the objective vector _o1 must be translated in the objective _obj so that it dominates the objective vector _o2. +

+

Parameters:
+ + + + +
_o1 the first objective vector
_o2 the second objective vector
_obj the index of the objective
+
+ +

+Definition at line 64 of file moeoAdditiveEpsilonBinaryMetric.h. +

+References moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::bounds. +

+Referenced by moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..636b8dfc529ed5fbdc6bf2d0393380a959eae336 GIT binary patch literal 2698 zcmchZX;_l!8pmnsv`%2z88tz(8l5zeToJbnml{-ZsT@VkN=wah!JVLNc`Hq7OmRWU z%yh~?O+#=^3TI4HLr}-k+yZgSP$LXE*fggzA5Q0dnh)>w-tYf(_2x3j%@G@7wF(0Rk<*1OhEXtXQs8G~A;|%9r|n7cWPJLZLJjibfjk@O7p2>1k|i zOlne$C_k6sJ={D&yWjK#gFtJy>~pa9ilSplMowsJKKT)R~yKGHoo*^9X?p@7x3@4UWZh5TY>e zL!6=kyRAoS2%AIaENSVvI>dDq=0>th?E(Rqp>o8>AwM{Nq{2+1E(1q(@!m#$;Q=f#!z*s}c2MBBet zyfCHVOafKxV*YwU9{oIdDb!9K6#g;cf*E7Mu6~U*T{)#RlQfQwQ&jBYx}DXyMd1cM5-ZIuZb|dM>`#VJ<60(^6JGS>c|> zNUTS<0hNNLnCdC8rzXgX@Isq7tirOhuFIqgHN&w3c$^p~mp1b$O8wheZyOk8uGkP?9?9@?sxP&SaIPk za{aygy0>gQ>bWan{zEwI5k4!67uBI5=NCx&4o;6c*;bypwjNdcgq42*g%4Srs1}UZ ziYhE0OdnKkU=*3Z+;0Kh(0+^*k@cqL4{c^YcB>)ddB%=ObZ@EE?EP|kfD&J#=k7DO;gndAS*g23fYq+cKID$HfB`?%BMKS2yweH#)xDK*4KWfcz*%jd4?s~K;@n>{8{ zLy+1Yd354lzE(pXpA3$+y4d2uPaS0XG7hpz#6Fvh77S6fjj8}j!7y+%s7$rbf%ZI= zZR&q|3Bq_(?>@T6Or$eIcsv?%dHC3inRB8@9~E>ySSP;%l?EnPzkc7#I`3~&@A6`@ zkbEX{s@Qj+B&q=HXR{;T3>N=`r^J~trjJh`6JE0ESjT=rV640AEn>yUv+k4!r@dI0 zy8~@36{^4}wR13XqqK4{`$?Y_9*(lEjO zRsFy!PM0=n9%xwy@T*Nnl0%KV_HAn)LDc>(bIM4OE)3ejGu(?`GBK1OwgL&iMk&TD zMBz4%N#b(i?&ChT*R91%E#Y3Q>R@5pMqRvg7hU?{OAYGZ@S-6=;ed5dR%ct- zhI(i9rM_IX;cWpr-dl5-_TP{QWH4tKnvnF{nmqWX;{K=MFqtzD6RpFqslLX!<&Vp* zu(-oYsB6!F`FgKnlZsNxutdm#C2f2q#xQ^?t#U~RdruD$ z!G1(rZ77?N4HDE;(>O6_h7fhsi)H~1d*|S%LLulJ?rM(^q6Lo)-eUK z5ZWM$Vl{{b^~1Rk3OE4KKGw*NB-_p>*)fM|VZ!GNLO)vnDj2c(qEq(h&soe%aWept zN(qYUOJweRG20hfM>j|JHGEIM?wk1F`Al`t4Oel5FTOAFl~JC97RGveesF^@WQVYO zZfqa^A1IgBlpYV0->EXQ(h&{yD!c&A6pY7cz_g~Odu3>on+?ko+s+xHqS}e?b$mtShPz0|$rcPq@sP6)Kc-O5k-K%Kf z(A)?ZT8=*4KPKfJVa%&}r{pG~{e!+WvWw@kU^5WXkRRg;44e)0FZ#ww+p(+8-S39U$E_{eiJ*=(Y?4!d1E_ew^?M& z`=m6rKx-0|;_v1RoR);A`yqV?Rvk;GyT%sn8+#khHt#J`o5Jq-0#8|fFFAuE3yAq$ d()q + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoAggregativeComparator< MOEOT > Member List

This is the complete list of members for moeoAggregativeComparator< MOEOT >, including all inherited members.

+ + + + + + + + +
functor_category()eoBF< A1, A2, R > [static]
moeoAggregativeComparator(double _weightFitness=1.0, double _weightDiversity=1.0)moeoAggregativeComparator< MOEOT > [inline]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoAggregativeComparator< MOEOT > [inline]
moeoComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
weightDiversitymoeoAggregativeComparator< MOEOT > [private]
weightFitnessmoeoAggregativeComparator< MOEOT > [private]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.html new file mode 100644 index 000000000..77c14acea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.html @@ -0,0 +1,162 @@ + + +ParadisEO-MOEO: moeoAggregativeComparator< MOEOT > Class Template Reference + + + + +
+
+ +

moeoAggregativeComparator< MOEOT > Class Template Reference

Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. +More... +

+#include <moeoAggregativeComparator.h> +

+

Inheritance diagram for moeoAggregativeComparator< MOEOT >: +

+ +moeoComparator< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + +

Public Member Functions

 moeoAggregativeComparator (double _weightFitness=1.0, double _weightDiversity=1.0)
 Ctor.
const bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 < _moeo2 according to the aggregation of their fitness and diversity values.

Private Attributes

+double weightFitness
 the weight for fitness
+double weightDiversity
 the weight for diversity
+

Detailed Description

+

template<class MOEOT>
+ class moeoAggregativeComparator< MOEOT >

+ +Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. +

+ +

+Definition at line 22 of file moeoAggregativeComparator.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoAggregativeComparator< MOEOT >::moeoAggregativeComparator (double  _weightFitness = 1.0,
double  _weightDiversity = 1.0 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_weightFitness the weight for fitness
_weightDiversity the weight for diversity
+
+ +

+Definition at line 31 of file moeoAggregativeComparator.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const bool moeoAggregativeComparator< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns true if _moeo1 < _moeo2 according to the aggregation of their fitness and diversity values. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 40 of file moeoAggregativeComparator.h. +

+References moeoAggregativeComparator< MOEOT >::weightDiversity, and moeoAggregativeComparator< MOEOT >::weightFitness. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.png new file mode 100644 index 0000000000000000000000000000000000000000..6a43ed01696985e399f545f5749a02ddadf71a7c GIT binary patch literal 1050 zcmV+#1m*jQP)FL|dtLh;{*0G3gB$#5 zivXb-hAce=-VQ^ShDY5U;mP6%1dr(z03}I);z)4pk(t6Zg7L21i$pB^IPrfy~{rs{`2pq@UNero5F7#?FKiv!3}P3gB#r71~<6D zPk~?haNxerWDNeh;h4XGl0S=MmFEg$e$IYKnqv%Y4kJ|0^*OZ_vf7UDNLhpqJY!;H z>;Z61rzkw)QPMeCBM%rJ*X;cUIQu-vypM3fiO<*2*TBt4-bu{!TNv z!B2)?`qTN+KMkJ?x4hcz;5UwTgB#r71~<6D4Q_CQ8{FWhz%P9`aNlP#2LHA2IF~DH z#PaB!N?Q1U$&iJzmUZyi2ly>KjbO|vwm4R4pAGOxNeyVKcJNGvJ0gx%xmpbmn)3)x zYv^X+0b)t51WDNi5<{s`%jIear6tGMh0kpL3|uOprtn-C6~)0)H^sA8Z~$m5@6(^a zOO09sr-C^=3LNyR(6@Ys{><{R2iG#Ospa$Vmn`RPmy{aAp$BK5m!iE%v~Tx$iFUfr zDe8lkW#Vq6qm--ZRdITszY^_B?S=YNgTD{ou^If1@JoL>U;3xvbK#a(yB++-(Qa^q z8{FUqH@LwKZg7Je{1iA`*Zkmj*@Bmv!40m`zOu_*fWC@rMxNdd@D1FdAYXzz_b6-E z20?@v5?RN<>qA4m(k6&z`F zaLRAto~OkHdVS$lK-W4R;HhX0WDcZdIWKGC54npL(;|EqPM-?AnYQ2ueRZ@L?j4WS ze_kh$*$X_my0)Cx)=Ue)3x^t>g(Oiy3wLyd1BEj?o!v0A?Wi%aX^@kvEg!PI442TW z;ni+6me0aFmMc`<47%;v=MuVZ$jiw-Z{TJ2ZnRH*UZR~eG}?y}?HHD*jyEc>Ho+;{ z`G!e-iuNj;C-?b7wD()1xbQtV^QEw&&BDEg@uJp2aPdMJoC!ap8T^j$D}Orw2i$=3 Up0G!;;s5{u07*qoM6N<$f|x`L?*IS* literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAlgo.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAlgo.html new file mode 100644 index 000000000..ecae6cb2c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAlgo.html @@ -0,0 +1,61 @@ + + +ParadisEO-MOEO: moeoAlgo Class Reference + + + + +
+
+ +

moeoAlgo Class Reference

Abstract class for multi-objective algorithms. +More... +

+#include <moeoAlgo.h> +

+

Inheritance diagram for moeoAlgo: +

+ +moeoEA< MOEOT > +moeoLS< MOEOT, Type > +moeoEasyEA< MOEOT > +moeoIBEA< MOEOT > +moeoNSGA< MOEOT > +moeoNSGAII< MOEOT > +moeoCombinedLS< MOEOT, Type > + + + +
+

Detailed Description

+Abstract class for multi-objective algorithms. +

+ +

+Definition at line 19 of file moeoAlgo.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAlgo.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoAlgo.png new file mode 100644 index 0000000000000000000000000000000000000000..464a61acdf631d28e6120658ce87de0ef781bd1c GIT binary patch literal 1962 zcmbtVeLT}^8=n+Mhp9ACcAVrTCOIdsi-bHg&6=0J;mOKNNK?+H$h?%N5wUojKFlbK zq;1AHk!VPssT|~NL}gx@`Q=^S!k%?L&vQQKpXZO~dH%TX@Atm$>wDeT=W|{6=gPpK z5n9{#ZU=!tT1d|mz97(6ijt>qRaNd3=X;Av(8HkoJroLsk}4F!k`fX_$$no#q3~*} zVoZ5dq4=WxK*vA!hl4=s$B`#o{jU^Fv1r+BhaK%YxB8MF(^Lg}2veR{zdH&0yphA7 z+p|Ns&C1j&AfRTEJS;-+eOdG6cI??2eK7u&WA>8VtZ4nf`eUmy*X zHLkzrqfha<3yH1p<&U#H$;9z5bN)H>?b@jB{jXLesK=s#)`1>{Lv{p!8{Byb)=cn`aI=C9J82-5I75ohZ z#|QKH_n>Rgsww1_eQ2 zP*DBBV3*#VDVbmIU0iVRtrxvXP+_~5I*51k4<8F09CQ)Op@4=f338ASTivUY^5|@t zDhU6Fqro_!jv>fZ`>cX{Rcx~J!FT^kg6@Suk2eb8HaK`nTq-p}8DMG)(5(#dcANN~ zGDz*W9QTki)rdU=`U@}hZYw_c)_*0e5LSJ#+#GM3ijh+?rQ@q#T;31f7aSUqVDbQ> ztfX*!^(1`INSO!0O!<;35UNaq#IodrwK#d>d}@|&f*$2<-)5B${ONGmM3b;Pj9+)>33k$z2fwJ^UcEzbI=>81m;07OoKA9kP$Z7+@=c+Rq~N?4&E0#=?B zU{w|;T8&=!J;0UCwX%4%OZ~&h( zta;%T!|~ZSGmD`tB2i5c42gk`;$0(Kp3b8$i}i0@3XKb%Tkq7B+p)W>oj>7Cb{{5~ z=}xGzyP|!ygQdG{(7`XyXG}}rK+VKPB}&}zI^bNK`A*Xr|8zp>Dm053bcWkG9~XR1 zU||~2(G*9AaZYuoQXR5neO+3b1hZegxp``3O@rlpbTKo)tlIuz8$6y&W;v5sPJFNi zCr@3xKb1N!gd6kG-x26zXT@id0@6A@bNuR@Bx}}MI*DmHf3Ef{@DF6S(@|}X`xYQ{ zbnQZRAqPeq$Hof#e&Eb;ek8 zk#AIk?Gh{9`Q^~E|4N4~zOxQv(P_O1b~3@6>c3rT;9-(-)~)1p6WZaplHvYLuZ3N& zy$XqUXSCcGMLZdT!H39ixe|E2ZqQ@V3j4W-iTV^nCTeY(0I1Cu53zlAa05Z&%AE z>LEq)rIF4Hc78(!L6LwZGZqlU9?d=Js&lkbt#PgCYJRVkJYEzQ#_}v=bXakVPM87F z_KC|MaOA*t$*TdLY>=I;|54+HqupY!X5c1aZTVMUf3GGMG|;hEOk8sCJ`eq6D0|Ec z!*qx$0dmn<@R|JIdMr#ecSs?)(mbjiocUmA(QqmO9ndjjRJ<~MFgu1ig}_!ezdv>~ z-Ky@Y80p>6;X{W#KG3ksMw*uS2p@N6kp^VtfA+iN1j81d(#zm+j{wolHC=}CgytiY zS&#NXCm&Kfjaksu-KVnP=7W({P7P2|{#||B(VjkvkJ9E|lZ`y_o zbLmxN&)os^V=c?_hZV~V6k>?;;?|Eq5tQ=8VzS9tl4p~&u7UjJKen*(f~p=W@do3Q b+kEn(bemaMJv%}DoU5DHg^r literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchive-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchive-members.html new file mode 100644 index 000000000..0e6ecb7bc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchive-members.html @@ -0,0 +1,80 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoArchive< MOEOT > Member List

This is the complete list of members for moeoArchive< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
append(unsigned _newPopSize, eoInit< MOEOT > &_chromInit)eoPop< MOEOT >
best_element() const eoPop< MOEOT >
className() const eoPop< MOEOT > [virtual]
comparatormoeoArchive< MOEOT > [private]
contains(const ObjectiveVector &_objectiveVector) const moeoArchive< MOEOT > [inline]
dominates(const ObjectiveVector &_objectiveVector) const moeoArchive< MOEOT > [inline]
eoPop()eoPop< MOEOT >
eoPop(unsigned _popSize, eoInit< MOEOT > &_chromInit)eoPop< MOEOT >
eoPop(std::istream &_is)eoPop< MOEOT >
eoPop(void)eoPop< MOEOT >
equals(const moeoArchive< MOEOT > &_arch)moeoArchive< MOEOT > [inline]
Fitness typedefeoPop< MOEOT >
fitness_traits typedefeoPop< MOEOT >
getPerf2Worth()eoPop< MOEOT >
invalidate()eoPop< MOEOT > [virtual]
it_best_element()eoPop< MOEOT >
it_worse_element()eoPop< MOEOT >
moeoArchive()moeoArchive< MOEOT > [inline]
moeoArchive(moeoObjectiveVectorComparator< ObjectiveVector > &_comparator)moeoArchive< MOEOT > [inline]
nth_element(int nth)eoPop< MOEOT >
nth_element(int which, std::vector< const MOEOT * > &result) const eoPop< MOEOT >
nth_element_fitness(int which) const eoPop< MOEOT >
ObjectiveVector typedefmoeoArchive< MOEOT >
paretoComparatormoeoArchive< MOEOT > [private]
printOn(std::ostream &_os) const eoPop< MOEOT > [virtual]
readFrom(std::istream &_is)eoPop< MOEOT > [virtual]
scale()eoPop< MOEOT >
setPerf2Worth(eoPerf2Worth< MOEOT > &_p2w)eoPop< MOEOT >
setPerf2Worth(eoPerf2Worth< MOEOT > *_p2w)eoPop< MOEOT >
shuffle(void)eoPop< MOEOT >
shuffle(std::vector< const MOEOT * > &result) const eoPop< MOEOT >
sort(void)eoPop< MOEOT >
sort(std::vector< const MOEOT * > &result) const eoPop< MOEOT >
sort()eoPop< MOEOT >
sortedPrintOn(std::ostream &_os) const eoPop< MOEOT > [virtual]
swap(eoPop< MOEOT > &other)eoPop< MOEOT >
swap(eoPop< MOEOT > &other)eoPop< MOEOT >
update(const MOEOT &_moeo)moeoArchive< MOEOT > [inline]
update(const eoPop< MOEOT > &_pop)moeoArchive< MOEOT > [inline]
worse_element() const eoPop< MOEOT >
~eoObject()eoObject [virtual]
~eoPersistent()eoPersistent [virtual]
~eoPop()eoPop< MOEOT > [virtual]
~eoPrintable()eoPrintable [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchive.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchive.html new file mode 100644 index 000000000..a5dfb18a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchive.html @@ -0,0 +1,324 @@ + + +ParadisEO-MOEO: moeoArchive< MOEOT > Class Template Reference + + + + +
+
+ +

moeoArchive< MOEOT > Class Template Reference

An archive is a secondary population that stores non-dominated solutions. +More... +

+#include <moeoArchive.h> +

+

Inheritance diagram for moeoArchive< MOEOT >: +

+ +eoPop< MOEOT > +eoObject +eoPersistent +eoPrintable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type of an objective vector for a solution.

Public Member Functions

 moeoArchive ()
 Default ctor.
 moeoArchive (moeoObjectiveVectorComparator< ObjectiveVector > &_comparator)
 Ctor.
bool dominates (const ObjectiveVector &_objectiveVector) const
 Returns true if the current archive dominates _objectiveVector according to the moeoObjectiveVectorComparator given in the constructor.
bool contains (const ObjectiveVector &_objectiveVector) const
 Returns true if the current archive already contains a solution with the same objective values than _objectiveVector.
void update (const MOEOT &_moeo)
 Updates the archive with a given individual _moeo.
void update (const eoPop< MOEOT > &_pop)
 Updates the archive with a given population _pop.
bool equals (const moeoArchive< MOEOT > &_arch)
 Returns true if the current archive contains the same objective vectors than the given archive _arch.

Private Attributes

+moeoObjectiveVectorComparator<
+ ObjectiveVector > & 
comparator
 The moeoObjectiveVectorComparator used to compare solutions.
+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector
paretoComparator
 A moeoObjectiveVectorComparator based on Pareto dominance (used as default).
+

Detailed Description

+

template<class MOEOT>
+ class moeoArchive< MOEOT >

+ +An archive is a secondary population that stores non-dominated solutions. +

+ +

+Definition at line 24 of file moeoArchive.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + +
moeoArchive< MOEOT >::moeoArchive (  )  [inline]
+
+
+ +

+Default ctor. +

+The moeoObjectiveVectorComparator used to compare solutions is based on Pareto dominance +

+Definition at line 44 of file moeoArchive.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoArchive< MOEOT >::moeoArchive (moeoObjectiveVectorComparator< ObjectiveVector > &  _comparator  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_comparator the moeoObjectiveVectorComparator used to compare solutions
+
+ +

+Definition at line 52 of file moeoArchive.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
bool moeoArchive< MOEOT >::dominates (const ObjectiveVector _objectiveVector  )  const [inline]
+
+
+ +

+Returns true if the current archive dominates _objectiveVector according to the moeoObjectiveVectorComparator given in the constructor. +

+

Parameters:
+ + +
_objectiveVector the objective vector to compare with the current archive
+
+ +

+Definition at line 60 of file moeoArchive.h. +

+References moeoArchive< MOEOT >::comparator. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
bool moeoArchive< MOEOT >::contains (const ObjectiveVector _objectiveVector  )  const [inline]
+
+
+ +

+Returns true if the current archive already contains a solution with the same objective values than _objectiveVector. +

+

Parameters:
+ + +
_objectiveVector the objective vector to compare with the current archive
+
+ +

+Definition at line 78 of file moeoArchive.h. +

+Referenced by moeoArchive< MOEOT >::equals(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoArchive< MOEOT >::update (const MOEOT &  _moeo  )  [inline]
+
+
+ +

+Updates the archive with a given individual _moeo. +

+

Parameters:
+ + +
_moeo the given individual
+
+ +

+Definition at line 95 of file moeoArchive.h. +

+References moeoArchive< MOEOT >::comparator. +

+Referenced by moeoArchive< MOEOT >::update(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoArchive< MOEOT >::update (const eoPop< MOEOT > &  _pop  )  [inline]
+
+
+ +

+Updates the archive with a given population _pop. +

+

Parameters:
+ + +
_pop the given population
+
+ +

+Definition at line 138 of file moeoArchive.h. +

+References moeoArchive< MOEOT >::update(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
bool moeoArchive< MOEOT >::equals (const moeoArchive< MOEOT > &  _arch  )  [inline]
+
+
+ +

+Returns true if the current archive contains the same objective vectors than the given archive _arch. +

+

Parameters:
+ + +
_arch the given archive
+
+ +

+Definition at line 151 of file moeoArchive.h. +

+References moeoArchive< MOEOT >::contains(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchive.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchive.png new file mode 100644 index 0000000000000000000000000000000000000000..d3035b86eb08f65900b238d190e33ab5ec6370b2 GIT binary patch literal 1084 zcmeAS@N?(olHy`uVBq!ia0y~yU~~bp53n!;$-YVK{Xj}0z$e7@|Ns9$=Kuc(=Fd-< z0AzvjfddDs5B+}v7rW_x@@QmrP=WV?0B)?cVN_UxtZ z{;Uh{zCQ|Dmi+AMjfqL;FCY2vcKoQ#g+#Y@ z&7UTPe+5{--~7q`fZ>RB`vakW=1hV@f^J+ZxR4-N3`$J2 z?PUJL^oV2sF;AsVS>gJaYln~N?~gn#T|Zx1eb#Nk>(9g2+8>^$UH#}^^zsC0fxlN{ zCLNu>a{g~kq34_0Lwq*!8^-6TiEZ;~e75cP>YsO1UhVCOI^TU!q2r&xl)WpWg%3ZL zp1sxTV(-qo-P+0BadX0sTw<%7oF1_Y%;)b^sWaR7-+X23!{ve%7eSf-qU7z_w(}k9SE6>h#-|qeUt=5ghO%-BSJG_4O1+KF{wB4cP zw#?DaJNuGvD0iItZ_OXPd6QY7d}za&c?MGw&#paR{YS0*`{MuA-78iLv8E`l`thMj zf_LT%e#e{LyI2EXo2-fw`nzMdt<~MTmdKI;Vst0IT!;CIA2c literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater-members.html new file mode 100644 index 000000000..b98fdeb3d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater-members.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoArchiveObjectiveVectorSavingUpdater< MOEOT > Member List

This is the complete list of members for moeoArchiveObjectiveVectorSavingUpdater< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + +
archmoeoArchiveObjectiveVectorSavingUpdater< MOEOT > [private]
className(void) const eoUpdater [virtual]
countmoeoArchiveObjectiveVectorSavingUpdater< MOEOT > [private]
countermoeoArchiveObjectiveVectorSavingUpdater< MOEOT > [private]
filenamemoeoArchiveObjectiveVectorSavingUpdater< MOEOT > [private]
functor_category()eoF< void > [static]
idmoeoArchiveObjectiveVectorSavingUpdater< MOEOT > [private]
lastCall()eoUpdater [virtual]
moeoArchiveObjectiveVectorSavingUpdater(moeoArchive< MOEOT > &_arch, const std::string &_filename, bool _count=false, int _id=-1)moeoArchiveObjectiveVectorSavingUpdater< MOEOT > [inline]
operator()()moeoArchiveObjectiveVectorSavingUpdater< MOEOT > [inline, virtual]
result_type typedefeoF< void >
~eoF()eoF< void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.html new file mode 100644 index 000000000..2d96408d7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.html @@ -0,0 +1,145 @@ + + +ParadisEO-MOEO: moeoArchiveObjectiveVectorSavingUpdater< MOEOT > Class Template Reference + + + + +
+
+ +

moeoArchiveObjectiveVectorSavingUpdater< MOEOT > Class Template Reference

This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. +More... +

+#include <moeoArchiveObjectiveVectorSavingUpdater.h> +

+

Inheritance diagram for moeoArchiveObjectiveVectorSavingUpdater< MOEOT >: +

+ +eoUpdater +eoF< void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoArchiveObjectiveVectorSavingUpdater (moeoArchive< MOEOT > &_arch, const std::string &_filename, bool _count=false, int _id=-1)
 Ctor.
+void operator() ()
 Saves the fitness of the archive's members into the file.

Private Attributes

+moeoArchive< MOEOT > & arch
 local archive
+std::string filename
 target filename
+bool count
 this variable is set to true if a new file have to be created each time () is called and to false if the file only HAVE to be updated
+unsigned int counter
 counter
+int id
 own ID
+

Detailed Description

+

template<class MOEOT>
+ class moeoArchiveObjectiveVectorSavingUpdater< MOEOT >

+ +This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. +

+ +

+Definition at line 28 of file moeoArchiveObjectiveVectorSavingUpdater.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoArchiveObjectiveVectorSavingUpdater< MOEOT >::moeoArchiveObjectiveVectorSavingUpdater (moeoArchive< MOEOT > &  _arch,
const std::string &  _filename,
bool  _count = false,
int  _id = -1 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + + +
_arch local archive
_filename target filename
_count put this variable to true if you want a new file to be created each time () is called and to false if you only want the file to be updated
_id own ID
+
+ +

+Definition at line 39 of file moeoArchiveObjectiveVectorSavingUpdater.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.png new file mode 100644 index 0000000000000000000000000000000000000000..c70a60fc04c4d881d75a7863a70da4b98c0a66b3 GIT binary patch literal 1285 zcmeAS@N?(olHy`uVBq!ia0y~yVDtg953n!;$+@oX)j&!jz$e7@|Ns9$=Kuc(=Fd-< z0AzvjfddDs5B+}v41v8gB`H!p8VixZ>rjxnuw#4)h;b|dzbv%vDPvlOSbuxGAO_S*n zS(7SGT-4Ej++ApTiN|u$?81vNukOTTzt1{*bxHrTz|C{Mh+MDm*!VqLPc`U%_Or^} zduDk}D>lCNsOZw4hMhN4t70~tjS}`=_I#(L^PdKvdg0*9lU8P)ys{-l!uRV^-Q#bW z3S5_ebI^78czyb-ATNO0Zp&QE6SaOf!JHz(Mx_<5mXtD@-!va~ipSh1^eg zD)DsLw<}wcv!aq#NS@>QnZjqciLKSTp&F)=uO_Nt~KHO|_ zJ7~!c_OhFDlT!|SE&e>&BzxI%^|-A*{kM}R@@)98oAR|~H#5+4@jsUzPX(r`wu>S0 zw~As4p8lWxzUqeY38wjuChQP@YMPk(HbyltXEE}vV6|8v_Mm}$PRxaLiKf~6AFQ4I zc-b;Vp#9Hh?bF^7w)@%bg@<;pyIFQ3?77qZliN<0o3=N`{`7Nh*%Vpr(fa>F$=@Hf z{{I3V{=O7>x%_?q#hCckT8{D;o3nOpDSc@>Mc%XcZ(RJ(3DG}d&aDl0&3xr_`)QHN zr-Li&WDh()SoGNR)#{ednm?j9ns~eKh`XF$`1$YbtXcbdUaSiKRrE8|V`}dCor|V! z(~o~0lu%@nWgTxGd-1CB=D5DDVt>=a>nbO#ob_|b&&|)`3aeM$tUAH8{qAy^%WWC6 zW*=V{S^s=XMjQLtI|;q678%R*oL-n*{~NmbU6lW)g`RWcHGB8eubL^fTsdZ=&(?pH zCYzsY&I(<_w*2xPzO@(kl+Lo0{j<>1R{rPn;ImRsZp)p0Zz{j|<}PcWZC0#B4^7Os z-wfo>EH1vDlXw5j*=HBqEK+}E=DnL4cU?w`XJP;V literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveUpdater-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveUpdater-members.html new file mode 100644 index 000000000..7dfe3fe05 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveUpdater-members.html @@ -0,0 +1,46 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoArchiveUpdater< MOEOT > Member List

This is the complete list of members for moeoArchiveUpdater< MOEOT >, including all inherited members.

+ + + + + + + + + + +
archmoeoArchiveUpdater< MOEOT > [private]
className(void) const eoUpdater [virtual]
functor_category()eoF< void > [static]
lastCall()eoUpdater [virtual]
moeoArchiveUpdater(moeoArchive< MOEOT > &_arch, const eoPop< MOEOT > &_pop)moeoArchiveUpdater< MOEOT > [inline]
operator()()moeoArchiveUpdater< MOEOT > [inline, virtual]
popmoeoArchiveUpdater< MOEOT > [private]
result_type typedefeoF< void >
~eoF()eoF< void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.html new file mode 100644 index 000000000..fd9b9369d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.html @@ -0,0 +1,119 @@ + + +ParadisEO-MOEO: moeoArchiveUpdater< MOEOT > Class Template Reference + + + + +
+
+ +

moeoArchiveUpdater< MOEOT > Class Template Reference

This class allows to update the archive at each generation with newly found non-dominated solutions. +More... +

+#include <moeoArchiveUpdater.h> +

+

Inheritance diagram for moeoArchiveUpdater< MOEOT >: +

+ +eoUpdater +eoF< void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + +

Public Member Functions

 moeoArchiveUpdater (moeoArchive< MOEOT > &_arch, const eoPop< MOEOT > &_pop)
 Ctor.
+void operator() ()
 Updates the archive with newly found non-dominated solutions contained in the main population.

Private Attributes

+moeoArchive< MOEOT > & arch
 the archive of non-dominated solutions
+const eoPop< MOEOT > & pop
 the main population
+

Detailed Description

+

template<class MOEOT>
+ class moeoArchiveUpdater< MOEOT >

+ +This class allows to update the archive at each generation with newly found non-dominated solutions. +

+ +

+Definition at line 24 of file moeoArchiveUpdater.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoArchiveUpdater< MOEOT >::moeoArchiveUpdater (moeoArchive< MOEOT > &  _arch,
const eoPop< MOEOT > &  _pop 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_arch an archive of non-dominated solutions
_pop the main population
+
+ +

+Definition at line 33 of file moeoArchiveUpdater.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.png new file mode 100644 index 0000000000000000000000000000000000000000..9ab110825e7910218537efa2bb2ec6c1d4e7d1cc GIT binary patch literal 799 zcmV+)1K|9LP)zrR8G zWQB;DJ+8gMROzE}?dAKSdlZgyi0?RP%)lI^hk|s6Ac_vqF$WY09b*+GaOx44bS`O^ zznRrGg>*gzOiIY>5_{)^N(|J_rB~7?CbQx$J9f-vey!-5h3~T92kXLlGpv;3>(b;H z2Mrc`IOUkG3lksDF{1_r%2kvxXG%YBUptODsq*V~9p!fWx{PwA9D@P{3KS?%pg@6Q zs*Jfxy3%zely@n#t{R5fs?ysBy=#U_Q|~KYNF8LTG_}i_+d8S%5>uC%qE*V!vbiR@ zf!UxeHRT+Sd2W>r%%-{2nsSP_Qf%gOw=StDZoDpcIVPLtIcCtHK)H%C=1ghKS>H(& z)RWJtTq(z(K!E}U3KS?%pqMISu9B{FT?yrlO1)K>>%-?MwcN*ZkWFrHQ#Mm-=~7CS zTCZ$wQ+|gMO6|4YbZe&6l5$m8dWcMwT2kg^TA|#wY^Xe47egiInB2ZybBxPv%4SN_ zw*I34ltT^5S(PzoN@LFYPO6}ud`{&`IR*s^6ev)jK!F0qRG|UQPu_Z}4;qwDQhc-F zmhHUh>O*%xe4XTv(uStiE5*6?=q(Dx4zD9z9qQUcy+##34o**^#6L-Mnw*ZI6vN9P zCxgh#Nbeg(!s>%--_xRa(pWBs)QGxA(pg{0`;>YV*Ey)>A1eB4R=QYO$zyvZZ%#$= zCCsA4f5npWXE26O$3Ex#YNNbV@#MnXoH)-s dt1{$F=^p{@ELgmXfWH6$002ovPDHLkV1l#Ud^rFB literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment-members.html new file mode 100644 index 000000000..a2f97f50c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.html new file mode 100644 index 000000000..0692d7396 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference

moeoIndicatorBasedFitnessAssignment for binary indicators. +More... +

+#include <moeoBinaryIndicatorBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >: +

+ +moeoIndicatorBasedFitnessAssignment< MOEOT > +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >

+ +moeoIndicatorBasedFitnessAssignment for binary indicators. +

+ +

+Definition at line 22 of file moeoBinaryIndicatorBasedFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..6c4992b8828519270811d44e354e9ce4cedc536f GIT binary patch literal 2163 zcmbtWc~sJS7RRy8jLJ3_)F^EmH9>u;xbK>ZCYF^cnu_M~dFp1Qx z)Y8nfP+T*l=MR@$C=@9d2u)1Uj8Ylu%$&~5nfYt}_?~<3=bU@*x%d0I_xsK9MY@64 zYpn-?KwuAdXFm`~38Of$Rmut^Nx2n}B^e;2u2u2ALj7CJrTibDHwT3TAt+T`O3 zQwisXM1kyuZxr6^R6Lv={8I|2X@NINEH-4nFQpsJv;Z41UDO2tHA7IzO014hR`EFR zS2>6-GlR3z_qQ?n1*gA8T6+_WOT@;Jhpw6qeee^m+C1>$_{pjvm%&6aj(z|El|*R;z`6&0gQYYgifu9uPGWQ%2^x|cX}CpZw*%{-o?bj^fm`xlN79B5fX zDtznO6=t~;lV!$AJ!p%+=F zD1c3k8wU=Z{Rx*q6oFQMfoRReZ|#cR6K&`nI>O0d zY)xY;Q`7b{3t|7zT~{->s-eA7es&YqvC6aKp;nFOy+1ZlueFqx+8Kr-neTbuHe#wZ zRIs@jVa{IB=$+Fh(j%{0w?k0vH)>dPbIN(^oLV*5;78D@lfp#WW$Xz790f%>(j!ZKvt|18G7Dpbxqg>tr{Odac-~YHY$ePaTe6_vJV=*C zn#T9++C%P17Ml8~sXTpD1wcHl;$hXd>9_D%ez}zRLUUx4l{lE&(Az<24ryD`kgCtG zWx9Rcq38wa)slGAO8kc=W8_krJ_P*XDC8>Mxr%oYaJrq<75hIr_Y+=0JlZ8c^d9&g ztFg1tI|gVLGNMtumQ9rpt2@UBvzV-Rc9P#*5FQMoBrF^@bwZDmSQDWlQvv zc-Okz|lZ*_6DjWGvcGeYx3mbgetcA{JvMmuDjm{lGROAZ+z|->xFF6u<1>7 zsTnvR<%0npDnNBQVZw1gqln6Q&bO5Eb-rWkTga2R^r=y%S;FtJO$|gwK9&okn`o0yLKS^um%SmkO;($13;jV6n|4y)k6wz9J(4S-d5=gkEb5e@rz&hu51%G_i4uP6E9QtN*{? z`m36(zHJiK4(|fmTW7`CItlSMHln(mv}{HUJ7@?#J1nWIELkwX1-1w@=Zt&)HhuvM z^kKZCR*nEc0lGDAs`Z2%S#*)m#yTH_a?~dai4DWhpPquU#G8 z+9t#!*d$ABQy+ z_&i;7{Ioh_VqnosT53Go`iG1M>;A;-&U!?6opv|gP_g7F0Da}1JX@klB;<#eC^bgw zndJW%dp5S`KUd_xG5E*kbbW|koQc!hBqPXaZygoaY9sVF=un!kO}blr^bE4RVn={v z(qN&T)0VV{Tio{56L*t(Scw*dv0*!?G(HvclP5;gbWWzG;GIJ+`zz<>ZQXOAxs-~n zHY!7q?f;6~Q<>?uFa=e&D=A0&;c`>M9IQ@tTqu8@qH|Po7#i4Tbfnf$TkAK&w=$kj zw3-_BdZcO6!tzDS%<^}vh_>f#0Y(e8_GME?WBQGvY1W1dt^F{+C4<2UYj<7OBxKI2 z`S80>J2#LSWe8%9`vT+cZk+%JgNvtX^HApoeQm=As!hC5WN%U%xw9avi1_#^0P1Pi zJOrHbzkKX9)X$X^lWSyz&D64yToC2`UjL=X(k6P=gk!k+(>b538jE9>!f*+}^)#35 z2Y}hjmIuMuanP^C6Z&IIahON3V&NjxZh@3t$zGebjme1{m z1ld;L!!qurjO>>cp7UIpJrE!S+w#j|Bm-R#MkLK=e_QIvm8|hTq6oZuP%6cYyy1>` zrFs}WBc@ptaVdh~SG`~M0^Dp_scOB!^7Tb`LC}vEGya=1fxfc#iP^QJ$254S;)ek8 Ma6vj(I)-Ha150pQ$N&HU literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetric-members.html new file mode 100644 index 000000000..0b733f042 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetric-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoBinaryMetric< A1, A2, R > Member List

This is the complete list of members for moeoBinaryMetric< A1, A2, R >, including all inherited members.

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


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetric.html new file mode 100644 index 000000000..a868c053c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetric.html @@ -0,0 +1,71 @@ + + +ParadisEO-MOEO: moeoBinaryMetric< A1, A2, R > Class Template Reference + + + + +
+
+ +

moeoBinaryMetric< A1, A2, R > Class Template Reference

Base class for binary metrics. +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoBinaryMetric< A1, A2, R >: +

+ +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase +moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R > +moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoVectorVsVectorBinaryMetric< ObjectiveVector, R > +moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > +moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > +moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoContributionMetric< ObjectiveVector > +moeoEntropyMetric< ObjectiveVector > +moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > +moeoHypervolumeBinaryMetric< ObjectiveVector > + +List of all members. + +
+

Detailed Description

+

template<class A1, class A2, class R>
+ class moeoBinaryMetric< A1, A2, R >

+ +Base class for binary metrics. +

+ +

+Definition at line 36 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7be93f06ee18f943384142d6d1a2649a7edde5 GIT binary patch literal 5892 zcmd5=cT|(xvd5#+5rl(uB60)~5T!SXfQU2^1St|@0TDxQp-6HB1VQOdnt+OmKr|E~ z1c{1*3WTB%Nj>&1Q2*Hv2_M$+>h6_2YZ- z;zjf;_9Tbh66$#36xWgI!Ao3Ry9%t1nmR=kEfzaOjqLw9zA(?2C!C9B%8EfBj`<4Z z1#agN$;?ocJ)*0H9dZ51>R_Ul*&ZL(yaX3^hWnVJ!pa6-YguNK*sZ_S^j|?JI>Eu( zn`oG`>OXksEvQkNksh^fbdgwjs-gw{%-|lCM0;+=85|ngrU{dtDn6f!bSGq%zYv#U z3N}oo%^pJoq+7?#=4NLE19&R$X=RUSe|^)~*H~#pPJd2g8%pz4JS1slzqi{%=4HOd zh4KT)Cma`sh8L|M-?LPMR=Bt-;M9ybgtGaEB?FD&cJddb9VG`3g|I6x|8oD1Df9LD zWbJ70&TpgG3XV6a8hQU5$#W_hD}j;9r`@}2r?GgB*z~)B{}SF9Z(l9nAjF`EZ#C5etx-YOSy|+iF-#9Q>1JqX zu0be~Iy3JXfx1;WF#GhZ$2eq>OEGw{wxg-U*hbh}KT8!6h}Dc=lF4eM>*t#;e^p>0 zb+dJCoSPzO=f~bWh{~Y zdBm7zf2Vw+faDlCZ3!eYV+)-?2nCIPo-ZJ6IAXfeP|)OcDJUdRrV_xYO?R*F4DJl{ zo=jju%LhZ@3hn>h4*c^!53t(-y}5lggkP~kuWfEek)j{q&&DxKu_D@{j>558o6t40 z7#=3k6!*K1@)6ga<~_%cALb<=`QJc^9v5zhro!vi{M#Z^P(ch1Nn_Gkad}fN(-^|xZ5Qc8c&Jh{p!XC`vwwSNkxCjg z=>o|eknV10Sj8|*#CI_{6J9)_hmJ+6FW3WO!M3dgHl+>JWU`XzMC9XT0$Vk@6|moe z*C@*lfh!<eCx!?c(1JZaUi5+Oq z4n8wh09OEK!CH*+MuWk9KP)F9sk4ia7=_OMjx_(lEkHLHEjhjg*}1}hkE+=p!|Vat z`=h7lzKELb*`OQq{zzrc2&ppq2rq$~lhTtW0S%Qz4zrEJxHisN{+^vb+1X6j9|Vy+ zCIRuyd@hAvh9Z|#t`u$EmU7Yb#y%bLme@A@?xWe#GhC(9%F zq(^^O{0+wm+1;0A1_oF@!uXKB?h{ONX43{<}*MW^2xz}cL@?!LX zKsL-si&PQBAE@02F1~mtedQ|pGc+*fDWub46pBR!)+9*N<(f!3`flbaOfrgyRAHBa z5@I%C`&20V%ggtje^nBucv>y7AYwbR!GEZkP-Q-1BcWfYbL@cEdm-4z1DRc`nue6h%XKiu5%f!8cH7!OxTbW}p zD{2FmL}^sIjwyWzY@<;-MR}*-%_iuF9v9AKFIgxZoqRgbkHX$A{JE|Yc!>z_cVwh> zj4M7o9&JrTy-TW4Y@x2G?P#yKu}iz@W@3VGBN(01G2Qo6BUuR6FAcAs71{l8Z{sWU zsg58OzFS42Uf)q`Vt#Ws-~k4`C88H@m$+0ex%!v&9!$ONitZnJ0TPYXy=)}g&0tMR zkN60g#XxmiUJxl4uca$kmg6aiyjt3P6^X>&!Qnc5lZ%7eR+$WCx=pS9pB zbYiKFr+&Zj4%fmx+1n`vVW0Ol&hiiB#-b*CGW$M-ZCnG>W}vG-?~O!5XJt$t7w*JD>#7jGtS1f2xoFuDkH|AvI=vmhFhBTr6DD+1NmmXWFbSxBIM z4Jq`?`m|ST`%rzdxN&vDBt}fR-myCAonMZ%zYeOo4nKd&+IVl4LQAl8$QvF;nrhMZ zypN6W_v+fxZA&Htv@m%-ql%!Chu3|RCL-vGqkK(4*v1cXlk+#5;B)%n?DKy7xYVtR zFYWZk$E*7xX5P!oZ^M7P?e!3UUJ8rHSYW2d?(;{4)0gWgNHFJV4=*OsWv zwKZzVdQ*T?8(w6dY`FNzyvr)(pGh}V{_M}lgIXxm5@n)BCw*ZOaPU)UbUSk2*x0ZU zOd-?>3HzNMQHwVM;J_%!XCHtb-R|@K(X+{9wX=te4SyMhVg?hO_hq>qMq5NMUF=3# z=wO?a_xigo(A;M5PqU=ak?x(lq&VwqUFmWJQ;)emT2fv9xX~DA`)tpmxZJ=4%6>Pn zehKVzPW<|@2pjv=C7pTbZOSmL)NkR2T7~udjmus1`w5eZSCOsNspUED9Pi;Vu+>V^ zA+fqpE#GY$_n1w)7<(pb_uEQ3;HzLAn%4RQb#BY_&EU3kf{O@iBd~{p>VQc1x4E2k zZxU+PldgIIHR|6*;!!@fZmU^z_{!(*8!^$UhGB1K?}^^S?qKj2w`!-J=(#mZ!(M8( zzrN@@ek-&sDYaxi+-v++I9uG%(nt1AsniD|$!)yIt5mCC?+Nud8a9dSAf2dux$PSR zwu4OHQPze|WCRGE7&tjWGzS{El~IqDXl1N3aalSazcYHk>X$#xG+ZEi3|k+e%{f00 zNWJQxXp*gkqx)YI=vq@LoI)H1H^fT>7tssVhEg zqjt~j!~4aB&$QeI-KN~jzcKDAZMf-OcoX~xkAm4g^ID!3WsDo8w)Oaq42K6-Xa=jC z^8a2Mp3zKvlzP}!rlJyq%?Xl#6Pf2RuOCeN(EFuTl>7C4{RV7tBSJBaDuDW!4w%K{(>9433NpS|M9J3@jE; zASGM(DR^|=x0!tuwRX~aM@C^a@3SbMK}vhVifQ#y!%?~6FX}f~F?#i~dB@0aRU8sX zx$xcxre9_V=fB{yC8uZnv|FyRfQ#qMCGBpc-3piQ4JSBsrBRV5rJa=&>pC}-hZ>Pm zKF5sbY0NW-^$N3!XJzEQ^_w-RSsvR=I!ZWAePWJdIV$4&S`_j{os+Mnx;z~^y^({{ zSVjesdSzmIL95uL>I9Qt`rFzPeqn|#G!&KBT)J65j>(DLW%lTz@kT;uHxXH`dfOM3 zaxOXZetfd!>t)~DhNJBu@lg69f!R{Wvz|Nsa%AStlae<&LBKlez4OfVxw~yw8Qn74 zK6>u0+(6qM*RUC8HgUD|^!4^FsH}7~?tv-;IcZx&O}XS?M1gWMVrmshD>nMf7)VwDk^U$>^gzenwHgy8DagusD9*ju-~EbE{0X~)2=>V9 z7Y!1Ilj@8+=nbhefbzr7w)9bOKesMOad?vl8sP>ejq|GWU8SpAQhA^V97t}rM zls%0pB+x14+v)8gSm{+D1Z!P-iV=_@lh*}W&5}VoEz&HNWVkX4Dz%VjATs^j6sI`7 z1KqM5<>lq5kgm9|hbjd%OeL_#o?}1oExIT%sW6R7P3#OJJ)z5#qlzAqgUMBml7Nw? z6b0jN@p=^{3f7?C!`aIkBuSNmgxXL_v_(yDv`HR zP!JS703GzI5%-}hcnM$O-0!P`M;cSd9-BudmtuQ*D{PJ_Szv#ChR>?`szPT+G)`-X z);PP0NjO;48()8;gB24Fv57q|WVnrvZN2M6Yynsn!}{mko1}Dqf_7pN%V@jxm%_lx zBiE>X=DvM^;%Imm)`;6pa^k0_qZV~`{>E>*X(e7~BAS8P9#a7*lzyD4{BLNZ%7J<`N|Y(qxT;P!`lD*&+)eFbf?f%&R~-0*L+e{>P)2S0Qhc5pV(j z{+Ri<@6t(~@6B5R!_xU8twb(e_`m4YaM~-sRSr)73Lbt5)5>XN$#3)C{jcDTcTriZ z#KroI;_dgGs2m6jg~#PoSVNR)he}^(lvm{`R*NweLpGWyVxcut zI>{rWL_@kd#efuoKVk!9%@|Bzs$cV5;92v^MNE}!nB&o;1(aBtNXXk3BkB}su(NpA zd(cT`de9?aVe9!`TgmnVEy?;AblT)_#S9ng;{I|?WwmuE3wjdd6jM)5f~ z&z~w|GSq_ezf6|+ih0*A$oly8ktE((`S)A__de!~vunau%YZ`-s2l^~3 z8wBJj{68{R%b=?#wCiAjS^jJ`h8^Ao$ExeTuYxk>PTp}}vVSq3`8~=jU!pw5O%y(R zQ<+N2@+r5kIlzorFp~8D*&2DErw^QrEP!OG4Q|on#Gw`X7tD(^?7)-0q}J{3oVHu{ zNuVUC&xXMMVu?vjWAADzY34VlVfQS}KNx0yuV96FB_{k>MDp>ZEq`bu{iEabTjS|B l;AYQ%xX0O^y){taGR$Xx&c literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater-members.html new file mode 100644 index 000000000..2f3041071 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater-members.html @@ -0,0 +1,51 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoBinaryMetricSavingUpdater< MOEOT > Member List

This is the complete list of members for moeoBinaryMetricSavingUpdater< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + +
className(void) const eoUpdater [virtual]
countermoeoBinaryMetricSavingUpdater< MOEOT > [private]
filenamemoeoBinaryMetricSavingUpdater< MOEOT > [private]
firstGenmoeoBinaryMetricSavingUpdater< MOEOT > [private]
functor_category()eoF< void > [static]
lastCall()eoUpdater [virtual]
metricmoeoBinaryMetricSavingUpdater< MOEOT > [private]
moeoBinaryMetricSavingUpdater(moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > &_metric, const eoPop< MOEOT > &_pop, std::string _filename)moeoBinaryMetricSavingUpdater< MOEOT > [inline]
ObjectiveVector typedefmoeoBinaryMetricSavingUpdater< MOEOT >
oldPopmoeoBinaryMetricSavingUpdater< MOEOT > [private]
operator()()moeoBinaryMetricSavingUpdater< MOEOT > [inline, virtual]
popmoeoBinaryMetricSavingUpdater< MOEOT > [private]
result_type typedefeoF< void >
~eoF()eoF< void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.html new file mode 100644 index 000000000..90951ce84 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.html @@ -0,0 +1,148 @@ + + +ParadisEO-MOEO: moeoBinaryMetricSavingUpdater< MOEOT > Class Template Reference + + + + +
+
+ +

moeoBinaryMetricSavingUpdater< MOEOT > Class Template Reference

This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. +More... +

+#include <moeoBinaryMetricSavingUpdater.h> +

+

Inheritance diagram for moeoBinaryMetricSavingUpdater< MOEOT >: +

+ +eoUpdater +eoF< void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The objective vector type of a solution.

Public Member Functions

 moeoBinaryMetricSavingUpdater (moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > &_metric, const eoPop< MOEOT > &_pop, std::string _filename)
 Ctor.
+void operator() ()
 Saves the metric's value for the current generation.

Private Attributes

+moeoVectorVsVectorBinaryMetric<
+ ObjectiveVector, double > & 
metric
 binary metric comparing two Pareto sets
+const eoPop< MOEOT > & pop
 main population
+eoPop< MOEOT > oldPop
 (n-1) population
+std::string filename
 target filename
+bool firstGen
 is it the first generation ?
+unsigned int counter
 counter
+

Detailed Description

+

template<class MOEOT>
+ class moeoBinaryMetricSavingUpdater< MOEOT >

+ +This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. +

+ +

+Definition at line 28 of file moeoBinaryMetricSavingUpdater.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoBinaryMetricSavingUpdater< MOEOT >::moeoBinaryMetricSavingUpdater (moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > &  _metric,
const eoPop< MOEOT > &  _pop,
std::string  _filename 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + +
_metric the binary metric comparing two Pareto sets
_pop the main population
_filename the target filename
+
+ +

+Definition at line 42 of file moeoBinaryMetricSavingUpdater.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ec32e83445ee56cab769e46d8029d0c1c1f739 GIT binary patch literal 1154 zcmeAS@N?(olHy`uVBq!ia0y~yVB`U^53n!;N#_3!w}F&IfKQ0)|NsAi%>Vxn%%7hy z0muU50|yRNANv0U$Ym@E@(X5gcy=R=fq_NB)5S5QV$R#yj+1UH2)G_q%YMLSVeX;# zCA|2*vdag-EYGsEW7EE_Y%x#eXJYZsEtq;|>C19)pZ$5VABr<1+S;Ca_6jsvdaX5! zTfK3v-qu?sZ+?mOnz$$KdlsSAt9dj=IB8v}lwR##sffmq=OErwU@H%y4D zE0L1Yc0T;6$?b;vrbll#vAig|#vGnCgXgl6NTlGpD+WKeMQ=K}f6~3AtEEz^o5j|K z`+l)~__62MtnRhK%Stv&`B&J8_fG46+G5??y{Irk+Q&V9uNj}Us`&c*n)wMC5p8X$ z84DT(%5KUHRSrB2u)!RbB8)l8qQdZ%^e zN@-qiDOl^~eRP?rL1CrOH?Q9I?8jccyMjLnpUhppC`^S%aKtA5waU-sf!p5>RHNq1sgyZq0Pz zX)AvJzWCtKZMWoG8COn!>}H!i-HG>XY_HUk%-& + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Member List

This is the complete list of members for moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AtomType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >
className() const moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
ContainerType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >
Diversity typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
diversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
diversity(const Diversity &_diversityValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO()EO< MOEOObjectiveVector >
EO()EO< MOEOObjectiveVector >
Fitness typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
fitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
fitness(const Fitness &_fitnessValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::fitness(const Fitness &_fitness)EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::fitness(performance_type perf)EO< MOEOObjectiveVector >
fitness_traits typedefEO< MOEOObjectiveVector >
invalid() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate_worth(void)EO< MOEOObjectiveVector >
invalidateDiversity()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateFitness()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateObjectiveVector()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidDiversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidFitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidObjectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
moeoBitVector(unsigned int _size=0, bool _value=false)moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
moeoVector(unsigned int _size=0, bool_value=bool())moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > [inline]
ObjectiveVector typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
objectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
objectiveVector(const ObjectiveVector &_objectiveVectorValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > &_moeo) const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > [inline]
MOEO::operator<(const MOEO &_other) const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::operator<(const EO &_eo2) const EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::operator<(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
operator>(const EO &_eo2) const EO< MOEOObjectiveVector >
operator>(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
performance(performance_type perf)EO< MOEOObjectiveVector >
performance(void) const EO< MOEOObjectiveVector >
performance_type typedefEO< MOEOObjectiveVector >
printOn(std::ostream &_os) const moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
readFrom(std::istream &_is)moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
storage_type typedefEO< MOEOObjectiveVector >
value(const std::vector< bool > &_v)moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > [inline]
worth(worth_type worth)EO< MOEOObjectiveVector >
worth(void) const EO< MOEOObjectiveVector >
worth_type typedefEO< MOEOObjectiveVector >
~EO()EO< MOEOObjectiveVector > [virtual]
~eoObject()eoObject [virtual]
~eoPersistent()eoPersistent [virtual]
~eoPrintable()eoPrintable [virtual]
~MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBitVector.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBitVector.html new file mode 100644 index 000000000..8fc19adc3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBitVector.html @@ -0,0 +1,186 @@ + + +ParadisEO-MOEO: moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference + + + + +
+
+ +

moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference

This class is an implementationeo of a simple bit-valued moeoVector. +More... +

+#include <moeoBitVector.h> +

+

Inheritance diagram for moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >: +

+ +moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > +MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > +EO< MOEOObjectiveVector > +eoObject +eoPersistent +eoPrintable + +List of all members. + + + + + + + + + + + + + + +

Public Member Functions

 moeoBitVector (unsigned int _size=0, bool _value=false)
 Ctor.
+virtual std::string className () const
 Returns the class name as a std::string.
virtual void printOn (std::ostream &_os) const
 Writing object.
virtual void readFrom (std::istream &_is)
 Reading object.
+

Detailed Description

+

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ class moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+ +This class is an implementationeo of a simple bit-valued moeoVector. +

+ +

+Definition at line 22 of file moeoBitVector.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + + + + + + + + + + +
moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::moeoBitVector (unsigned int  _size = 0,
bool  _value = false 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_size Length of vector (default is 0)
_value Initial value of all elements (default is default value of type GeneType)
+
+ +

+Definition at line 37 of file moeoBitVector.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
virtual void moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn (std::ostream &  _os  )  const [inline, virtual]
+
+
+ +

+Writing object. +

+

Parameters:
+ + +
_os output stream
+
+ +

+Reimplemented from moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >. +

+Definition at line 54 of file moeoBitVector.h. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
virtual void moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom (std::istream &  _is  )  [inline, virtual]
+
+
+ +

+Reading object. +

+

Parameters:
+ + +
_is input stream
+
+ +

+Reimplemented from moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >. +

+Definition at line 67 of file moeoBitVector.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBitVector.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoBitVector.png new file mode 100644 index 0000000000000000000000000000000000000000..461c6469d669ab251f84b1950de75478126c50ae GIT binary patch literal 2539 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 + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoCombinedLS< MOEOT, Type > Member List

This is the complete list of members for moeoCombinedLS< MOEOT, Type >, including all inherited members.

+ + + + + + + +
add(moeoLS< MOEOT, Type > &_mols)moeoCombinedLS< MOEOT, Type > [inline]
combinedLSmoeoCombinedLS< MOEOT, Type > [private]
functor_category()eoBF< Type, moeoArchive< MOEOT > &, void > [static]
moeoCombinedLS(moeoLS< MOEOT, Type > &_first_mols)moeoCombinedLS< MOEOT, Type > [inline]
operator()(Type _type, moeoArchive< MOEOT > &_arch)moeoCombinedLS< MOEOT, Type > [inline, virtual]
~eoBF()eoBF< Type, moeoArchive< MOEOT > &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCombinedLS.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCombinedLS.html new file mode 100644 index 000000000..f71f8df5d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCombinedLS.html @@ -0,0 +1,190 @@ + + +ParadisEO-MOEO: moeoCombinedLS< MOEOT, Type > Class Template Reference + + + + +
+
+ +

moeoCombinedLS< MOEOT, Type > Class Template Reference

This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. +More... +

+#include <moeoCombinedLS.h> +

+

Inheritance diagram for moeoCombinedLS< MOEOT, Type >: +

+ +moeoLS< MOEOT, Type > +moeoAlgo +eoBF< Type, moeoArchive< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + +

Public Member Functions

 moeoCombinedLS (moeoLS< MOEOT, Type > &_first_mols)
 Ctor.
void add (moeoLS< MOEOT, Type > &_mols)
 Adds a new local search to combine.
void operator() (Type _type, moeoArchive< MOEOT > &_arch)
 Gives a new solution in order to explore the neigborhood.

Private Attributes

+std::vector< moeoLS< MOEOT,
+ Type > * > 
combinedLS
 the vector that contains the combined LS
+

Detailed Description

+

template<class MOEOT, class Type>
+ class moeoCombinedLS< MOEOT, Type >

+ +This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. +

+ +

+Definition at line 25 of file moeoCombinedLS.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT, class Type>
+ + + + + + + + + +
moeoCombinedLS< MOEOT, Type >::moeoCombinedLS (moeoLS< MOEOT, Type > &  _first_mols  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_first_mols the first multi-objective local search to add
+
+ +

+Definition at line 33 of file moeoCombinedLS.h. +

+References moeoCombinedLS< MOEOT, Type >::combinedLS. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT, class Type>
+ + + + + + + + + +
void moeoCombinedLS< MOEOT, Type >::add (moeoLS< MOEOT, Type > &  _mols  )  [inline]
+
+
+ +

+Adds a new local search to combine. +

+

Parameters:
+ + +
_mols the multi-objective local search to add
+
+ +

+Definition at line 42 of file moeoCombinedLS.h. +

+References moeoCombinedLS< MOEOT, Type >::combinedLS. +

+

+ +

+
+
+template<class MOEOT, class Type>
+ + + + + + + + + + + + + + + + + + +
void moeoCombinedLS< MOEOT, Type >::operator() (Type  _type,
moeoArchive< MOEOT > &  _arch 
) [inline, virtual]
+
+
+ +

+Gives a new solution in order to explore the neigborhood. +

+The new non-dominated solutions are added to the archive

Parameters:
+ + + +
_type the object to apply the local search to
_arch the archive of non-dominated solutions
+
+ +

+Implements eoBF< Type, moeoArchive< MOEOT > &, void >. +

+Definition at line 53 of file moeoCombinedLS.h. +

+References moeoCombinedLS< MOEOT, Type >::combinedLS. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCombinedLS.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCombinedLS.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc8d9deb9800b0706bea3733da46c01fe857ff4 GIT binary patch literal 1797 zcmb_dX;hPE7XDa-62Vg1RL~$`Sqel+29ZT&F+hU}NCbi(CLof8k_b!yDNsQNOGYKo z2oed1DE0u>u;e3wAWH)jA?zcvFS5xN<3a(cIHWn$o->`9Gr#7?`@YY8&i!%kbMABB zYrZ~T>A?2D007YO!n&UV0M*k%Nn=C&oL#CG3@CRipUj1g9`bfzv-P zeXNVU@4ElU#c(=yL+cZZX47nJY+XP{p+bfklbT;*EpH6QLs}HA%SaWD833sxZcy2l z^Q2(<$1h?x{J~hugEkl5=AYO=fl*zh=u7AQ!wRZGuL(j0A~)i=ag-X^)K_XMg)+J7 z$>y}ryB{sYys)M6a>>%YQs^ix1E<*zV>@?r<#iVIqvmq+$w0YP=c&Q-o!4i1$uV~o z4xk^+v5~PGLebEz1AQZl6w=HhUB3+(jwokEt3c|mT%cVK09B1~z;==F&L>-wj2)2{ z(GrGcpI-2h%dCxe|H!;+VvLjYem}J9o}n==b!gXJv-)`8z_dv1Ypn`HS6qS|2x|V2 z&wV|rBK+?Em-0Tb?#b5QhGCa5q=2nlxr^M$Xc7Yn?~51qLhEWDDt8Fv?#+x>yNaZy z9d8={v5EJL5g*BHo2Y;U?}iBf3>{zdPg#69hL|&3=z#uy#=@NoA$OO|kA(cy@#?0x z_iCu0cP+V5Vr|xBA%(RTVJ;?@I@}DhVE2bLI6{0;cX5^j;3tAiIwI8AM_u zdGS%h4myT*PE(GIa45B`>MzzJzeWZwMT#!Dr>+FtpJzvH| zd`=n6nBfxQ0@r|-3IbFpUJ}4YX|8`C=55EZ3%^>k>XUO+$g{7 zb)eF|qOCdT#2?P!m`!Pcf)#X*CzBbGYkx=@iC7oLic|ST38x-(qBlb}Rl!;kiG<%ol} zG6! zwC6$`6KhwwkGE8Gi(_nPlpxMXZ!@!0bw#ownkH zZ+-7F_f?g72!Cz1oK=y;jq3e0m_$tZVh}SJHE)ztt&|kb`q^I}Ofx~lJ&B=MeAQvLas;hP?|17}E!^ge+_}SFo0GTO2^Z)<= literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoComparator-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoComparator-members.html new file mode 100644 index 000000000..4856707b2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoComparator-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoComparator< MOEOT > Member List

This is the complete list of members for moeoComparator< MOEOT >, including all inherited members.

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


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoComparator.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoComparator.html new file mode 100644 index 000000000..3bbce0cdb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoComparator.html @@ -0,0 +1,64 @@ + + +ParadisEO-MOEO: moeoComparator< MOEOT > Class Template Reference + + + + +
+
+ +

moeoComparator< MOEOT > Class Template Reference

Functor allowing to compare two solutions. +More... +

+#include <moeoComparator.h> +

+

Inheritance diagram for moeoComparator< MOEOT >: +

+ +eoBF< A1, A2, R > +eoFunctorBase +moeoAggregativeComparator< MOEOT > +moeoDiversityThenFitnessComparator< MOEOT > +moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator +moeoFitnessThenDiversityComparator< MOEOT > +moeoOneObjectiveComparator< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoComparator< MOEOT >

+ +Functor allowing to compare two solutions. +

+ +

+Definition at line 22 of file moeoComparator.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoComparator.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoComparator.png new file mode 100644 index 0000000000000000000000000000000000000000..616eae5e0d1a8ec560752a95c392eb4ffeafc37e GIT binary patch literal 3417 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 literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoContributionMetric-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoContributionMetric-members.html new file mode 100644 index 000000000..f03f3abc6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoContributionMetric-members.html @@ -0,0 +1,45 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoContributionMetric< ObjectiveVector > Member List

This is the complete list of members for moeoContributionMetric< ObjectiveVector >, including all inherited members.

+ + + + + + + + + +
card_C(const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)moeoContributionMetric< ObjectiveVector > [inline, private]
card_N(const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)moeoContributionMetric< ObjectiveVector > [inline, private]
card_W(const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)moeoContributionMetric< ObjectiveVector > [inline, private]
functor_category()eoBF< A1, A2, R > [static]
operator()(const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)moeoContributionMetric< ObjectiveVector > [inline]
moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
paretoComparatormoeoContributionMetric< ObjectiveVector > [private]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoContributionMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoContributionMetric.html new file mode 100644 index 000000000..f3ece7e27 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoContributionMetric.html @@ -0,0 +1,262 @@ + + +ParadisEO-MOEO: moeoContributionMetric< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoContributionMetric< ObjectiveVector > Class Template Reference

The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. +More... +

+#include <moeoContributionMetric.h> +

+

Inheritance diagram for moeoContributionMetric< ObjectiveVector >: +

+ +moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + +

Public Member Functions

double operator() (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)
 Returns the contribution of the Pareto set '_set1' relatively to the Pareto set '_set2'.

Private Member Functions

unsigned int card_C (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)
 Returns the number of solutions both in '_set1' and '_set2'.
unsigned int card_W (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)
 Returns the number of solutions in '_set1' dominating at least one solution of '_set2'.
unsigned int card_N (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)
 Returns the number of solutions in '_set1' having no relation of dominance with those from '_set2'.

Private Attributes

+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector > 
paretoComparator
 Functor to compare two objective vectors according to Pareto dominance relation.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoContributionMetric< ObjectiveVector >

+ +The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. +

+of the 2000 Congress on Evolutionary Computation, IEEE Press, pp. 317-324) +

+ +

+Definition at line 24 of file moeoContributionMetric.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
double moeoContributionMetric< ObjectiveVector >::operator() (const std::vector< ObjectiveVector > &  _set1,
const std::vector< ObjectiveVector > &  _set2 
) [inline]
+
+
+ +

+Returns the contribution of the Pareto set '_set1' relatively to the Pareto set '_set2'. +

+

Parameters:
+ + + +
_set1 the first Pareto set
_set2 the second Pareto set
+
+ +

+Definition at line 33 of file moeoContributionMetric.h. +

+References moeoContributionMetric< ObjectiveVector >::card_C(), moeoContributionMetric< ObjectiveVector >::card_N(), and moeoContributionMetric< ObjectiveVector >::card_W(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
unsigned int moeoContributionMetric< ObjectiveVector >::card_C (const std::vector< ObjectiveVector > &  _set1,
const std::vector< ObjectiveVector > &  _set2 
) [inline, private]
+
+
+ +

+Returns the number of solutions both in '_set1' and '_set2'. +

+

Parameters:
+ + + +
_set1 the first Pareto set
_set2 the second Pareto set
+
+ +

+Definition at line 54 of file moeoContributionMetric.h. +

+Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
unsigned int moeoContributionMetric< ObjectiveVector >::card_W (const std::vector< ObjectiveVector > &  _set1,
const std::vector< ObjectiveVector > &  _set2 
) [inline, private]
+
+
+ +

+Returns the number of solutions in '_set1' dominating at least one solution of '_set2'. +

+

Parameters:
+ + + +
_set1 the first Pareto set
_set2 the second Pareto set
+
+ +

+Definition at line 71 of file moeoContributionMetric.h. +

+References moeoContributionMetric< ObjectiveVector >::paretoComparator. +

+Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
unsigned int moeoContributionMetric< ObjectiveVector >::card_N (const std::vector< ObjectiveVector > &  _set1,
const std::vector< ObjectiveVector > &  _set2 
) [inline, private]
+
+
+ +

+Returns the number of solutions in '_set1' having no relation of dominance with those from '_set2'. +

+

Parameters:
+ + + +
_set1 the first Pareto set
_set2 the second Pareto set
+
+ +

+Definition at line 89 of file moeoContributionMetric.h. +

+References moeoContributionMetric< ObjectiveVector >::paretoComparator. +

+Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoContributionMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoContributionMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..2f9f60d0ddcd23530f0fcf0a98176b6e7189b374 GIT binary patch literal 2274 zcmbtWdpy&7AE%^Jt4@W`5hbO$lw>)mh*-^~ltnBhmu;b#p}9W7QSPhBZ7MOBOslb& z8TFhwBzLy9XIRLjpA_b@v1i9QJ?A{n>-F@{`Q!Wje!idY=X-g*Kkv``^-Xqmv;!%r zE6K^pfuQy_=j7y8eUjPp3ae$kZ9f?;8+JIu&f7|*Qkf~0HWn6oWyq|R*4WsHdnFx_ zP31A?99`s2eBk)X$*l{A+E|?r&j<1^1rM8Uu`N5@7rBiip8tjREVdSW_Sy&C;>}S5>2(zAOb+M&WQ0clz>1nVFOVG-bbs zbDMYYJR=Oy0BI*LF9$YN=C$DQ5q9c$epA8^zQ$eeEKVfaj7@VU32Y22r)^hKOtJMt z?7H4faa?U@a|KkA3?D^yS~N!BrWoTjY)?)iE_p>i+7O-#u8W25a1~b#3Y8FoIc3i# zytDc3!Pl+BY!w2HG+h5F`tsN3@8H)Qw za6?QdA}gte>s@3?yo}4>=xm7V9wC)x24}5Pvt|zIjD`Y7{N7N}QFFht6}T z|F}SjpBtu*sp>#ORDvR`fkR})oJfuGqVPQF0~)c8)?ChiZ_rV?)XrHh5V@oQc~-iC zsy`tr24SpP-|`Do-VA????-GY75s!xKGJ4P4APxGQaRkP&1?C7T}LZsP>}g&l2-8B z;bFemmEfl)iA&v6t9eTlFL1fCC9$vlg!OM3jk_(Q`fFv+M({@5nPTilI7Yte8~wlG zDa+x_YN@6=m4P=74BM%`LV)k)rng~3p*ZQ_B+Vl+@z3WVdJMbZ6CPMm>Q#$MDB7)s3m;EOQgDhc$1+Jv zrUhSq9%||68ECuK%F#5LJ-W!pum+m&g~dx6np-$};aObpX8%vh7Es`R!$QGj>pz5G z1&J#dK)BY3xW-_ze(H;k47@8Naxdc^VHKDUlwxDKho%The~Zw+)mNB+t)w+|#^iVX zS-Dn_CQ>)N@b%zz7yqrsxso!6XQ$RjUdQiRbGN*lG|d|(Q^#-e|yN*K-PKCuRp zHgn2hC^T@ikrZnV`WOlZC>UqBNy5EGLiN6hRMCg+P1f2$MiF-O7xHfy_puWcz4@a9 z{!Yp93mALI+^=)Q_AiF!9qh*Gtrda&F{E(S@zinTx=fC`a}!p|5f0(9vyCABR+|T6+7zI zGG-yYqm7x!jZvru$GnsTW*1@C{eP^d;!?$u%{hAXWZf8KgzQ5i2eoyyAzOR> + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector > Member List

This is the complete list of members for moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >, including all inherited members.

+ + + + + +
functor_category()eoUF< A1, R > [static]
operator()(const eoPop< MOEOT > _pop)moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector > [inline]
eoUF::operator()(A1)=0eoUF< A1, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.html new file mode 100644 index 000000000..5cf80069a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.html @@ -0,0 +1,95 @@ + + +ParadisEO-MOEO: moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector > Class Template Reference

Functor allowing to get a vector of objective vectors from a population. +More... +

+#include <moeoConvertPopToObjectiveVectors.h> +

+

Inheritance diagram for moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >: +

+ +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

const std::vector< ObjectiveVector > operator() (const eoPop< MOEOT > _pop)
 Returns a vector of the objective vectors from the population _pop.
+

Detailed Description

+

template<class MOEOT, class ObjectiveVector = typename MOEOT::ObjectiveVector>
+ class moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >

+ +Functor allowing to get a vector of objective vectors from a population. +

+ +

+Definition at line 23 of file moeoConvertPopToObjectiveVectors.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT, class ObjectiveVector = typename MOEOT::ObjectiveVector>
+ + + + + + + + + +
const std::vector< ObjectiveVector > moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >::operator() (const eoPop< MOEOT >  _pop  )  [inline]
+
+
+ +

+Returns a vector of the objective vectors from the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 31 of file moeoConvertPopToObjectiveVectors.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.png new file mode 100644 index 0000000000000000000000000000000000000000..3904ce95401fabe95c5cfe7574a8a1ba97c18710 GIT binary patch literal 1170 zcmeAS@N?(olHy`uVBq!ia0y~yVC(?0J6M>3B)?SRLLem(;1lBd|Nnm=^Z)+?^XDf_ z0J6aNz<~qRhyFhSav4j4{DK)Ap4~`eU|`Ykba4!+nDchFciC+N9@kFK<4ejM%Guwx z8JzkzJwWIW$EH;EOgUz^cJt-EJl#jC|2WujKK>WS@csF>$3OS__#84a)tb59Gj<#~7N@qXaV@JtLN+7EjVK1DZDI`#RNz+B zaJ`P7ps?fE`rXqyEhE&@5<5C)^yjP$-f(;Ed?VQ+v$8pyUya@^-_kax*Hu1cO7jMF zwLJUdF7{up`AzXTvTB zU~p`h(V4_sps*szs>1sGtA(cBKy;M&-^ z?qE3AFTeca1tUXFVC>A9wcvxql8|FH_4cAIKL4J5t`^-Nzw=&U|H|)|_Rnc?(hy%* zsu#FidUamO`}eax^mjgW3o5@-_jlpm>*4;sD$k!RwSIMT#rDO{%$LITeJ5!6)Slik zrTTNZ=Tp^LZXUn%FW%AkVZ>=SrGhJ9!99iVLAy?WymBbmTURY*$I4T09tSVFVs*0D z_UgY{am|lwekB~5{^rRm^Ox73`si96TA5!AbvCn3&G%RgI4F743VnG?>%&;C&T zZ(D5j)J(NoTt60YUfmJGueAKL&D_q~EAO6U3CFqKPP%_RYqkEBIluQw{F?W|b6&{u z$MXu-a#St<&b^tM>zrEAN}$3rKi2FWB8Ma d$VnggSLeq~SSfU?7g&HWc)I$ztaD0e0sz-A5-|V( literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment-members.html new file mode 100644 index 000000000..f891fee3e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoCriterionBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoCriterionBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.html new file mode 100644 index 000000000..3d6bd3fa0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.html @@ -0,0 +1,60 @@ + + +ParadisEO-MOEO: moeoCriterionBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoCriterionBasedFitnessAssignment< MOEOT > Class Template Reference

moeoCriterionBasedFitnessAssignment is a moeoFitnessAssignment for criterion-based strategies. +More... +

+#include <moeoCriterionBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoCriterionBasedFitnessAssignment< MOEOT >: +

+ +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoCriterionBasedFitnessAssignment< MOEOT >

+ +moeoCriterionBasedFitnessAssignment is a moeoFitnessAssignment for criterion-based strategies. +

+ +

+Definition at line 22 of file moeoCriterionBasedFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..d3a36cb021b959c46aee343d9d0db853a23cfb09 GIT binary patch literal 1503 zcmchX`&W_&7{_tTPD#3SJ4)nbi}K_Jl`I|1tSBuLFNs*arb#X@fO5PsZK9P^Gw+>5 zypYYxOZ0k~psA@usHLR|_9~jX6sD%;644VTjI;d*+c`Vud7kh0`^)pg=bY!s^7THc zuZPrw!C?9xr%w36U^=#1FWB;>b`mO&!?l9&CHT8(G#ahdXap4%Aq86ZcMAl9pM@Hk zHtNLtc@tqr{}>H}!E_TmP8{=3EMF==!{S=+bd%3A;f{hI($+2gFCNx>=VEo#Fh3H* zFzBdjmzWXveE6myc)RFbm)$Nk2PYf6_eOBEVyHcV-rKAwu9(<$d)opZ_o?35rD z#{{UZaU~!aKob=>ckMDdQZK(`naAf%wQ_?rd7W}e6_>Y-$wg#M&P!)+MBhKKxu zzG~PEbN}~2*3&j>(LlbkS+FvM)8Y{R1h^7Hp#>y^*x{}2)r`nr-}o-xPU7gG)|fCq8Q}|z$Yk;Q&-5* z$-SSPpKv?#y-iHxAHJEtp61QREv@7Sd@VE;LQ6Dud^xaX>>&T z(NdoT2DY!4e!m{*&EAXTmn#>}DkPudW8|4~xXN{c_Wh?=f7(Z4_TDj`Wy_G*V*!8Q z)k?LoRh^};X#%BC*wclAdq^D5RA9IkF|Z!?7{ek)9!V z;=JWm4FK4(Oi5Hb<28BWu--M_$$>-T57e#YjSnEU;y_qaE`%`n%ExtLKE`rueCXtG zJMReV;2E3c?2i~VJHF|i%yYA`JBmJ<(=nV^vmWsDXgRZR0fk zgysx@N{B>QgBa!PZAaqbb1AZqW=36VIwb2PhoH>Yz?H@G``5uBRF$HqV)N7^6@)Y5 z|H>n0@W__}DT;H%T#>_D$PlUU&l7!i@iR-RDN!X*osCipitEYs1{)q|Ni`H=52?%4 lBt;Srm=vla-(do5??_gn5S=w(5^KkP%QHKw?{ud1h++qL# literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment-members.html new file mode 100644 index 000000000..34c10fb4e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment-members.html @@ -0,0 +1,46 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoCrowdingDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoCrowdingDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
inf() const moeoCrowdingDiversityAssignment< MOEOT > [inline]
ObjectiveVector typedefmoeoCrowdingDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoCrowdingDiversityAssignment< MOEOT > [inline, virtual]
setDistances(eoPop< MOEOT > &_pop)moeoCrowdingDiversityAssignment< MOEOT > [inline, protected, virtual]
tiny() const moeoCrowdingDiversityAssignment< MOEOT > [inline]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoCrowdingDiversityAssignment< MOEOT > [inline, virtual]
moeoDiversityAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.html new file mode 100644 index 000000000..b3f029baa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.html @@ -0,0 +1,204 @@ + + +ParadisEO-MOEO: moeoCrowdingDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoCrowdingDiversityAssignment< MOEOT > Class Template Reference

Diversity assignment sheme based on crowding proposed in: K. +More... +

+#include <moeoCrowdingDiversityAssignment.h> +

+

Inheritance diagram for moeoCrowdingDiversityAssignment< MOEOT >: +

+ +moeoDiversityAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > + +List of all members. + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

+double inf () const
 Returns a big value (regarded as infinite).
+double tiny () const
 Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound).
void operator() (eoPop< MOEOT > &_pop)
 Computes diversity values for every solution contained in the population _pop.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)

Protected Member Functions

virtual void setDistances (eoPop< MOEOT > &_pop)
 Sets the distance values.
+

Detailed Description

+

template<class MOEOT>
+ class moeoCrowdingDiversityAssignment< MOEOT >

+ +Diversity assignment sheme based on crowding proposed in: K. +

+Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). +

+ +

+Definition at line 25 of file moeoCrowdingDiversityAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoCrowdingDiversityAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Computes diversity values for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 55 of file moeoCrowdingDiversityAssignment.h. +

+References moeoCrowdingDiversityAssignment< MOEOT >::inf(), and moeoCrowdingDiversityAssignment< MOEOT >::setDistances(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoCrowdingDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+

Warning:
NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+
Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+
Warning:
NOT IMPLEMENTED, DO NOTHING !
+ +

+Implements moeoDiversityAssignment< MOEOT >. +

+Reimplemented in moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >. +

+Definition at line 78 of file moeoCrowdingDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoCrowdingDiversityAssignment< MOEOT >::setDistances (eoPop< MOEOT > &  _pop  )  [inline, protected, virtual]
+
+
+ +

+Sets the distance values. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Reimplemented in moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >. +

+Definition at line 90 of file moeoCrowdingDiversityAssignment.h. +

+References moeoCrowdingDiversityAssignment< MOEOT >::inf(). +

+Referenced by moeoCrowdingDiversityAssignment< MOEOT >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..75ba1a7831b560a2116709222f084a1951e85d7b GIT binary patch literal 1893 zcmaKtc{JPE0>|Tcf?A`4CYB0COIo#zhgurDs`XiFsaj%S4p<@%WO*qt?|0;`r+8pi-%+&v*cTE0E~! z{5R0$wO_(OAn>7sHPR!whV|fj62VBE&S9q6F5Df;tiAvDFteTMBb}hf=FuT4cc;%L z*zubBRf-Pa_o@vBxF7c-K35$VWR2p!MKNHT`HG<1-J7KDd5G)v(piGJ-%$@sYFZe} zi3M3pGM`&@A#zZXc{TXQPQo{lwi6pd(5c}13S3*)CV8K%t#{eUg`vnC{p`jN^ITm8 zLj?uh1KZ*zy=O+599=z1j&pAi?^;-HuG|4BxF4pgDm@q60Lco54)WR{R^B;naI051 zI6A@}xOHb_xUJ*eg`@uV^?3so?%wdWMqe8T$Gd%JSYf#pY^}`sq>qw-cIAlsSpDZ7 z|&t}57g~C>p8#!$aXhx;vRLgv{%<|dtGr`K>p(aDm#+IQ)fUs-3 zpih)AcN22B^N>YZ2rB!65yniQAC(sBo=-_ohNlMYuzW&M&fjs)dA3}_j4B7CB8tEF zu>ORrO=aA6$Hc0Oitb;HvmE)*R;+GT!V-dlyaMp7^LoC{dUZAv_v1H0BZ@M|KW!XQ zDk3MF;q5|WA7p^C@gIg1z3&R3LsnKpP_Nmmv1r_-)Pn>B{U)LUK?|eR6P5^p6dgP^ zo(k{z794<30}ITqa8qa?2ks7s0$C{{hQcVd75f(e?bw))hC0K<8@!$kHNKfJnS(cV z933VX(2~eA4VaqCUE|jU*z8t%!rk*O)n@Br%}!m~>h=$=G;U>%+mji| zSTw-MaorEy^?+T!0o0t5KRYLJ@%}jx7*SaF8{h>(NMvQlV1UBVC6?~M)9RagzeEoz zqIE1B8n=pSNULWpI!XeN#9-{nQ$I{?e1?0gfs2{&sXSx?RTJW+mQy1U&py5P$*7np z#x?G?J3FFv|%1940%23#v+0CK{@6^Lp#x z=-)y6LlWQQi8n^pt{o00eD^h|4I~EWWjZnXzGm;QYke->;(qxtBd04&p4Q?|E6S!9 zy>DrG<9|LTKVs|4kLbC`gzW0hlNG7+mtG9)9Hp-Vwx;MW;b96(k|f9K^(UfcRbF_z zD7GAU9V8%wi7Jc7E6G6j2HtCxSOc^?9X3@s94GKd`o(CuZGd&{&u)Pa<&jBwYZ@tI zR^m^@_6o=v+i$Ti$qe=eOetl~Ndbk42P3MrPy<9+J%v72t2ZSPiWOb{m1#FViR-LB z$#Aqrk(zP{u7%ll6o&XV~hx$H04u_tpDPrnNT>M6uitks}1)?)t z20#WY+(NYxAEjMN=iZ_Ep+4$Xo@p-Z{;VJVT{qMe4Da;}zg&=uxa|tQ-f!7SoEdN=2AnJiBIsqSds#hGb+|0%3TLUt*`toB120=1R(0Tete?zSXpz(| zA&dO`&jAaqk`Sz)jwF+oAlrxA!Us84=|DD?ekmyM4GLHPA{}-#bx_{@2DJH zfBl0$*1M`>Y9~J$7is8d89SEgR@`o?tu;xw0`b+V{K>|z9IURsjqi+*B`QCUTV{>ZSB;TrA{>>A?u8>v4#=l~ z&Qi;bzlX?0?5<NT~dkOmn*ipY41N2GjK{4ApEE zn5?`~0(E%?fERDawwy_8-(gQZ&)^W zH?}Ao7B>H5LbZ;4+*eW)=e=!1SpphOFfsDW{_3>$^wIf;Qop%m50K5ti!B{IP;{v6 V>`q4dW&WQCaCRzq&{u7&EoJ#-z literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect-members.html new file mode 100644 index 000000000..23a446b6a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect-members.html @@ -0,0 +1,47 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDetTournamentSelect< MOEOT > Member List

This is the complete list of members for moeoDetTournamentSelect< MOEOT >, including all inherited members.

+ + + + + + + + + + + +
comparatormoeoDetTournamentSelect< MOEOT > [protected]
defaultComparatormoeoDetTournamentSelect< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
moeoDetTournamentSelect(moeoComparator< MOEOT > &_comparator, unsigned int _tSize=2)moeoDetTournamentSelect< MOEOT > [inline]
moeoDetTournamentSelect(unsigned int _tSize=2)moeoDetTournamentSelect< MOEOT > [inline]
operator()(const eoPop< MOEOT > &_pop)moeoDetTournamentSelect< MOEOT > [inline]
moeoSelectOne::operator()(A1)=0eoUF< A1, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)eoSelectOne< MOEOT > [virtual]
tSizemoeoDetTournamentSelect< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.html new file mode 100644 index 000000000..b2e27ff56 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.html @@ -0,0 +1,196 @@ + + +ParadisEO-MOEO: moeoDetTournamentSelect< MOEOT > Class Template Reference + + + + +
+
+ +

moeoDetTournamentSelect< MOEOT > Class Template Reference

Selection strategy that selects ONE individual by deterministic tournament. +More... +

+#include <moeoDetTournamentSelect.h> +

+

Inheritance diagram for moeoDetTournamentSelect< MOEOT >: +

+ +moeoSelectOne< MOEOT > +eoSelectOne< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoDetTournamentSelect (moeoComparator< MOEOT > &_comparator, unsigned int _tSize=2)
 Full Ctor.
 moeoDetTournamentSelect (unsigned int _tSize=2)
 Ctor without comparator.
const MOEOT & operator() (const eoPop< MOEOT > &_pop)
 Apply the tournament to the given population.

Protected Attributes

+moeoComparator< MOEOT > & comparator
 the comparator (used to compare 2 individuals)
+moeoFitnessThenDiversityComparator<
+ MOEOT > 
defaultComparator
 a fitness then diversity comparator can be used as default
+unsigned int tSize
 the number of individuals in the tournament
+

Detailed Description

+

template<class MOEOT>
+ class moeoDetTournamentSelect< MOEOT >

+ +Selection strategy that selects ONE individual by deterministic tournament. +

+ +

+Definition at line 24 of file moeoDetTournamentSelect.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoDetTournamentSelect< MOEOT >::moeoDetTournamentSelect (moeoComparator< MOEOT > &  _comparator,
unsigned int  _tSize = 2 
) [inline]
+
+
+ +

+Full Ctor. +

+

Parameters:
+ + + +
_comparator the comparator (used to compare 2 individuals)
_tSize the number of individuals in the tournament (default: 2)
+
+ +

+Definition at line 33 of file moeoDetTournamentSelect.h. +

+References moeoDetTournamentSelect< MOEOT >::tSize. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoDetTournamentSelect< MOEOT >::moeoDetTournamentSelect (unsigned int  _tSize = 2  )  [inline]
+
+
+ +

+Ctor without comparator. +

+A moeoFitnessThenDiversityComparator is used as default.

Parameters:
+ + +
_tSize the number of individuals in the tournament (default: 2)
+
+ +

+Definition at line 49 of file moeoDetTournamentSelect.h. +

+References moeoDetTournamentSelect< MOEOT >::tSize. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
const MOEOT& moeoDetTournamentSelect< MOEOT >::operator() (const eoPop< MOEOT > &  _pop  )  [inline]
+
+
+ +

+Apply the tournament to the given population. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 65 of file moeoDetTournamentSelect.h. +

+References moeoDetTournamentSelect< MOEOT >::comparator, and moeoDetTournamentSelect< MOEOT >::tSize. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.png new file mode 100644 index 0000000000000000000000000000000000000000..4fbb8131906f3cc4051f92301ec664627407dd38 GIT binary patch literal 1070 zcmeAS@N?(olHy`uVBq!ia0vp^FM#+53p0=u3EX}GNJ#|vgt-3y{~yTw|Np@J`3Vz% zEHFNB;6U}E|4)Ei#*!evU^u05 z`|GOr|2epgnfn5ReK%hDHF>k)#uL*SFD1`B%=h1F%ER|R-ah4haW+uN=zWr{^f{O3 zy~nG}^j4cWBzGAc6`sLi*jCf#WGCz7wv*|4W_y~ZY3v1or#}BAj!Zmtdx!qBWR1ct zN5xHE%viQLIof1vw({J?m-bpdvzVO`@7nCLvG-F&`&{8yt%kk7jBFO1J$~iPJ&7G} zOVm!id1}}zGW-0!ZLAsr3)nB}ZC|i{`gi@9YRxa_kH=o<@Bcn~!S|Va9U7TfxkP{} z92(;|-hOibSbI&T;h%`fGu5=ot(?hcXUUv8E8~9lw#8a4`BP`#_{tP0rLoGMcYeL7 z*3omphlXRdwKX!TLB(yaX1oh7U*uvIWE9XF689$PyPMUyUDLm$)W}?3HgR3=ORifb zKBeE5@tIEEvMAB!x%THRGCnuW9Qo67ZZ9~_9k8JH0?>uAdE3^vD(Qdzec|_+IG~eY zZqsim`?>gsT{fSC^`ekzua_RFO4HhP=d|}B75x{Lvz`fW(TVlXh*|SqXnjWerrF9b zUVYZiID6zp81p4vqfN^X<>@6%3IF*xV%qO`=hCb5qGcXuY!7~-tFx=O>H3??&pB4V zc-HkVJ>y=#(ZaOv9PigpST{f5-a{kTT}$&8P3pY3>`P{wQ08pKV}*;W&9A)mNS`Ue zn;@2%SuAZUv-0eb8-~4;ayKPg6pTUYb9=`%ZQirv|J<0k zL{>QBwaH8N)Pvcs`*vF_*zOQJE3T$w$$B&WvL{bl#p3G@{Qq=S#lJZ>Tl8x8-4CAT zPrC1F&FWLR{`=O1`LWZTPK7`BKfKbfIjFj?j5 l-_5|v^+n; + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDistance< MOEOT, Type > Member List

This is the complete list of members for moeoDistance< MOEOT, Type >, including all inherited members.

+ + + + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)moeoDistance< MOEOT, Type > [inline, virtual]
setup(double _min, double _max, unsigned int _obj)moeoDistance< MOEOT, Type > [inline, virtual]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoDistance< MOEOT, Type > [inline, virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistance.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistance.html new file mode 100644 index 000000000..a5a4062e9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistance.html @@ -0,0 +1,197 @@ + + +ParadisEO-MOEO: moeoDistance< MOEOT, Type > Class Template Reference + + + + +
+
+ +

moeoDistance< MOEOT, Type > Class Template Reference

The base class for distance computation. +More... +

+#include <moeoDistance.h> +

+

Inheritance diagram for moeoDistance< MOEOT, Type >: +

+ +eoBF< A1, A2, R > +eoFunctorBase +moeoNormalizedDistance< MOEOT, Type > + +List of all members. + + + + + + + + + + + +

Public Member Functions

virtual void setup (const eoPop< MOEOT > &_pop)
 Nothing to do.
virtual void setup (double _min, double _max, unsigned int _obj)
 Nothing to do.
virtual void setup (eoRealInterval _realInterval, unsigned int _obj)
 Nothing to do.
+

Detailed Description

+

template<class MOEOT, class Type>
+ class moeoDistance< MOEOT, Type >

+ +The base class for distance computation. +

+ +

+Definition at line 22 of file moeoDistance.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT, class Type>
+ + + + + + + + + +
virtual void moeoDistance< MOEOT, Type >::setup (const eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Nothing to do. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Reimplemented in moeoNormalizedDistance< MOEOT, Type >, and moeoNormalizedDistance< MOEOT >. +

+Definition at line 30 of file moeoDistance.h. +

+

+ +

+
+
+template<class MOEOT, class Type>
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void moeoDistance< MOEOT, Type >::setup (double  _min,
double  _max,
unsigned int  _obj 
) [inline, virtual]
+
+
+ +

+Nothing to do. +

+

Parameters:
+ + + + +
_min lower bound
_max upper bound
_obj the objective index
+
+ +

+Reimplemented in moeoNormalizedDistance< MOEOT, Type >, and moeoNormalizedDistance< MOEOT >. +

+Definition at line 40 of file moeoDistance.h. +

+

+ +

+
+
+template<class MOEOT, class Type>
+ + + + + + + + + + + + + + + + + + +
virtual void moeoDistance< MOEOT, Type >::setup (eoRealInterval  _realInterval,
unsigned int  _obj 
) [inline, virtual]
+
+
+ +

+Nothing to do. +

+

Parameters:
+ + + +
_realInterval the eoRealInterval object
_obj the objective index
+
+ +

+Reimplemented in moeoNormalizedDistance< MOEOT, Type >, and moeoNormalizedDistance< MOEOT >. +

+Definition at line 49 of file moeoDistance.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistance.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistance.png new file mode 100644 index 0000000000000000000000000000000000000000..cf22dcd06a34613885c9dd3a4fcecfa241c4a6a8 GIT binary patch literal 1238 zcmeAS@N?(olHy`uVBq!ia0y~yU}Ocd53n!;$^Wmi1%Z@AfKQ0)|Ns9%BL5G}pPw)R z$O7X72M$yp`u_yTWh@Eu3ubV5b|Z~}fhEV&#WAE}&f7VGlV%(6v>o-HKQT|iZ^Pxd z6UK9I{+3@DF|EgQ&J>o88mF?Qs(5 z=F!+^Fz1ki6o2vS60O5I%f23-wXnza8^`*jZwYK#-+#<-OlpnmIs5%_<5%Uo26JTj z&+bVO3NGfJUa9!;z=`zp-Nhn2Ko^9keyH1g{{6SzQ@@pOj6NyN@ZkD(^Mj@m`}R*Z zKcp(LPGIuE1zz_U1bCJ`;bl0OK!Dk9Q1PGN;1L-UuDCPlAVKKFovifrBj=KhvUx@viBi9skYBv?Q7yhPKJ^U$rw@@g%fun*QXF(F<;8 zxqs{AdlvG4oRY|QtTjiddx|>U()l0R*EO^UImp2JaM>ZkLcIe*sME7HYZ*TJS ziVO4IKR3N7v@!Xdw5f7ovf}0Bnc`1>9uV5BvVH3;apC)R@?tz+z0%`qTzqwZoeh4J u%=2}ndmShSoZW#rG`sCCFnfOe%D;KKw?^MK9y4Ge#Ng@b=d#Wzp$Pzvp)o-K literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistanceMatrix-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistanceMatrix-members.html new file mode 100644 index 000000000..9c6f09ae3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistanceMatrix-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDistanceMatrix< MOEOT, Type > Member List

This is the complete list of members for moeoDistanceMatrix< MOEOT, Type >, including all inherited members.

+ + + + + + +
distancemoeoDistanceMatrix< MOEOT, Type > [private]
functor_category()eoUF< const eoPop< MOEOT > &, void > [static]
moeoDistanceMatrix(unsigned int _size, moeoDistance< MOEOT, Type > &_distance)moeoDistanceMatrix< MOEOT, Type > [inline]
operator()(const eoPop< MOEOT > &_pop)moeoDistanceMatrix< MOEOT, Type > [inline, virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< const eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.html new file mode 100644 index 000000000..21e8a6303 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.html @@ -0,0 +1,149 @@ + + +ParadisEO-MOEO: moeoDistanceMatrix< MOEOT, Type > Class Template Reference + + + + +
+
+ +

moeoDistanceMatrix< MOEOT, Type > Class Template Reference

A matrix to compute distances between every pair of individuals contained in a population. +More... +

+#include <moeoDistanceMatrix.h> +

+

Inheritance diagram for moeoDistanceMatrix< MOEOT, Type >: +

+ +eoUF< const eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + +

Public Member Functions

 moeoDistanceMatrix (unsigned int _size, moeoDistance< MOEOT, Type > &_distance)
 Ctor.
void operator() (const eoPop< MOEOT > &_pop)
 Sets the distance between every pair of individuals contained in the population _pop.

Private Attributes

+moeoDistance< MOEOT, Type > & distance
 the distance to use
+

Detailed Description

+

template<class MOEOT, class Type>
+ class moeoDistanceMatrix< MOEOT, Type >

+ +A matrix to compute distances between every pair of individuals contained in a population. +

+ +

+Definition at line 24 of file moeoDistanceMatrix.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT, class Type>
+ + + + + + + + + + + + + + + + + + +
moeoDistanceMatrix< MOEOT, Type >::moeoDistanceMatrix (unsigned int  _size,
moeoDistance< MOEOT, Type > &  _distance 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_size size for every dimension of the matrix
_distance the distance to use
+
+ +

+Definition at line 37 of file moeoDistanceMatrix.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT, class Type>
+ + + + + + + + + +
void moeoDistanceMatrix< MOEOT, Type >::operator() (const eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the distance between every pair of individuals contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< const eoPop< MOEOT > &, void >. +

+Definition at line 51 of file moeoDistanceMatrix.h. +

+References moeoDistanceMatrix< MOEOT, Type >::distance. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.png new file mode 100644 index 0000000000000000000000000000000000000000..a8aac1611982e595822cda5ee959436d09918f9b GIT binary patch literal 889 zcmV-<1BU#GP)n#-aTz(%686ek9~Ht(MQZZTTB#wm-%<{;?JS zyc+s4`!0Sv^kvp>bzjR*eg`0aNG}gKlO}LF5FdM_a|)lJ(PutjH}ECkY##apk$8p= zptr(&Ie(lzkDn0A|Bg@b2aJE4pD*Occ%M(#a3~L-K7R>C==mp}zsmmzj7c+`|9t-7 z{fYU1Ml-(gjX#q=`}_Ad+sAhe{Br*7>(cy>+wIc)>G@}T;~U@j#y7t4jcP1gJ_ zUv`)`S}>kwV3$v2oETNLOKN&$1QY`)JI0ouWZM5C@Aw>lDEv~`qty^Qe&7XUT!%s& z^C84R{80lHKloBu-B&wrEud~D3$&Hty`=#%1@_Ph9_itM}iqxO@2{}}&@ z{Mp~XXaD{2%lTISyEK1#{u$r+#y7t4jcr%`6W4_B4o$>(hE6%fl5#Iq09BJYW@BEW4uFBF~lz^qUCEPxFaEA|UAjhxg zFK&-d3uJOBd|v2i4+|_UUq02g{%5}0zz&~QyAuDj1PUKzgkdE;_uY?FZ!lBlz(*o@*3s8bB~intSz5)ILnqXtseWHl? P00000NkvXXu0mjf#`MSi literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityAssignment-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityAssignment-members.html new file mode 100644 index 000000000..89e1ae3df --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoDiversityAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.html new file mode 100644 index 000000000..d0de623bd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.html @@ -0,0 +1,163 @@ + + +ParadisEO-MOEO: moeoDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoDiversityAssignment< MOEOT > Class Template Reference

Functor that sets the diversity values of a whole population. +More... +

+#include <moeoDiversityAssignment.h> +

+

Inheritance diagram for moeoDiversityAssignment< MOEOT >: +

+ +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoCrowdingDiversityAssignment< MOEOT > +moeoDummyDiversityAssignment< MOEOT > +moeoSharingDiversityAssignment< MOEOT > +moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > +moeoFrontByFrontSharingDiversityAssignment< MOEOT > + +List of all members. + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type for objective vector.

Public Member Functions

virtual void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0
 Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
void updateByDeleting (eoPop< MOEOT > &_pop, MOEOT &_moeo)
 Updates the diversity values of the whole population _pop by taking the deletion of the individual _moeo into account.
+

Detailed Description

+

template<class MOEOT>
+ class moeoDiversityAssignment< MOEOT >

+ +Functor that sets the diversity values of a whole population. +

+ +

+Definition at line 23 of file moeoDiversityAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
virtual void moeoDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [pure virtual]
+
+
+ +

+Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implemented in moeoCrowdingDiversityAssignment< MOEOT >, moeoDummyDiversityAssignment< MOEOT >, moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >, moeoFrontByFrontSharingDiversityAssignment< MOEOT >, and moeoSharingDiversityAssignment< MOEOT >. +

+Referenced by moeoDiversityAssignment< MOEOT >::updateByDeleting(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
MOEOT &  _moeo 
) [inline]
+
+
+ +

+Updates the diversity values of the whole population _pop by taking the deletion of the individual _moeo into account. +

+

Parameters:
+ + + +
_pop the population
_moeo the individual
+
+ +

+Definition at line 44 of file moeoDiversityAssignment.h. +

+References moeoDiversityAssignment< MOEOT >::updateByDeleting(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..2067845ecfef07714182211fc019882c24e95f3d GIT binary patch literal 3296 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 literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator-members.html new file mode 100644 index 000000000..8e86eb6c9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDiversityThenFitnessComparator< MOEOT > Member List

This is the complete list of members for moeoDiversityThenFitnessComparator< MOEOT >, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoDiversityThenFitnessComparator< MOEOT > [inline]
moeoComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.html new file mode 100644 index 000000000..a3b4d6946 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.html @@ -0,0 +1,106 @@ + + +ParadisEO-MOEO: moeoDiversityThenFitnessComparator< MOEOT > Class Template Reference + + + + +
+
+ +

moeoDiversityThenFitnessComparator< MOEOT > Class Template Reference

Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. +More... +

+#include <moeoDiversityThenFitnessComparator.h> +

+

Inheritance diagram for moeoDiversityThenFitnessComparator< MOEOT >: +

+ +moeoComparator< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

const bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 < _moeo2 according to their diversity values, then according to their fitness values.
+

Detailed Description

+

template<class MOEOT>
+ class moeoDiversityThenFitnessComparator< MOEOT >

+ +Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. +

+ +

+Definition at line 22 of file moeoDiversityThenFitnessComparator.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const bool moeoDiversityThenFitnessComparator< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns true if _moeo1 < _moeo2 according to their diversity values, then according to their fitness values. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 31 of file moeoDiversityThenFitnessComparator.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.png new file mode 100644 index 0000000000000000000000000000000000000000..14c65dd0bf4faab0ec0b579573e1c49bb4a3e3e4 GIT binary patch literal 1406 zcmb_c`Bzd26n<7tWl`o**)lHGB(D>sotzn(K}8XiBzs_siaV*ea57CzkxrpzrI7<- zrBTVl9=VJQ7G&zwWQ~<=ERJQ2xn!7Gm}6?iyk`D`&irui{l0VWPv8B{R~SU6V60YH z0RVvUr}{zwVBw15_BpfBPWJELhmPez+n8jt*^EN7xm_xa6r$+gYHx4PzF{6fsYMz@ zX8>M9-FpGR($3%4o0(ZYTFy$X2JQR?2Y;Hqxqb7I?Db7jceC@VDf@}dzok4q8Bh<_ zi=C>UA3{<@ugr^1e?EJye@w`Ur7BJ5L~e3I>N;)fj-ijWn&#A9P_NsFeYhx@&;gRdxoP6F-O}r3tVo)(mIT2;YH#TM+2p^mKcD(o%{sCRD9u2GBug!^R zu{@?Lq{W^5ZFS?OW=`lVN( z4o{DtC82gnTY7l~BEHMkz@tM|O*b#|gSO&Ce@*HKZ9rsGf4Q8BuO5Bq#D09_g?9XP z)Sg+=u$ogr2Y7v9~nd1j#{dkxsqr)jhOipVija1U$1x_I8rwX%bDF)sbZ}kz_k6kdh z+7s5zSt>!AE@@JaY^4~!Z&Bsmb?{M$4W`9YDi=(NzW&>7U8%S!;s=X zZ5t{VBYXc3Nx%H$&4$jjJF>BCe#V7-<{BS`{aU#6O&d+u$(8K8kX{k!NZ&Oy5SUUD z{BdHU?CLxCG#CCm04eK@(A2y0FNMfT*VxjYz}@NrcEnVTsiTja7pqLlIisU3=_zn! zUW)NZe(^Ne4@pZ=#95I)*f4Z#{(Qv$npo83_Nd^>2%~9!-X-kySS&vJV{P#a=U4&Q z`g;zc!j4Z`O%RneD0VZSVNBt4tSfsb;xDD;&8vfgJq)(Z>jTN4v@cM;#iY^&gRC~1 z?4CCmOND6HHpa~nhtW#GKU3L6Lr;#9X+8OLEjx84eiag_Jg#XHgK@)ebpbMYg^14D zGX`HQB={P`jLVV7Hi@BPkb_MZDrQ(jcPgkoQ@p5>tFKZ#T2{y49IM28NO5D7f=3c~ z+qdvL%Am#T>!d=Wp`oa + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDummyDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoDummyDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoDummyDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoDummyDiversityAssignment< MOEOT > [inline, virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoDummyDiversityAssignment< MOEOT > [inline, virtual]
moeoDiversityAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.html new file mode 100644 index 000000000..5e66cd680 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.html @@ -0,0 +1,149 @@ + + +ParadisEO-MOEO: moeoDummyDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoDummyDiversityAssignment< MOEOT > Class Template Reference

moeoDummyDiversityAssignment is a moeoDiversityAssignment that gives the value '0' as the individual's diversity for a whole population if it is invalid. +More... +

+#include <moeoDummyDiversityAssignment.h> +

+

Inheritance diagram for moeoDummyDiversityAssignment< MOEOT >: +

+ +moeoDiversityAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type for objective vector.

Public Member Functions

void operator() (eoPop< MOEOT > &_pop)
 Sets the diversity to '0' for every individuals of the population _pop if it is invalid.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+

Detailed Description

+

template<class MOEOT>
+ class moeoDummyDiversityAssignment< MOEOT >

+ +moeoDummyDiversityAssignment is a moeoDiversityAssignment that gives the value '0' as the individual's diversity for a whole population if it is invalid. +

+ +

+Definition at line 22 of file moeoDummyDiversityAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoDummyDiversityAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the diversity to '0' for every individuals of the population _pop if it is invalid. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 34 of file moeoDummyDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoDummyDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implements moeoDiversityAssignment< MOEOT >. +

+Definition at line 52 of file moeoDummyDiversityAssignment.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..b4489ca4435eed165a5fe5bcbdb0730d09a9eaf6 GIT binary patch literal 1273 zcmeAS@N?(olHy`uVBq!ia0y~yVB`j}53n!;$%o3(i-43wfKQ0)|NsAi%>Vxn%%7hy z0muU50|yRNANv0U$Ym@E@(X5gcy=R=fq|vp)5S5QV$R#yv1LmX1X`b}o)@t`Ao}D? zPR6`V|5bTHJ{CJ}F}-NQUpl#Di^~rkuHPm1AAc%mtJSN&#<@g7Onh zPD{L9ryaOG_cw>zi6-@9A08eL>}he}sXo>bedn1ck6d-BWb>nC)5YZ%S6+`jbK2an zV}gf4Q0|czk0laSPPnxnoa|H>bW3QTd~$5R;g75FdROOPar5eVZ#Zu~Z-l1y$qYp$ zZP%>kIn{MbZB&msXtH@323$_q^LsPn>*Aj~?ebncX7g?O`1So=mNk|JcKi0->lHBN zJf@?%3gk+#>aNBho+(KSM3|Stg|-6?kQTdU5^tsHHZ^I%H-j6CUano$dr|A#xl?vs zdybf0SdsnS?A}Ysp1=*fJ1i!h7n?6rUUBGHidA>uALSz}4(@pQ$(5_^^y8iLwj`)X zpK|qnCE`|kS%~ecqv1`JcaPt5C^x3v%Q_XfXn(`O%e@D)_AjeAs<22+`e#M|!(y@c z1d-)aH#^1}BnSBIl1_I%$HSX?zT0@Fp_xo`&YH7J0;Jz;+Su+4(>wTtQ3;bu7F6CgkXMSs{(@lx8*ITC+xm}leZoGE>af$eU z>yzhPdXk^JU+1WUZ}Z1@=h<|=CceKW!}dZ&VzR`7$q8qI7GVh(gpl2vv*2LsGrWmr%T(?5KR6d;Cqqq7c8Y_nxNziMzSww?tn}p>`!x&CQ9+<1aJ!`tj|4GXJRa&k#dK|C?KO zOJvSaWLqv~cunNPRL%GEHf6>qi#)#CJ<}`a#!nlW_rGOUNGQ&ckBf`Hy+wV~#%&Ty zrJo-S(cK?w7Ix+s_v~+nmRNi&*(hbicI8-Fkl)QM$0ardJ=ym#JW|t$o%4*jwyJQ@ zr|#hV<7RL5j#+-So%_jx|Eny|{rCIW7yBPOy8OudLlq8SzyI1$o-Nd4$#cQeK+VuW z{ostHE}}>Y2N6DywDd}hXO?5x#`2ic{@~QrYru1HTjH9u%VyroXGz`AIggCK&c4Ub-;jzvRxK(}~%<^QC7+-h1w* z_9dIAaJiuJJn7l3*WAu^p4HL)*(9mlcUphhe!YVmR30yTXza!_dE>T&39EKwUfLG0 z?Ea77bBZrdd!2eC(A=-aBf)4WCb9OYhvaGr(^l?z!vAkBJ<6flcvIjMoAQ-s5{K1# z45T+soM^ehXl95St6@;Qn&)902P5sNjOrpOlWeelHH1C2|4r}#8;|YEz9VT^BCZH=KMswzb`=+_GCi66Y z?>*~Px$E|6AqQ%aj=hcOR&gIPYy3(ABtUa*e|e{uVR8sgsy2 R + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDummyFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoDummyFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoDummyFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoDummyFitnessAssignment< MOEOT > [inline, virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoDummyFitnessAssignment< MOEOT > [inline, virtual]
moeoFitnessAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.html new file mode 100644 index 000000000..5aca7bd83 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.html @@ -0,0 +1,149 @@ + + +ParadisEO-MOEO: moeoDummyFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoDummyFitnessAssignment< MOEOT > Class Template Reference

moeoDummyFitnessAssignment is a moeoFitnessAssignment that gives the value '0' as the individual's fitness for a whole population if it is invalid. +More... +

+#include <moeoDummyFitnessAssignment.h> +

+

Inheritance diagram for moeoDummyFitnessAssignment< MOEOT >: +

+ +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type for objective vector.

Public Member Functions

void operator() (eoPop< MOEOT > &_pop)
 Sets the fitness to '0' for every individuals of the population _pop if it is invalid.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+

Detailed Description

+

template<class MOEOT>
+ class moeoDummyFitnessAssignment< MOEOT >

+ +moeoDummyFitnessAssignment is a moeoFitnessAssignment that gives the value '0' as the individual's fitness for a whole population if it is invalid. +

+ +

+Definition at line 22 of file moeoDummyFitnessAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoDummyFitnessAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the fitness to '0' for every individuals of the population _pop if it is invalid. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 34 of file moeoDummyFitnessAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoDummyFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implements moeoFitnessAssignment< MOEOT >. +

+Definition at line 52 of file moeoDummyFitnessAssignment.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd125053909412c943a4a896ee74c6a69ca3508 GIT binary patch literal 1225 zcmeAS@N?(olHy`uVBq!ia0y~yU}OZc53n!;$#0COvw@UEfKQ0)|NsAi%>Vxn%%7hy z0muU50|yRNANv0U$Ym@E@(X5gcy=R=fq^C7)5S5QV$R#yo@GxIc-p#s*EdR^P=9f~ zcHx?$|H>vA42C=2NZnDY;#EnY@Lg89#+0J znpoY(+10g(bBbZMR%(U^gAf;+hoXR?8nqf6Q^#IGR<&)*%Y&KHM6PIgEL=MK zPA$`%TPu3J(o(8b9b`8=TQKK6M@EFMlY4-OtI(&UY!QiV?hU!=Vht^hb>hj+7nFD` zZ+y}5;H#QB@$GJw3OTQbr7Y#e1^fBB?!>&gU7{KAzCsD@ ziyS=%P|*XYrmy}6*X)lPGAUaqDg0egZztE@{844KUgTz;FUsX+w{y!J47gd!=da^- zJd?!LsXbf6?y~#ey~mok`Z;t>ggEw0E?g`=;Z$={y2rnTF|1qmuNL~S&3xLbbAm@0 zLc^0-z2Bzj%)ZeOuXtQD{NfZ=DXs%k7R>LQm(b1YIM42^b5qolDXY$wzFM_mD@*0C zQa-*ZdM~-xYgs1jovhxpB%njLam6G@tFF&7GAn9JO`_cuPAR7|ZBw%pTKgOA(t8wXtwXHE9N~QIC-Ro~n4fcGp%PXj0g#s8N-y-mSUbI+58y%}N~QYytv7|Wd*OlE(MJTNn-xL~%>0|PC_=`&Lf-7hJc z^Qx_QgSWv+$C<2anqr%(oYb@Cv`QuI68mKpkgb^TQ;R8XzNXhV{cJ|z1=pH*SpVOv zoX64$On--?EOItWpSv(`&(3+u77ssvdHeTDYkJTFwenBj1!HajlUYZ?&*fk1^Fl3c U78Nim0m~f*Pgg&ebxsLQ0D-v=GXMYp literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEA-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEA-members.html new file mode 100644 index 000000000..80a165c0c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEA-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEA< MOEOT > Member List

This is the complete list of members for moeoEA< MOEOT >, including all inherited members.

+ + + + +
functor_category()eoUF< A1, R > [static]
operator()(A1)=0eoUF< A1, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEA.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEA.html new file mode 100644 index 000000000..a66642a76 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEA.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoEA< MOEOT > Class Template Reference + + + + +
+
+ +

moeoEA< MOEOT > Class Template Reference

Abstract class for multi-objective evolutionary algorithms. +More... +

+#include <moeoEA.h> +

+

Inheritance diagram for moeoEA< MOEOT >: +

+ +moeoAlgo +eoAlgo< MOEOT > +eoUF< A1, R > +eoFunctorBase +moeoEasyEA< MOEOT > +moeoIBEA< MOEOT > +moeoNSGA< MOEOT > +moeoNSGAII< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoEA< MOEOT >

+ +Abstract class for multi-objective evolutionary algorithms. +

+ +

+Definition at line 23 of file moeoEA.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEA.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEA.png new file mode 100644 index 0000000000000000000000000000000000000000..f07b0051085b4e728d52207401867f237ce431d9 GIT binary patch literal 2158 zcmcguc~H|y8jVK46%mz@8+3OtK?Wj3AfSM(oY90x1X<*eFi{9Xtb`B^fq)|M0AwT} z31`WTTn>m3K{llm*q;hQ2qY{7W;PrXfgs@$IkI79oT;7K+N%9y_m9{8y1(kKuiopg zyYHU$@zUC5xC;aVX(7Gcu^`a)EEWH_1FUN6&KtR^I{mXKKM$o+siI0Huednu8x{Kr zJRXn!QaP>~Zlhp*&VgJf#g{>#ojZ{3fA+gxFk2WylsfEY>g?_vdq8xZQ`2qZ72W26 zUMTksmf*df9UdldaIe}iHW^awsz{Js5EjL>%!**f2E`4 z8?Tg*A_zztYJHb8__zmVmIHC`@?4T~YmS=K}05vJ+kS$NaiHwGa=l@2H> z>UFJNU_?w~Fx2Kv_szo9n~FvIdE!+$>k_VJKO{GiT=h;~3qQ~5M~je)fEu)crNwIX zfywSm{3dtjoro%c<>m0nz!aAy7Qw6Yq&H8<-E7@h;{hfqxeLY4VGi>N^I0L{43%UdJM0OwBZQ( z1X#_o+tMcpm=C9=j*K^WKcGIJ9KnnwaQ$Rmc+NDmTfU&i$|y~%^0uY)$Wu?BgiLW6_-<(;nNE?hLRg_|<4z(>=t6T7 zokron%#&g|iMb*mYNiL)ah!^{4>O&fV)=B*i@tx6al3)E=kim+4?_ICp}F@T7_Y^JcKm=EA7lpd;cV^l;QA;*IR!7m-v24$B!F`=-MlJ z_G-Ix*nt;8NE}XInXQF7jJeC?@frFFgSh+G!&l~}?4blfaw$ZePMLnFxul_w< z((0po9#Zq|iHmz078or{3&?bd<_ANse<#le*z7@O9k}&I9r*eW&QtX?b=CdHF!9x7 z`=$Imy%qXTh*aF-CWfkAV$}xEDd4exA#~v<;`P`<@b8`Yy+1GW0anuV{0cZ}zheAi z{rcQ^CL@Q9`FO1Ss6yn|{B?(`J6pKzr(HtDW~qBcE0YI&H+}EW+%D`K*re~1UjHs- zg8W@Qvf5TRN2;FpE?Qdh)rL!jD3~sgexxvyBG;5e{+i>QjSw-iRmW}eM^bXJ$`S7~g7D)NLllcp zyhvnSN$iG>w%Bv)_2;@`P@UCo{Ax)Z+v`98WX+=q&^JF*imP`g;NV9x!Tew+ z`+QhXuB!Uz=*Orc*w!-ku2fn3gZys}n#+ubJuy(J^Q5oG5mH5@z2liTh(Dq$JGF9LD=M+LED3txi&z>k!}HEkI2B9L+~yW3PRBrn^U z+=9%24NQbuTBT*52#``xbX)Yj(&v~WnCO_J|Jw*kcG{KG#U2lwj?e1YP*BSj_iK6% zge(D%T-r2fU!2w?ymyyW%q;;poFakCC^oL3_6y}sGp4rjm6&H=35H6#o9OJI(0oh1 zXNqQnXd@9Y%Q?q!@~^+zIMQn?V8XMRxaS?s%%RyhMb)1Qt>O`Z84?**x1=C>l@_`r zEVFHAY + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEasyEA< MOEOT > Member List

This is the complete list of members for moeoEasyEA< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
breedmoeoEasyEA< MOEOT > [protected]
continuatormoeoEasyEA< MOEOT > [protected]
diversityEvalmoeoEasyEA< MOEOT > [protected]
dummyEvalmoeoEasyEA< MOEOT > [protected]
dummyMergemoeoEasyEA< MOEOT > [protected]
dummyReducemoeoEasyEA< MOEOT > [protected]
dummySelectmoeoEasyEA< MOEOT > [protected]
dummyTransformmoeoEasyEA< MOEOT > [protected]
evalmoeoEasyEA< MOEOT > [protected]
evalFitAndDivBeforeSelectionmoeoEasyEA< MOEOT > [protected]
fitnessEvalmoeoEasyEA< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
loopEvalmoeoEasyEA< MOEOT > [protected]
mergeReducemoeoEasyEA< MOEOT > [protected]
moeoEasyEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoBreed< MOEOT > &_breed, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)moeoEasyEA< MOEOT > [inline]
moeoEasyEA(eoContinue< MOEOT > &_continuator, eoPopEvalFunc< MOEOT > &_popEval, eoBreed< MOEOT > &_breed, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)moeoEasyEA< MOEOT > [inline]
moeoEasyEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoBreed< MOEOT > &_breed, eoMerge< MOEOT > &_merge, eoReduce< MOEOT > &_reduce, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)moeoEasyEA< MOEOT > [inline]
moeoEasyEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoSelect< MOEOT > &_select, eoTransform< MOEOT > &_transform, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)moeoEasyEA< MOEOT > [inline]
moeoEasyEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoSelect< MOEOT > &_select, eoTransform< MOEOT > &_transform, eoMerge< MOEOT > &_merge, eoReduce< MOEOT > &_reduce, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)moeoEasyEA< MOEOT > [inline]
operator()(eoPop< MOEOT > &_pop)moeoEasyEA< MOEOT > [inline, virtual]
moeoEA::operator()(A1)=0eoUF< A1, R > [pure virtual]
popEvalmoeoEasyEA< MOEOT > [protected]
replacemoeoEasyEA< MOEOT > [protected]
selectTransformmoeoEasyEA< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA.html new file mode 100644 index 000000000..82e7f4250 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA.html @@ -0,0 +1,599 @@ + + +ParadisEO-MOEO: moeoEasyEA< MOEOT > Class Template Reference + + + + +
+
+ +

moeoEasyEA< MOEOT > Class Template Reference

An easy class to design multi-objective evolutionary algorithms. +More... +

+#include <moeoEasyEA.h> +

+

Inheritance diagram for moeoEasyEA< MOEOT >: +

+ +moeoEA< MOEOT > +moeoAlgo +eoAlgo< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoEasyEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoBreed< MOEOT > &_breed, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)
 Ctor taking a breed and merge.
 moeoEasyEA (eoContinue< MOEOT > &_continuator, eoPopEvalFunc< MOEOT > &_popEval, eoBreed< MOEOT > &_breed, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)
 Ctor taking a breed, a merge and a eoPopEval.
 moeoEasyEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoBreed< MOEOT > &_breed, eoMerge< MOEOT > &_merge, eoReduce< MOEOT > &_reduce, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)
 Ctor taking a breed, a merge and a reduce.
 moeoEasyEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoSelect< MOEOT > &_select, eoTransform< MOEOT > &_transform, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)
 Ctor taking a select, a transform and a replacement.
 moeoEasyEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoSelect< MOEOT > &_select, eoTransform< MOEOT > &_transform, eoMerge< MOEOT > &_merge, eoReduce< MOEOT > &_reduce, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)
 Ctor taking a select, a transform, a merge and a reduce.
virtual void operator() (eoPop< MOEOT > &_pop)
 Applies a few generation of evolution to the population _pop.

Protected Attributes

+eoContinue< MOEOT > & continuator
 the stopping criteria
+eoEvalFunc< MOEOT > & eval
 the evaluation functions
+eoPopLoopEval< MOEOT > loopEval
 to evaluate the whole population
+eoPopEvalFunc< MOEOT > & popEval
 to evaluate the whole population
+eoSelectTransform< MOEOT > selectTransform
 breed: a select followed by a transform
+eoBreed< MOEOT > & breed
 the breeder
+eoMergeReduce< MOEOT > mergeReduce
 replacement: a merge followed by a reduce
+moeoReplacement< MOEOT > & replace
 the replacment strategy
+moeoFitnessAssignment< MOEOT > & fitnessEval
 the fitness assignment strategy
+moeoDiversityAssignment< MOEOT > & diversityEval
 the diversity assignment strategy
+bool evalFitAndDivBeforeSelection
 if this parameter is set to 'true', the fitness and the diversity of the whole population will be re-evaluated before the selection process
+moeoEasyEA::eoDummyEval dummyEval
 a dummy eval
+moeoEasyEA::eoDummySelect dummySelect
 a dummy select
+moeoEasyEA::eoDummyTransform dummyTransform
 a dummy transform
+eoNoElitism< MOEOT > dummyMerge
 a dummy merge
+eoTruncate< MOEOT > dummyReduce
 a dummy reduce

Classes

class  eoDummyEval
 a dummy eval More...
class  eoDummySelect
 a dummy select More...
class  eoDummyTransform
 a dummy transform More...
+

Detailed Description

+

template<class MOEOT>
+ class moeoEasyEA< MOEOT >

+ +An easy class to design multi-objective evolutionary algorithms. +

+ +

+Definition at line 33 of file moeoEasyEA.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoEasyEA< MOEOT >::moeoEasyEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoBreed< MOEOT > &  _breed,
moeoReplacement< MOEOT > &  _replace,
moeoFitnessAssignment< MOEOT > &  _fitnessEval,
moeoDiversityAssignment< MOEOT > &  _diversityEval,
bool  _evalFitAndDivBeforeSelection = false 
) [inline]
+
+
+ +

+Ctor taking a breed and merge. +

+

Parameters:
+ + + + + + + + +
_continuator the stopping criteria
_eval the evaluation functions
_breed the breeder
_replace the replacement strategy
_fitnessEval the fitness evaluation scheme
_diversityEval the diversity evaluation scheme
_evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process
+
+ +

+Definition at line 47 of file moeoEasyEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoEasyEA< MOEOT >::moeoEasyEA (eoContinue< MOEOT > &  _continuator,
eoPopEvalFunc< MOEOT > &  _popEval,
eoBreed< MOEOT > &  _breed,
moeoReplacement< MOEOT > &  _replace,
moeoFitnessAssignment< MOEOT > &  _fitnessEval,
moeoDiversityAssignment< MOEOT > &  _diversityEval,
bool  _evalFitAndDivBeforeSelection = false 
) [inline]
+
+
+ +

+Ctor taking a breed, a merge and a eoPopEval. +

+

Parameters:
+ + + + + + + + +
_continuator the stopping criteria
_popEval the evaluation functions for the whole population
_breed the breeder
_replace the replacement strategy
_fitnessEval the fitness evaluation scheme
_diversityEval the diversity evaluation scheme
_evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process
+
+ +

+Definition at line 65 of file moeoEasyEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoEasyEA< MOEOT >::moeoEasyEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoBreed< MOEOT > &  _breed,
eoMerge< MOEOT > &  _merge,
eoReduce< MOEOT > &  _reduce,
moeoFitnessAssignment< MOEOT > &  _fitnessEval,
moeoDiversityAssignment< MOEOT > &  _diversityEval,
bool  _evalFitAndDivBeforeSelection = false 
) [inline]
+
+
+ +

+Ctor taking a breed, a merge and a reduce. +

+

Parameters:
+ + + + + + + + + +
_continuator the stopping criteria
_eval the evaluation functions
_breed the breeder
_merge the merge scheme
_reduce the reduce scheme
_fitnessEval the fitness evaluation scheme
_diversityEval the diversity evaluation scheme
_evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process
+
+ +

+Definition at line 84 of file moeoEasyEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoEasyEA< MOEOT >::moeoEasyEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoSelect< MOEOT > &  _select,
eoTransform< MOEOT > &  _transform,
moeoReplacement< MOEOT > &  _replace,
moeoFitnessAssignment< MOEOT > &  _fitnessEval,
moeoDiversityAssignment< MOEOT > &  _diversityEval,
bool  _evalFitAndDivBeforeSelection = false 
) [inline]
+
+
+ +

+Ctor taking a select, a transform and a replacement. +

+

Parameters:
+ + + + + + + + + +
_continuator the stopping criteria
_eval the evaluation functions
_select the selection scheme
_transform the tranformation scheme
_replace the replacement strategy
_fitnessEval the fitness evaluation scheme
_diversityEval the diversity evaluation scheme
_evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process
+
+ +

+Definition at line 103 of file moeoEasyEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoEasyEA< MOEOT >::moeoEasyEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoSelect< MOEOT > &  _select,
eoTransform< MOEOT > &  _transform,
eoMerge< MOEOT > &  _merge,
eoReduce< MOEOT > &  _reduce,
moeoFitnessAssignment< MOEOT > &  _fitnessEval,
moeoDiversityAssignment< MOEOT > &  _diversityEval,
bool  _evalFitAndDivBeforeSelection = false 
) [inline]
+
+
+ +

+Ctor taking a select, a transform, a merge and a reduce. +

+

Parameters:
+ + + + + + + + + + +
_continuator the stopping criteria
_eval the evaluation functions
_select the selection scheme
_transform the tranformation scheme
_merge the merge scheme
_reduce the reduce scheme
_fitnessEval the fitness evaluation scheme
_diversityEval the diversity evaluation scheme
_evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process
+
+ +

+Definition at line 123 of file moeoEasyEA.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoEasyEA< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Applies a few generation of evolution to the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

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

+References moeoEasyEA< MOEOT >::breed, moeoEasyEA< MOEOT >::continuator, moeoEasyEA< MOEOT >::diversityEval, moeoEasyEA< MOEOT >::evalFitAndDivBeforeSelection, moeoEasyEA< MOEOT >::fitnessEval, moeoEasyEA< MOEOT >::popEval, and moeoEasyEA< MOEOT >::replace. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA.png new file mode 100644 index 0000000000000000000000000000000000000000..4a16b3df3127e9450e4c58de7d901283bd287e26 GIT binary patch literal 1292 zcmeAS@N?(olHy`uVBq!ia0y~yU~~bpf3PqE$+X=~{y<71z$e7@|Ns9$=Kuc(=Fd-< z0AzvjfddDs5B+}vW?P*D zUEj=<3{+WC+EJ%B>(-(UTi1l6tczqb44G}qm!AoH^G)#W?!H~VojYIfuA1JF`aJ2u z#km%f_8qI-GP`?GNM!%Nz77u;C83Y(3fKNmn6=`3(|5lsyaMs(FR`?*lK=Smt5$Ep z5^05d2V*-r1Ox?@l$=~#IyyK61r?Q)TwGcZf-6)W@lJDizhQ!pi_*2e4D;j7516j@ ze$?MMp*g9;G4S@@693hYb3eU*r7yTUN?`d7j(!b3Z(V`Xlr7u}w>&!XI$u0bYB8*y z)3zMlQU61>cB-;`F zY&FM62NxA3L2hM`A2imvDTLGuoZ%J77hox7K4QIt8=u30zEM?9ny&qShTcW*1@#M8 z@8c7^^;BGt5$M-+fvXp{^D)1SDlEO2MeeGGkecjy~ z)xS*REfd(Vm3EOPy z_u2GFAbIiqO-W0($|%g+_DBNAncv-g?a}!cE8OSL?w;)adyQj$RmqaA>^${)^S-|D z{bVcqx6G2GqVuKBqJLtK0$;E2i!L;tcje`QF7~yHei7v32Oz+~KzZG0Y3Zm7Kn?eE+VXOv|h@;XHwQ zu5&Wpw9k${w#oUVl2se$#W@^nH7o^O)pmbn*6X`9?TFy4S!Q{zr)M1O>Q7kkHrjf^ zmct%-N@*J(W$B$0ux+khYy0chPKk;wb89dCX#5$pZU!;=P!IIyWRqeE(T9mKbLh*2~7ac CiA(eV literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval-members.html new file mode 100644 index 000000000..94a7af990 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEasyEA< MOEOT >::eoDummyEval Member List

This is the complete list of members for moeoEasyEA< MOEOT >::eoDummyEval, including all inherited members.

+ + + + + + + +
EOFitT typedefeoEvalFunc< MOEOT >
EOType typedefeoEvalFunc< MOEOT >
functor_category()eoUF< A1, R > [static]
operator()(MOEOT &)moeoEasyEA< MOEOT >::eoDummyEval [inline]
eoEvalFunc< MOEOT >::operator()(A1)=0eoUF< A1, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.html new file mode 100644 index 000000000..15aee00a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.html @@ -0,0 +1,67 @@ + + +ParadisEO-MOEO: moeoEasyEA< MOEOT >::eoDummyEval Class Reference + + + + +
+
+ + +

moeoEasyEA< MOEOT >::eoDummyEval Class Reference

a dummy eval +More... +

+#include <moeoEasyEA.h> +

+

Inheritance diagram for moeoEasyEA< MOEOT >::eoDummyEval: +

+ +eoEvalFunc< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

+void operator() (MOEOT &)
 the dummy functor
+

Detailed Description

+

template<class MOEOT>
+ class moeoEasyEA< MOEOT >::eoDummyEval

+ +a dummy eval +

+ +

+Definition at line 200 of file moeoEasyEA.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.png new file mode 100644 index 0000000000000000000000000000000000000000..b84873cf58b9694d8c562e72d71d914a2f1227aa GIT binary patch literal 979 zcmeAS@N?(olHy`uVBq!ia0vp^pMm%Q3p0>ZHuK;IQW60^A+G=b{|7Sv|35H)e!>JG z3ycpOI8c4){}UjWu_VYZn8D%MjWh-Z=1fl)$B>FSZ)ZpETCBj+@bsyTa2bR4jQlj` z&sYBHC!S#K>5}vQdZTZlt?uf`7RB~TNko5nOH)3wti#3a5-tk z*2J6N4N9(=F)d84V?8h{rt#{;3o{nmxi9XV?&Qdvrd;o`M)&B3=>N+vGW^n#(A{?I zR`7+$U6-obmT|Jr`LI%2uGueB+IRj(&hporxB58DS$uxu)=wW;d`_6Yd6<*U@lb}} z-VSJIn;mcM!?Pc>U%p;?aei0bpS_B|UVq%7_-mP5UWT(YP~L3ILf%{;bC-VXkBs{B zdqtf0o6a)38#+O8iB$S6`Kk)WwOtdxy?CmXRDI_33n|tai!a}NVfalkBOzwS!pH9- z-#Y~_Q9gSy>Gj<=eHP-Gyj*Unf_Sk&FWP^GJ*A!p|HU!@C5w{88{EB#-lZPByB;(x4PzHo@AR_?ZU zsa@B4QSs`tTKCi2E^JngY3%=Cuxrk zTka+0FFLLqqxpbEd#xmIQK#aTt@l#$v*(&r89fwUd;Q|wsQztY|3z;GUO0N~vFEm# z?d7+3Rajh@x%SUlv9ofrM;;&dp0oD#bn)vuPXa^tOD18T6@-3jwohZ4=ij!^{MN$n zXT9oV8tVCM%oEtu{#u%@+7h$9EpA%O+UA%8j(ySw#?l5?ewFSNoy+?8Yx>SFuCWH) zz5801OZM0MOX*3U{h>hfqR8Y-5i9eIwM%QezI}~lyK;KoBF0toEML3uOttYoXPOr=v*4BD zqv`v?q zlk2<2>K}aObhxep + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEasyEA< MOEOT >::eoDummySelect Member List

This is the complete list of members for moeoEasyEA< MOEOT >::eoDummySelect, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(const eoPop< MOEOT > &, eoPop< MOEOT > &)moeoEasyEA< MOEOT >::eoDummySelect [inline]
eoSelect< MOEOT >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.html new file mode 100644 index 000000000..db589dc8a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.html @@ -0,0 +1,67 @@ + + +ParadisEO-MOEO: moeoEasyEA< MOEOT >::eoDummySelect Class Reference + + + + +
+
+ + +

moeoEasyEA< MOEOT >::eoDummySelect Class Reference

a dummy select +More... +

+#include <moeoEasyEA.h> +

+

Inheritance diagram for moeoEasyEA< MOEOT >::eoDummySelect: +

+ +eoSelect< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

+void operator() (const eoPop< MOEOT > &, eoPop< MOEOT > &)
 the dummy functor
+

Detailed Description

+

template<class MOEOT>
+ class moeoEasyEA< MOEOT >::eoDummySelect

+ +a dummy select +

+ +

+Definition at line 204 of file moeoEasyEA.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.png new file mode 100644 index 0000000000000000000000000000000000000000..b8f3b8454e73aaf0da776000412b40f28e8afb99 GIT binary patch literal 1019 zcmeAS@N?(olHy`uVBq!ia0vp^e}VV_3p0?k{a>*MNJ#|vgt-3y{~yTw|Np@J`3Vz% zEHFNB;6U}E|4)Ei#*!evU% z_}~05bSlQ-gcD~`zzY9=g*n_U&yw|uQhFo*`AxlldVcA$2L6Apii=i>dguR8`!`S6 zJKu&+_H_TrcPXg?Q5}W_{H*Wz8h;u&9J_NUJ!4TyUB|7%#!4IGXMgNcpZ8$$4+VeM zp9de!ueyHw2WQ~z{m)nbzbRZeeLnL~$6V{@-gzzFl|OR+EY59X|2OyJ`cL+32bauS z@l*d}zsUPD|E*bSJ{+8Xa(?aKzpjZz9SxTEDk9 z-ph8TKHs&h%VtXEJ@>_1ylXZ+nzhRA!&!67f3d_u`;Yg)^`F*Hp5AxZ zbLqMLj|ctF&+q#;@9*EoTYqkToxd4MeC7xGj$Iy3?2k{oUq7SvKWoj0-6~ld*WP)r z_f)LXE7l`^N5F+>racF?i`KE%J&1DOQWX+9S>o9G>$ZV$&(u%PGuyY8WwUEi^3QGW zwA;4o{Mb~Q5X9c~=lY}mRrQkn>Ki_$p1r>7x$wnv|N1z;e8{~!U#MxXO4};`Hy5_; zPiLzA7R{P>_{z8WpV@E5Ka!pOar<$@|L#Zcf3kn3wPS1XKkdDC|Jk4apUVUc>+?^D z^GL?3A4mBM4t)md>3?LQD<4&7-7vpz&$|b_w|c`fOA6Bi6=$9QaeSI~t!L}w<~i>k z^tLlkyHtPW_3S@O=IVN$dg|Nv#P{CI=o-sQqN1j!u2e`)`0{CWw3+WFf6G_l&#H^8 z4m>T~6d6@1kzaYS@`<&pnCUM+yRO2{(sv4 z*;1a0tLDD{`e*&8`%nM;cQ{sSwav8lP=3uO8%_0Db`S68{;U7_pZ(ALBlBzi{^d98 XG;}y8`SBMpr!siD`njxgN@xNA^k6C} literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform-members.html new file mode 100644 index 000000000..9785151f9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEasyEA< MOEOT >::eoDummyTransform Member List

This is the complete list of members for moeoEasyEA< MOEOT >::eoDummyTransform, including all inherited members.

+ + + + + +
functor_category()eoUF< A1, R > [static]
operator()(eoPop< MOEOT > &)moeoEasyEA< MOEOT >::eoDummyTransform [inline]
eoTransform< MOEOT >::operator()(A1)=0eoUF< A1, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.html new file mode 100644 index 000000000..26b0b6b11 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.html @@ -0,0 +1,67 @@ + + +ParadisEO-MOEO: moeoEasyEA< MOEOT >::eoDummyTransform Class Reference + + + + +
+
+ + +

moeoEasyEA< MOEOT >::eoDummyTransform Class Reference

a dummy transform +More... +

+#include <moeoEasyEA.h> +

+

Inheritance diagram for moeoEasyEA< MOEOT >::eoDummyTransform: +

+ +eoTransform< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

+void operator() (eoPop< MOEOT > &)
 the dummy functor
+

Detailed Description

+

template<class MOEOT>
+ class moeoEasyEA< MOEOT >::eoDummyTransform

+ +a dummy transform +

+ +

+Definition at line 208 of file moeoEasyEA.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.png new file mode 100644 index 0000000000000000000000000000000000000000..c5e6511a2e80d1e98e889fd8e661a94fd3a6e22f GIT binary patch literal 1125 zcmeAS@N?(olHy`uVBq!ia0y~yU=#+j53n!;$*WPb_5mr00G|-o|Ns93ng9PEm_I*Z z0+0p92M!#lKJ@&{;T$=G9LT!P5O3-*Y?SL`iqkl=e*MJsdvBl{Y$!>OIuTlhR6FwE{g&}oiq0` zq(<{DHGOkju5D9=@}vbvo{DxvPh-pLYdWMVS!~jEW4^PSqMloA_nld*AEy4_)9Vxx ztm)MynrF+Jx-qPBspCXerMLyT5%SGO=f4L&vE3)QZ~jrQqJW&hbDdMO*v~Ezn=W?O zQA%6nkfrqt3rVg?3l$`}E(K_W*FV$vHLvQ$>eD*0CIY98NnFHA;Zs-ZA8Jay;!kMXG<~5$?SwnLrRyxusILEAwQ3!+S7`5~&0Zmb z@t0+nrksqL@-t_OY59x*kF)J;s{8hM$uIO+R*)AMv}VtlPmc2<_c%@c`AAfE&nXZ` zydx+%C;2JM`UMe;8tO;9ZaGeRxBiEa*NpRb&Xj-sSHJ#?TjhCK&;1X|FEAR3s5m=r zviV#n#gRJa$vX!PX4P_bCrQm5UfeDRdP(Pe%?z;L=DBxXkqNt}KL1P16CF)gFU!T> zR>^7XPC0M){cypo?^Dm2MqlN1os?vi`C#$siTu%CjXPAQv}|6~QsZK}r|jA<$tfj# zrG9Np^P~Ni2R!x2;89#Epj@vwC0*>LtH?%y>%ylUt)0ErtkZDW^6`|g&iMrbp&An} zb-v^6it5_aU@rE;@N{w9%jT$K4nUtp8MX}vRAajUde6= zNs3gs>ByO?r!o7v*K^sDNzjPN)R?l`zE~u3-cO6($#-NqQWt>2K)H1-D2~Aqjg1IW z7m;$U`&9exMKM^FqR8=!cdq=YVyw6Rbn77Nt)B44Wq&QIdN!@!d1+hByB|u+Wn(h* zW_bPn+j)D{0-d%W|HQ06Iky!|w6=A6IBU<&xmQhkr!$`3^XJ`>o*?U&PaR_twEcb= zcd0KAi#5|b8g%;bjwh+VY`cPAr%L_x%#)nEOk5;)>O{Xa7H`j+nH5*`^3Bz|nxYhW ziYxWyioKJ5ZP(aWvo?F?`wLU2-(M^sYOmuuec9Am;ojcf`--+Z7&-kA=qj?9Idko$ z+9@^RUN$F<)VuZWfAyX6W-8~R9X*p`?5DEsYP@vJt9Me;(w2nH&6}=&GAZ?85GiM0 zddpE|qptU&{{F1PY7>6#-1KfisT8OAs_^5}SwGq7Pms8?;7;KF^pA&U$}MPker0x* w&1L2(!gGy&tv}oi%(Bi4WB$%ueBwX5d{A?mO#AJAV41++>FVdQ&MBb@0M$SF6#xJL literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement-members.html new file mode 100644 index 000000000..38090cf42 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement-members.html @@ -0,0 +1,50 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoElitistReplacement< MOEOT > Member List

This is the complete list of members for moeoElitistReplacement< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + +
comparatormoeoElitistReplacement< MOEOT > [protected]
defaultComparatormoeoElitistReplacement< MOEOT > [protected]
defaultDiversitymoeoElitistReplacement< MOEOT > [protected]
diversityAssignmentmoeoElitistReplacement< MOEOT > [protected]
fitnessAssignmentmoeoElitistReplacement< MOEOT > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoElitistReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment, moeoComparator< MOEOT > &_comparator)moeoElitistReplacement< MOEOT > [inline]
moeoElitistReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment)moeoElitistReplacement< MOEOT > [inline]
moeoElitistReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoComparator< MOEOT > &_comparator)moeoElitistReplacement< MOEOT > [inline]
moeoElitistReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment)moeoElitistReplacement< MOEOT > [inline]
operator()(eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)moeoElitistReplacement< MOEOT > [inline]
moeoReplacement::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement.html new file mode 100644 index 000000000..a697db619 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement.html @@ -0,0 +1,310 @@ + + +ParadisEO-MOEO: moeoElitistReplacement< MOEOT > Class Template Reference + + + + +
+
+ +

moeoElitistReplacement< MOEOT > Class Template Reference

Elitist replacement strategy that consists in keeping the N best individuals. +More... +

+#include <moeoElitistReplacement.h> +

+

Inheritance diagram for moeoElitistReplacement< MOEOT >: +

+ +moeoReplacement< MOEOT > +eoReplacement< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment, moeoComparator< MOEOT > &_comparator)
 Full constructor.
 moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment)
 Constructor without comparator.
 moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoComparator< MOEOT > &_comparator)
 Constructor without moeoDiversityAssignement.
 moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment)
 Constructor without moeoDiversityAssignement nor moeoComparator.
void operator() (eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)
 Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained.

Protected Attributes

+moeoFitnessAssignment< MOEOT > & fitnessAssignment
 the fitness assignment strategy
+moeoDiversityAssignment< MOEOT > & diversityAssignment
 the diversity assignment strategy
+moeoDummyDiversityAssignment<
+ MOEOT > 
defaultDiversity
 a dummy diversity assignment can be used as default
+moeoFitnessThenDiversityComparator<
+ MOEOT > 
defaultComparator
 a fitness then diversity comparator can be used as default
+moeoElitistReplacement::Cmp comparator
 this object is used to compare solutions in order to sort the population

Classes

class  Cmp
 this object is used to compare solutions in order to sort the population More...
+

Detailed Description

+

template<class MOEOT>
+ class moeoElitistReplacement< MOEOT >

+ +Elitist replacement strategy that consists in keeping the N best individuals. +

+ +

+Definition at line 26 of file moeoElitistReplacement.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoElitistReplacement< MOEOT >::moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoDiversityAssignment< MOEOT > &  _diversityAssignment,
moeoComparator< MOEOT > &  _comparator 
) [inline]
+
+
+ +

+Full constructor. +

+

Parameters:
+ + + + +
_fitnessAssignment the fitness assignment strategy
_diversityAssignment the diversity assignment strategy
_comparator the comparator (used to compare 2 individuals)
+
+ +

+Definition at line 36 of file moeoElitistReplacement.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoElitistReplacement< MOEOT >::moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoDiversityAssignment< MOEOT > &  _diversityAssignment 
) [inline]
+
+
+ +

+Constructor without comparator. +

+A moeoFitThenDivComparator is used as default.

Parameters:
+ + + +
_fitnessAssignment the fitness assignment strategy
_diversityAssignment the diversity assignment strategy
+
+ +

+Definition at line 46 of file moeoElitistReplacement.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoElitistReplacement< MOEOT >::moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoComparator< MOEOT > &  _comparator 
) [inline]
+
+
+ +

+Constructor without moeoDiversityAssignement. +

+A dummy diversity is used as default.

Parameters:
+ + + +
_fitnessAssignment the fitness assignment strategy
_comparator the comparator (used to compare 2 individuals)
+
+ +

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

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoElitistReplacement< MOEOT >::moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment  )  [inline]
+
+
+ +

+Constructor without moeoDiversityAssignement nor moeoComparator. +

+A moeoFitThenDivComparator and a dummy diversity are used as default.

Parameters:
+ + +
_fitnessAssignment the fitness assignment strategy
+
+ +

+Definition at line 66 of file moeoElitistReplacement.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoElitistReplacement< MOEOT >::operator() (eoPop< MOEOT > &  _parents,
eoPop< MOEOT > &  _offspring 
) [inline]
+
+
+ +

+Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained. +

+

Parameters:
+ + + +
_parents the population composed of the parents (the population you want to replace)
_offspring the offspring population
+
+ +

+Definition at line 76 of file moeoElitistReplacement.h. +

+References moeoElitistReplacement< MOEOT >::comparator, moeoElitistReplacement< MOEOT >::diversityAssignment, and moeoElitistReplacement< MOEOT >::fitnessAssignment. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement.png new file mode 100644 index 0000000000000000000000000000000000000000..c9df8b373d62657217b3d0bc11b561e49c0965af GIT binary patch literal 1073 zcmV-11kU@3P)iVKqtuSzED=V{}Ec$z@RxY;#s(eV~MFg3d(-yH^aYX>1+5qwo1zClm!4; z&c{-B1FN*@W2s*@z0UHJKhx+PT6W&MPy#L#I~Q2k0NcFG3V_L?u$-roKnL`Tvi{h^ z(=0&W1WPQ(>ot{*Rald`+^>>Fa~M4IMeJPmYusnyTDlW4^1Jo&eCuYcTI-d?p?7F< zD)AJDxLzK7tvIZgl%=fCW3}9~T}t2Ay1hH=&rhGMpP%n8S-r-gvXrGPWhqNp%2JlH z`en6z*6a0oSy}h9g1G849o~&eKo9aH*HqD9eJQYdpUIM>na5@?uu$_{V~rVWtip=Y zuCQ>DNJ&mDB*Uz|i9Epq7R1TSg2g_|dhNjWSOB?SYy_jkr52@+yRcoq#$pbE3)9Nv zy1bNL^lNRsj#wAhOX3h9llddd35%;=jQQP^8$S6P*i}|x{^W0a@AZACtj}e&+_SaZ zi@rNc_4#M9dW}P6DN9+(QkJrmr7UIj%WCA8f*9&qbk2m#6Raf4<7s7(1M*ZHR9U>@x#h&-Biej=`y{IndBfRfIWJEa z2R@ymCjr>g2$rnHJZ`a2#T6{S@fq)kCSg0V0HE+|4qLE9l=s;!kU$T_k^}X?gL7`( zuLW%BS0T!~=m?t;yUDL@)}def>s4e~u&2Le93HOMdK~&#?CAJB4kHe3_W3#;^JO}z zhM!9x%Bq@_^)yz?JzLAY=)1F2pMMss*Em#`vXrGPWhqNp%2HOptd`Guy*@81>qb^} zjeh@(bX|=;XNmfLmquT(M18+Wqc2!9qqQ~qRn|=!{kmWGX!Lt?SX-lCur}lHb&dYS z_eM1>`-554lCqx0YPn}?xfgwRmg@7*V)Yt_%2JlHl%*_XDN9+(>X!x0k{xVShxd}Q zp3gE<$e1C#LS_g76kD$*lU3WPyG0Xt14Zu@7X2H}*l6pB1=Fp?_J&%UR3|Kh2B(%d z7-m_p)3Ao{Zm<;1Kx}9y$MG84WUSEJ@^JHU3d=&ESu^kjS@FfCl#30)Sh`{dgY(BD zSg^2`S!6O=itA-$y<(-jNxk$VV~K?(l3z5Gf(20eH2@hKuqze-b^st2cOX=_88+rH zw3zud%vfm-#TULG#P7ndP1cHEzge#$n~bf-;e5TaIOO%hI5hJ(v=WDg!V-s(0&VvB rTEyY0WR9C0BxSvxl=U=L!#&%7{NBj<#)r?b00000NkvXXu0mjfrA{7` literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp-members.html new file mode 100644 index 000000000..9a0d6d421 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp-members.html @@ -0,0 +1,39 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoElitistReplacement< MOEOT >::Cmp Member List

This is the complete list of members for moeoElitistReplacement< MOEOT >::Cmp, including all inherited members.

+ + + +
Cmp(moeoComparator< MOEOT > &_comp)moeoElitistReplacement< MOEOT >::Cmp [inline]
compmoeoElitistReplacement< MOEOT >::Cmp [private]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoElitistReplacement< MOEOT >::Cmp [inline]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp.html new file mode 100644 index 000000000..119df4255 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp.html @@ -0,0 +1,100 @@ + + +ParadisEO-MOEO: moeoElitistReplacement< MOEOT >::Cmp Class Reference + + + + +
+
+ + +

moeoElitistReplacement< MOEOT >::Cmp Class Reference

this object is used to compare solutions in order to sort the population +More... +

+#include <moeoElitistReplacement.h> +

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

Public Member Functions

 Cmp (moeoComparator< MOEOT > &_comp)
 Ctor.
+bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 is greater than _moeo2 according to the comparator _moeo1 the first individual _moeo2 the first individual.

Private Attributes

+moeoComparator< MOEOT > & comp
 the comparator
+


Detailed Description

+

template<class MOEOT>
+ class moeoElitistReplacement< MOEOT >::Cmp

+ +this object is used to compare solutions in order to sort the population +

+ +

+Definition at line 105 of file moeoElitistReplacement.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoElitistReplacement< MOEOT >::Cmp::Cmp (moeoComparator< MOEOT > &  _comp  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_comp the comparator
+
+ +

+Definition at line 112 of file moeoElitistReplacement.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEntropyMetric-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEntropyMetric-members.html new file mode 100644 index 000000000..e5b3bf639 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEntropyMetric-members.html @@ -0,0 +1,50 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEntropyMetric< ObjectiveVector > Member List

This is the complete list of members for moeoEntropyMetric< ObjectiveVector >, including all inherited members.

+ + + + + + + + + + + + + + +
computeUnion(const std::vector< ObjectiveVector > &_f1, const std::vector< ObjectiveVector > &_f2, std::vector< ObjectiveVector > &_f)moeoEntropyMetric< ObjectiveVector > [inline, private]
euclidianDistance(const ObjectiveVector &_set1, const ObjectiveVector &_to, unsigned int _deg=2)moeoEntropyMetric< ObjectiveVector > [inline, private]
functor_category()eoBF< A1, A2, R > [static]
howManyInNicheOf(const std::vector< ObjectiveVector > &_f, const ObjectiveVector &_s, unsigned int _size)moeoEntropyMetric< ObjectiveVector > [inline, private]
normalize(std::vector< ObjectiveVector > &_f)moeoEntropyMetric< ObjectiveVector > [inline, private]
operator()(const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)moeoEntropyMetric< ObjectiveVector > [inline]
moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
paretoComparatormoeoEntropyMetric< ObjectiveVector > [private]
prenormalize(const std::vector< ObjectiveVector > &_f)moeoEntropyMetric< ObjectiveVector > [inline, private]
removeDominated(std::vector< ObjectiveVector > &_f)moeoEntropyMetric< ObjectiveVector > [inline, private]
vect_max_valmoeoEntropyMetric< ObjectiveVector > [private]
vect_min_valmoeoEntropyMetric< ObjectiveVector > [private]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEntropyMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEntropyMetric.html new file mode 100644 index 000000000..2c3b8b53f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEntropyMetric.html @@ -0,0 +1,303 @@ + + +ParadisEO-MOEO: moeoEntropyMetric< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoEntropyMetric< ObjectiveVector > Class Template Reference

The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. +More... +

+#include <moeoEntropyMetric.h> +

+

Inheritance diagram for moeoEntropyMetric< ObjectiveVector >: +

+ +moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

double operator() (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)
 Returns the entropy of the Pareto set '_set1' relatively to the Pareto set '_set2'.

Private Member Functions

void removeDominated (std::vector< ObjectiveVector > &_f)
 Removes the dominated individuals contained in _f.
void prenormalize (const std::vector< ObjectiveVector > &_f)
 Prenormalization.
void normalize (std::vector< ObjectiveVector > &_f)
 Normalization.
void computeUnion (const std::vector< ObjectiveVector > &_f1, const std::vector< ObjectiveVector > &_f2, std::vector< ObjectiveVector > &_f)
 Computation of the union of _f1 and _f2 in _f.
+unsigned int howManyInNicheOf (const std::vector< ObjectiveVector > &_f, const ObjectiveVector &_s, unsigned int _size)
 How many in niche.
+double euclidianDistance (const ObjectiveVector &_set1, const ObjectiveVector &_to, unsigned int _deg=2)
 Euclidian distance.

Private Attributes

+std::vector< double > vect_min_val
 vector of min values
+std::vector< double > vect_max_val
 vector of max values
+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector > 
paretoComparator
 Functor to compare two objective vectors according to Pareto dominance relation.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoEntropyMetric< ObjectiveVector >

+ +The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. +

+of the 2002 Congress on Evolutionary Computation, IEEE Press, pp. 1155-1156) +

+ +

+Definition at line 25 of file moeoEntropyMetric.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
double moeoEntropyMetric< ObjectiveVector >::operator() (const std::vector< ObjectiveVector > &  _set1,
const std::vector< ObjectiveVector > &  _set2 
) [inline]
+
+
+ +

+Returns the entropy of the Pareto set '_set1' relatively to the Pareto set '_set2'. +

+

Parameters:
+ + + +
_set1 the first Pareto set
_set2 the second Pareto set
+
+ +

+Definition at line 34 of file moeoEntropyMetric.h. +

+References moeoEntropyMetric< ObjectiveVector >::computeUnion(), moeoEntropyMetric< ObjectiveVector >::howManyInNicheOf(), moeoEntropyMetric< ObjectiveVector >::normalize(), moeoEntropyMetric< ObjectiveVector >::prenormalize(), and moeoEntropyMetric< ObjectiveVector >::removeDominated(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
void moeoEntropyMetric< ObjectiveVector >::removeDominated (std::vector< ObjectiveVector > &  _f  )  [inline, private]
+
+
+ +

+Removes the dominated individuals contained in _f. +

+

Parameters:
+ + +
_f a Pareto set
+
+ +

+Definition at line 85 of file moeoEntropyMetric.h. +

+References moeoEntropyMetric< ObjectiveVector >::paretoComparator. +

+Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
void moeoEntropyMetric< ObjectiveVector >::prenormalize (const std::vector< ObjectiveVector > &  _f  )  [inline, private]
+
+
+ +

+Prenormalization. +

+

Parameters:
+ + +
_f a Pareto set
+
+ +

+Definition at line 107 of file moeoEntropyMetric.h. +

+References moeoEntropyMetric< ObjectiveVector >::vect_max_val, and moeoEntropyMetric< ObjectiveVector >::vect_min_val. +

+Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
void moeoEntropyMetric< ObjectiveVector >::normalize (std::vector< ObjectiveVector > &  _f  )  [inline, private]
+
+
+ +

+Normalization. +

+

Parameters:
+ + +
_f a Pareto set
+
+ +

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

+References moeoEntropyMetric< ObjectiveVector >::vect_max_val, and moeoEntropyMetric< ObjectiveVector >::vect_min_val. +

+Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + + + + + + + +
void moeoEntropyMetric< ObjectiveVector >::computeUnion (const std::vector< ObjectiveVector > &  _f1,
const std::vector< ObjectiveVector > &  _f2,
std::vector< ObjectiveVector > &  _f 
) [inline, private]
+
+
+ +

+Computation of the union of _f1 and _f2 in _f. +

+

Parameters:
+ + + + +
_f1 the first Pareto set
_f2 the second Pareto set
_f the final Pareto set
+
+ +

+Definition at line 142 of file moeoEntropyMetric.h. +

+Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEntropyMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEntropyMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..070e38a3370c39ca4381dbd4df7670f3bde4c262 GIT binary patch literal 2280 zcmb7Gc~sKb9>;VlO|fTLspHa2Y3789K6e|FtW1T{(n&=#azj#QLexl&q{UIJBy(R9 z*Hml)QNbl!jOR0T0AYS4#%P)uu80~YkLk^v>GjTgXXcN4@ArPsJ>T!WpXHpJeiVL4 zOG94+1OjP!96sO!0s z6r;+m3f2ei3vwM3go8lqQ#=mrKb}}5DGJP{G;eX=9&;f1>t5Hl>R4&f6NL<7B zAIAtzV+5G9{Sd7RZ{t?9oli`E`?iSB}6~jQoNHzW})#5auGn1E=kp&xHV)+#9BdtOsfU6jr2(YWP1EO;Quf_ zHkRJK-&873S*)f4q*}cEAX5`+stFycT5E`BDuS8P&BEzHfWeSY(|hVB6QW(hFbTF> zha-(q7`x>*8er+rn zHHK?`gM|QWKk7t$M5h=d6LTLK3+&0=wGrRuhrC%M8Y4hnZMwo+o!o$YWOl)&Uzep$ zhb`$h&6!K{k2z`4QHf<6mWZLTwcIT6uSY*Cs)oMmD*3$A|4PPDaZ**;G<1otv9wbk zv@)gh`$@NMXFbm7u7HpqR@~qjQ!U|*Vi8~Z3_C2o`71xa zW1%E%TaeTHfy)VcD+H2tQqg%CS?n9S@e1#StD92e1OibB_+wRMr#(^Ivy0Fk>M!wIbQsSrMC^wBgQ)uDzSzTEc#wrw#G0)zd*Xla!8fd5%YcZwrw z_!T=ant{->VNPTgrD2lYaFMXGllESz{>fRZ3&z@cEZZ=0}G@Pl{K6X93rsB{M^a(D++s)<- z`=#bs{eV~Hy^u7`kYH%aC97+-`=-Vthlx(Mgb=G&_tjE!K+ZphQ*ge1u!Dt&agOBv zVg`<4#`Ap_0+q#+DcT$(lCE3@uxp8ax}P1~lb(NfXuJyAB+S0dkK{Kc{nPyP!e)7H zCQ!GxxgN<fzc8d>o?gQh6ZY=ONX zOJYg)zx(z+a^Hhq0aaB{=Q)UCF4v-zl+PAWjUIp56C{jG;I2PhOc=dC^qly-(%|Ai z{c9*WeO?A7tIywx>*D8P!%R1&taRpkAy#e3Gedq{QJe{RCQmk8bPb5k+9k=};_-i# z@o!hDsH!WSxK`xzpMLz*CVx^Xa>zry&9vseyn!!R?3#EB%I$B_L;t9GeLa8yMK4nZ z8!`h{mFd`99q^RfGv|^V2VQxa${fVMt~IZL*Ifi|4T%Q8z>v zG#7N}sT@;me^NYp^eT2d>16KhnFkOmGq)xgY1hLt+FPAY$4UjJMlpkwD#0oCc#cHu z<}%s7_bSaYe9J@f>iWX2^7QtRL5CFQJ11W1;8VFqO{0%FKJO8JuPN)3R|Upy3H|%_ zC|hD0pHw#F;0!zF^L(E`IMO5XTj0W~G|_a$P~J9VnTI$7Pi`B4Trg(B@?2g_LvXTW4pAY$P>V(TP5`j9vgF!=dkn@|V1GE8Zh6;b8tz1K&1ch4a+_{p z)JliG5Qfi^wDdyx)_R5>UPV`lCx3jQQ^_kb+kKvvX&Po~ZCQ@g|Hjubwumilkat}O zZZ8sd(&UJUv2|2ONHWdXVFTS?I*{TT6@g&zvqHJ8Imdd8=`ms4xkC+sdi0fJlYR&H jq;gwz_uZQ + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEnvironmentalReplacement< MOEOT > Member List

This is the complete list of members for moeoEnvironmentalReplacement< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + +
comparatormoeoEnvironmentalReplacement< MOEOT > [protected]
defaultComparatormoeoEnvironmentalReplacement< MOEOT > [protected]
defaultDiversitymoeoEnvironmentalReplacement< MOEOT > [protected]
diversityAssignmentmoeoEnvironmentalReplacement< MOEOT > [protected]
fitnessAssignmentmoeoEnvironmentalReplacement< MOEOT > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoEnvironmentalReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment, moeoComparator< MOEOT > &_comparator)moeoEnvironmentalReplacement< MOEOT > [inline]
moeoEnvironmentalReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment)moeoEnvironmentalReplacement< MOEOT > [inline]
moeoEnvironmentalReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoComparator< MOEOT > &_comparator)moeoEnvironmentalReplacement< MOEOT > [inline]
moeoEnvironmentalReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment)moeoEnvironmentalReplacement< MOEOT > [inline]
ObjectiveVector typedefmoeoEnvironmentalReplacement< MOEOT >
operator()(eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)moeoEnvironmentalReplacement< MOEOT > [inline]
moeoReplacement::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.html new file mode 100644 index 000000000..0db3e2d24 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.html @@ -0,0 +1,315 @@ + + +ParadisEO-MOEO: moeoEnvironmentalReplacement< MOEOT > Class Template Reference + + + + +
+
+ +

moeoEnvironmentalReplacement< MOEOT > Class Template Reference

Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. +More... +

+#include <moeoEnvironmentalReplacement.h> +

+

Inheritance diagram for moeoEnvironmentalReplacement< MOEOT >: +

+ +moeoReplacement< MOEOT > +eoReplacement< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type for objective vector.

Public Member Functions

 moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment, moeoComparator< MOEOT > &_comparator)
 Full constructor.
 moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment)
 Constructor without comparator.
 moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoComparator< MOEOT > &_comparator)
 Constructor without moeoDiversityAssignement.
 moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment)
 Constructor without moeoDiversityAssignement nor moeoComparator.
void operator() (eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)
 Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained.

Protected Attributes

+moeoFitnessAssignment< MOEOT > & fitnessAssignment
 the fitness assignment strategy
+moeoDiversityAssignment< MOEOT > & diversityAssignment
 the diversity assignment strategy
+moeoDummyDiversityAssignment<
+ MOEOT > 
defaultDiversity
 a dummy diversity assignment can be used as default
+moeoFitnessThenDiversityComparator<
+ MOEOT > 
defaultComparator
 a fitness then diversity comparator can be used as default
+moeoEnvironmentalReplacement::Cmp comparator
 this object is used to compare solutions in order to sort the population

Classes

class  Cmp
 this object is used to compare solutions in order to sort the population More...
+

Detailed Description

+

template<class MOEOT>
+ class moeoEnvironmentalReplacement< MOEOT >

+ +Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. +

+ +

+Definition at line 26 of file moeoEnvironmentalReplacement.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoEnvironmentalReplacement< MOEOT >::moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoDiversityAssignment< MOEOT > &  _diversityAssignment,
moeoComparator< MOEOT > &  _comparator 
) [inline]
+
+
+ +

+Full constructor. +

+

Parameters:
+ + + + +
_fitnessAssignment the fitness assignment strategy
_diversityAssignment the diversity assignment strategy
_comparator the comparator (used to compare 2 individuals)
+
+ +

+Definition at line 40 of file moeoEnvironmentalReplacement.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoEnvironmentalReplacement< MOEOT >::moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoDiversityAssignment< MOEOT > &  _diversityAssignment 
) [inline]
+
+
+ +

+Constructor without comparator. +

+A moeoFitThenDivComparator is used as default.

Parameters:
+ + + +
_fitnessAssignment the fitness assignment strategy
_diversityAssignment the diversity assignment strategy
+
+ +

+Definition at line 50 of file moeoEnvironmentalReplacement.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoEnvironmentalReplacement< MOEOT >::moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoComparator< MOEOT > &  _comparator 
) [inline]
+
+
+ +

+Constructor without moeoDiversityAssignement. +

+A dummy diversity is used as default.

Parameters:
+ + + +
_fitnessAssignment the fitness assignment strategy
_comparator the comparator (used to compare 2 individuals)
+
+ +

+Definition at line 60 of file moeoEnvironmentalReplacement.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoEnvironmentalReplacement< MOEOT >::moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment  )  [inline]
+
+
+ +

+Constructor without moeoDiversityAssignement nor moeoComparator. +

+A moeoFitThenDivComparator and a dummy diversity are used as default.

Parameters:
+ + +
_fitnessAssignment the fitness assignment strategy
+
+ +

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

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoEnvironmentalReplacement< MOEOT >::operator() (eoPop< MOEOT > &  _parents,
eoPop< MOEOT > &  _offspring 
) [inline]
+
+
+ +

+Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained. +

+

Parameters:
+ + + +
_parents the population composed of the parents (the population you want to replace)
_offspring the offspring population
+
+ +

+Definition at line 80 of file moeoEnvironmentalReplacement.h. +

+References moeoEnvironmentalReplacement< MOEOT >::comparator, moeoEnvironmentalReplacement< MOEOT >::diversityAssignment, and moeoEnvironmentalReplacement< MOEOT >::fitnessAssignment. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.png new file mode 100644 index 0000000000000000000000000000000000000000..ee0869fc61d4298cef1843bba33defa685d3f177 GIT binary patch literal 1438 zcmbVMYfw@N6sEE=&1~=8BHt?mYnGB!=3_=NL*NpsUQEj7Dh4UKIo`Nl%UBq`a|B-B`Dn`Usv*lh#Uj@$68xkQ`+=nhIC2d zUg|!CkFqZsfmptsMA#X`7OG1Q72V#5@SCk{Nw>(k{`e8-8SbjLuf5C{LpXcoA9a0o zo6HG)sPa5vf_4z`L{uV7Ya;Nq864bAwld+?;!U`58=o@VtXdAl+MfT!zVo5W^XS1y zr_4JQoa)!_LLDAopQy^?oGImmNO%OcD$FW>4xMGk9RtxZLh$sYIs|$kNMH@V4F@|vl2iuE{nj<2I+wg*F*^W5@X4y zw+uV%^3wWP$$Xq${(8Y1h&V=2OsqVS?vEA}7c)`I>JaBce(`bk`E~tIbknus<;Fcr zjZQ3C`hUx+5_;NB-vMo-n34!>TBRgcJ;kd}K6AKw4|eXA&|w6;UddPQh|F4HLTDDcWSlz16r}M!Xv&*QOm)N6X92jKh{yW zvtr?WcRWxpn{=s(^O!$kD&fH@_+4Whk(YCW?Y6MCIk`GlcV8Q@hurQzyJwHfel zBW|Bd#`N0yGDBmhNaB(A`8soKixLcW4J70R61V?A+F}0^hNl3FZyx%;6wyaGI#Zxa z((A{(L3xPXQ!eBs7&XO2laDJf752Ck!6RW_@XEUZKv6s|a}_i9X%EqfC2m>MS#IjP z3%ATM?L&3OA+%!rf`;4{0_~q}m#VvFOW$-_)`z-U`r?p1AA!r2V+9=A{XE)32#JcW zTx*U6B*ikK^+9V&xl7MF^FU+&z#JknM{w+hJs6?MHM@ZIuve$MGnS25YI_pmGnY7Orw%}S7Xgo*g(>^05ft+>A5DF3g56G zphd{OP(?uZa|j@Kj}rBrQu)f-&a z4#07C!FPu)II?@Nu>b98XiHR?gTF!-Gcz;Uu+_?|h~41nUBYeFT}dXP`Y`gs2981N z9|2YUeEH{#(&|q}j6g6q3Ix6^8i#8ltoQ~=f9><%chTd}0a-X6RW~jWn*~Mv#Isu|5G4t8wjMJ++b! zORr1~*^Rr)3tckdn}x~LDADw&T~XnJw`6sCQbRvu^&=-hGmGPK`bk<77J5a?2m|%b z0yOK!mTBfcnfUqTOHvx~fIM;=@C1Y$V;pG#p1K)!@c!qci^NDg&@MEV*Svp-VOh;puze=`umxseX~sz&Ykl0A-GefmvVA`ztMc$rGj)m)fRQ;TLNszvH>ME| e^PP{zPuq>YUKb@f%1SjnQv}J6N~rRUxbQdBEQe(P literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp-members.html new file mode 100644 index 000000000..f7bd8bcbd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp-members.html @@ -0,0 +1,39 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEnvironmentalReplacement< MOEOT >::Cmp Member List

This is the complete list of members for moeoEnvironmentalReplacement< MOEOT >::Cmp, including all inherited members.

+ + + +
Cmp(moeoComparator< MOEOT > &_comp)moeoEnvironmentalReplacement< MOEOT >::Cmp [inline]
compmoeoEnvironmentalReplacement< MOEOT >::Cmp [private]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoEnvironmentalReplacement< MOEOT >::Cmp [inline]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp.html new file mode 100644 index 000000000..105606415 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp.html @@ -0,0 +1,100 @@ + + +ParadisEO-MOEO: moeoEnvironmentalReplacement< MOEOT >::Cmp Class Reference + + + + +
+
+ + +

moeoEnvironmentalReplacement< MOEOT >::Cmp Class Reference

this object is used to compare solutions in order to sort the population +More... +

+#include <moeoEnvironmentalReplacement.h> +

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

Public Member Functions

 Cmp (moeoComparator< MOEOT > &_comp)
 Ctor.
+bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 is greater than _moeo2 according to the comparator _moeo1 the first individual _moeo2 the first individual.

Private Attributes

+moeoComparator< MOEOT > & comp
 the comparator
+


Detailed Description

+

template<class MOEOT>
+ class moeoEnvironmentalReplacement< MOEOT >::Cmp

+ +this object is used to compare solutions in order to sort the population +

+ +

+Definition at line 121 of file moeoEnvironmentalReplacement.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoEnvironmentalReplacement< MOEOT >::Cmp::Cmp (moeoComparator< MOEOT > &  _comp  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_comp the comparator
+
+ +

+Definition at line 128 of file moeoEnvironmentalReplacement.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEuclideanDistance-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEuclideanDistance-members.html new file mode 100644 index 000000000..9a156b0a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEuclideanDistance-members.html @@ -0,0 +1,48 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEuclideanDistance< MOEOT > Member List

This is the complete list of members for moeoEuclideanDistance< MOEOT >, including all inherited members.

+ + + + + + + + + + + + +
boundsmoeoNormalizedDistance< MOEOT > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoNormalizedDistance()moeoNormalizedDistance< MOEOT > [inline]
ObjectiveVector typedefmoeoEuclideanDistance< MOEOT >
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoEuclideanDistance< MOEOT > [inline]
moeoNormalizedDistance< MOEOT >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)moeoNormalizedDistance< MOEOT > [inline, virtual]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedDistance< MOEOT > [inline, virtual]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedDistance< MOEOT > [inline, virtual]
tiny()moeoNormalizedDistance< MOEOT > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.html new file mode 100644 index 000000000..35a0ad1b7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.html @@ -0,0 +1,116 @@ + + +ParadisEO-MOEO: moeoEuclideanDistance< MOEOT > Class Template Reference + + + + +
+
+ +

moeoEuclideanDistance< MOEOT > Class Template Reference

A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. +More... +

+#include <moeoEuclideanDistance.h> +

+

Inheritance diagram for moeoEuclideanDistance< MOEOT >: +

+ +moeoNormalizedDistance< MOEOT > +moeoDistance< MOEOT, double > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

const double operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns the euclidian distance between _moeo1 and _moeo2 in the objective space.
+

Detailed Description

+

template<class MOEOT>
+ class moeoEuclideanDistance< MOEOT >

+ +A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. +

+between 0 and 1). A distance value then lies between 0 and sqrt(nObjectives). +

+ +

+Definition at line 24 of file moeoEuclideanDistance.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const double moeoEuclideanDistance< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns the euclidian distance between _moeo1 and _moeo2 in the objective space. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 37 of file moeoEuclideanDistance.h. +

+References moeoNormalizedDistance< MOEOT >::bounds. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.png new file mode 100644 index 0000000000000000000000000000000000000000..e57f38c7ccc8a4decc6305d7e141a0cdf7d6c2dc GIT binary patch literal 1292 zcmeAS@N?(olHy`uVBq!ia0vp^4}kaw3p0>pZ~LwSq$C1-LR|m<{|{vT|9@cq{DcWW z78oBmaG?6o|0h5$V@Z%-FoVOh8)*y-EQ>r{978JRyq)7cYqkMT!^dUWOQcWib*x^v z?%6+gjcF;$$?Az}>!MfK%xwAbRoVLqGv~%Xb7H2+7iRr@ci=x42g5VzsZoD|4^$;- zZM{-fE9@~lWwy+T%gTbwqz;7i&S<#P_`8Qu?UY$Ao06yRE!G6ir`mHTel>PT&@_&2 zSYdT1>#@ZHv*lAau$`Ku7P-=BRe6I(^?!*Izm5hU`-xc6V`eq%lJjGEIakAx+@&v5#5GV8R3xXIOjsY;K#ry4lD{H8Zy?_S#klLHof z5qEA&p2$|y`?}Zt-=YK0Usv&QNGVU)DYd|Be(8@XKbSZYRIkjuQB&|f(EE4O53fTJ zx|$hJ*Xc^HKe6?_$BoMmwI5hpoeASgNK#n#A94Fv0fGD=xE2IR*1w%ResIDG{r{^w#{T zw^{R@hWuci4%NpWIP4gLS|;gFeE-6{?}MzwM)n>n?Wa>%o<%A=cMCaCCATK_ukMBx ztrSnonM%xzEz>_mJaXpDPS~bep^<2Ez$>Tl?ql^v3ElTMCp}Z)ijFMVp+5OYM0Dmw z#W@!iZVa;IQ(fDn5tO^MYxD8M#HMexiA$YNt>~F_`KYm%OocEg_Fk$V3TLdk^XS)s z-_a|PBTd#q#Nuz$mw(rP@XcXZa*aQ8lHie*YwB+L1&SNqzonmla``Q*jJFfMUGz`O zy0!Ogt->)4Nny(iP21F&`whF_Fu0{$w_UM$k44qd^ZkD|ta$S6YN1%iMw=-s_8pFG zXrIwqr?!5p-6M7DyMZ>hZc4{B3BS7aEc&M>OGe`c=Kg(O{&u=nuFwno_TJle+TM;` z&87kjTAT|RpUq$mbqG*A^LbH)=T^^RLk7jy62FCvJ}M->VJP)HX{W!+CGX6RNqrv$ zZg@o;bLKv>6(|aZ2#e7 zUg?N5jW1LpIT~TV5ZKf32i^DeZ<@P`@+GDlnhRXnRa9P7< cf8l!O>QqLN1jff6z@m%6)78&qol`;+08IB>TL1t6 literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEvalFunc-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEvalFunc-members.html new file mode 100644 index 000000000..502a3dbde --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEvalFunc-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEvalFunc< MOEOT > Member List

This is the complete list of members for moeoEvalFunc< MOEOT >, including all inherited members.

+ + + + + + +
EOFitT typedefeoEvalFunc< MOEOT >
EOType typedefeoEvalFunc< MOEOT >
functor_category()eoUF< A1, R > [static]
operator()(A1)=0eoUF< A1, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEvalFunc.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEvalFunc.html new file mode 100644 index 000000000..d5e674007 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEvalFunc.html @@ -0,0 +1,55 @@ + + +ParadisEO-MOEO: moeoEvalFunc< MOEOT > Class Template Reference + + + + +
+
+ +

moeoEvalFunc< MOEOT > Class Template Reference

Inheritance diagram for moeoEvalFunc< MOEOT >: +

+ +eoEvalFunc< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoEvalFunc< MOEOT >

+ + +

+ +

+Definition at line 22 of file moeoEvalFunc.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEvalFunc.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoEvalFunc.png new file mode 100644 index 0000000000000000000000000000000000000000..cf6ffdddc66eb94a0ee942659557d3fd6a1c7664 GIT binary patch literal 847 zcmeAS@N?(olHy`uVBq!ia0vp^%YgU*3p0?c;bsL<5&=FTuK)l42QvTvKQMoO!UP}- zj1L?*P<`nC6CjtdB*-tA!Qt7BGzJEyr=Bj3AsLNtXL(P0tiaQDcG>j~X@~m>&zv@& z`rB{d@ko(p+hdmUQ&*K_*_*$(dc528S^V_ysz zynb8GIJriyGQdEMT%4+G~U&i8cRAGlim(@dvt+0RbabnRkKxNdQ%^m$EFvHI(Oaly-s zo*S;;A#Q(n-#qib8lOMD7dx~5_+zm%x39#`JQcFcXzEIz)O&4}M~&ac&U-%9GUrFO z?5bH$oF}%InJ#l)CLk0e$_QlX_O>o*n-}@W=KL8ZkF+ZB2$e{~LOxkhTX{VlZ z+Nw0U%;`z->ohKPyRg=xImX&qR$SN6Qd9kr%(LPHHj~eXl=BBoIprfCx9WG^XLmMz zgYT?Yug_@romrj`SE#@5(aeX7eXdSdbAGN2a*x&g5*@37js<{rqX4XxgrTWz}aF8iYqr zlgVG6n07DHxw^;ZU+;_!Cw+_r-d<+BFl zW0ys9idlC4qdRHe3a`~HTcxHxe}?7!()CwYy{ok=zUw*vaLA7}jXO(Zue^_ooqzlK zr9I1hQqLvh@x!4%+itw%HafLuP9{Un%wtC1{JtEMe8Bw6VXmCP_x(nF#~dAuy)R!8 zY#x0%jUxdcU&*O$l{6SSQdM# zhfbb+GWcd^eC^%vpCYBlWu*4_S!Qo+GmB;4xgo8#wybpiohd8NRG#5}cl1Bww*S7B UM`A6f15-bPr>mdKI;Vst0FQT*ssI20 literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment-members.html new file mode 100644 index 000000000..189086485 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment-members.html @@ -0,0 +1,52 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + +
computeFitness(const unsigned int _idx)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, protected]
computeValues(const eoPop< MOEOT > &_pop)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, protected]
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
kappamoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [protected]
metricmoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [protected]
moeoExpBinaryIndicatorBasedFitnessAssignment(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline]
ObjectiveVector typedefmoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, virtual]
setFitnesses(eoPop< MOEOT > &_pop)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, protected]
setup(const eoPop< MOEOT > &_pop)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, protected]
updateByAdding(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, virtual]
moeoBinaryIndicatorBasedFitnessAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
valuesmoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.html new file mode 100644 index 000000000..8a3d4c8a4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.html @@ -0,0 +1,416 @@ + + +ParadisEO-MOEO: moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference

Fitness assignment sheme based on an indicator proposed in: E. +More... +

+#include <moeoExpBinaryIndicatorBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >: +

+ +moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > +moeoIndicatorBasedFitnessAssignment< MOEOT > +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type of objective vector.

Public Member Functions

 moeoExpBinaryIndicatorBasedFitnessAssignment (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Ctor.
void operator() (eoPop< MOEOT > &_pop)
 Sets the fitness values for every solution contained in the population _pop.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
double updateByAdding (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the fitness values of the whole population _pop by taking the adding of the objective vector _objVec into account and returns the fitness value of _objVec.

Protected Member Functions

void setup (const eoPop< MOEOT > &_pop)
 Sets the bounds for every objective using the min and the max value for every objective vector of _pop.
void computeValues (const eoPop< MOEOT > &_pop)
 Compute every indicator value in values (values[i] = I(_v[i], _o)).
void setFitnesses (eoPop< MOEOT > &_pop)
 Sets the fitness value of the whple population.
double computeFitness (const unsigned int _idx)
 Returns the fitness value of the _idx th individual of the population.

Protected Attributes

+moeoNormalizedSolutionVsSolutionBinaryMetric<
+ ObjectiveVector, double > & 
metric
 the quality indicator
+double kappa
 the scaling factor
+std::vector< std::vector<
+ double > > 
values
 the computed indicator values
+

Detailed Description

+

template<class MOEOT>
+ class moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >

+ +Fitness assignment sheme based on an indicator proposed in: E. +

+Zitzler, S. Künzli, "Indicator-Based Selection in Multiobjective Search", Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This strategy is, for instance, used in IBEA. +

+ +

+Definition at line 29 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::moeoExpBinaryIndicatorBasedFitnessAssignment (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_metric the quality indicator
_kappa the scaling factor
+
+ +

+Definition at line 42 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the fitness values for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 50 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeValues(), moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses(), and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setup(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implements moeoFitnessAssignment< MOEOT >. +

+Definition at line 66 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
double moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::updateByAdding (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the adding of the objective vector _objVec into account and returns the fitness value of _objVec. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Definition at line 87 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setup (const eoPop< MOEOT > &  _pop  )  [inline, protected]
+
+
+ +

+Sets the bounds for every objective using the min and the max value for every objective vector of _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 130 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric, and moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >::setup(). +

+Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeValues (const eoPop< MOEOT > &  _pop  )  [inline, protected]
+
+
+ +

+Compute every indicator value in values (values[i] = I(_v[i], _o)). +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 152 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::values. +

+Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses (eoPop< MOEOT > &  _pop  )  [inline, protected]
+
+
+ +

+Sets the fitness value of the whple population. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 174 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeFitness(). +

+Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
double moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeFitness (const unsigned int  _idx  )  [inline, protected]
+
+
+ +

+Returns the fitness value of the _idx th individual of the population. +

+

Parameters:
+ + +
_idx the index
+
+ +

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

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::values. +

+Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..6dd362e57e2b287709fc1c2da30fd1a07c1294a3 GIT binary patch literal 1896 zcmaKtc{JPU8pm~7jIF6w?aQD{F++%*YuX}eX{wY`f(V&*C?%GL$g~LUv9xBml0i|# z*lG+Kky2}_{Lok@DdH9hf|MvlG&j?G?!D)pnYn*F=lMR*Iqx6u_xU{MdEg0ik&{-H z784VbbG_)~B_?(RB?|DdqoPg%i#94s%AOuqorOZ7ND75rrKKT{MCwy?b#*282p2`= zkvK1yx7a!MZ=%-{A6=c!U%gYjUUKE93d0llrSQl1H0Ial=j3Lq8N!oKJ@Y>c4V6`| zs)kil<#ay!4zBh&Xu*WJ)hneK^Fu|{{dAQI5-_4%WZxPQL51IG4Ie3GwoYyw;L4$Z zJGMj$h}!#=M*d2!lOc|Jp|Ef6sm2zw4M17q=yVV#V6W!Z$<1c~t@1;kI-fyy$ij5H zy$u9s&VU`Pw$R(P*ZVQJVRc+PloOhX&DBoS-DU;4!=~mq5mQ9sF`q|&xuNZXraS@#3=(K&j89&5NJ7xIEh#gwJ`8Y}m@}<{k$SSxcWDI7^G_+ zzWwa)dJjDUOB0%$g%nV;Oi*E}&CP9Nq6PLI!?d_)s5ca)WEGgS8-mJ`hu8&JGVi*s z4>cR2?F}8;CTU@gL;ee+;wZ<*eGT+O{Y>~ii0`)z(urxIVop*rtnPM zC^lEGhd41sp31RlRLiq&81_ z)RHA&UD42pMdZzK4VxRvJK}P0a}wFqUE5*x>_GEbg=A!XlO^-p0Vy^y<)}^Y^XLrn zuLxLe&K`d6sdn?G!rIqanw4>+_V`#6HLdQ_zJMz_C1xy(FjW17ccJF_?YnfDj)s9} zw&9)JuHvNCXAgGX0(jJLPQDE+Dscomoo4fXqTy6mL-TmQi#*3Biyy&Ifi6Am~&#WGU}auG95NJ*Kft9W&m1T83s>(iJojIiK?})xf1i= z6?;#;tuvhmR()M(sl&e?)GANRw3o#HA0j>>(-&O$-GK1Y=a36M*>r96ZO-DQ%ce{X z2ya+Xly3pXGngNuIm#t=kp<|*XiNs(81YQMiRiqmUi4fuyv3aWiBP8u4={dM@Eu>$r*JN=bKusp^k=8=#L$6TF@Wfi68a&iy_`-K0rq znC6zc0xJ6tod3@vtPVud#w!o-6+h;K9Yx?z5(-RbmJ8#W&Nr2~wUfqhgu{19X_jPyJ@q(+H&{yDzrz`ILnNq#)Mhx;~JCxmgh{H7dm25^e z2}FK^^)=l}az0}SJ96D|Z!Lg~&@Ye(RnxPd$k&kln}zp?x^T52#?lUjv>wUx=LZ$g z8AkHN0>%@iWISIlh4Qxi<@V>8Q?a_?$E%I1G;URKV@QI*1^d%>R2IsE@I9wwPVS|Xfd&N&ozvl3bt#lMp*16EUQPCWOYW%FG zu)hCr@=v2o=G-y#+9qV5gd}~LF x-(RAh142Zpq0ljHrCXXSEC0fH7b(;`1YJE + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoFastNonDominatedSortingFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoFastNonDominatedSortingFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + +
comparatormoeoFastNonDominatedSortingFitnessAssignment< MOEOT > [private]
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
mObjectives(eoPop< MOEOT > &_pop)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline, private]
moeoFastNonDominatedSortingFitnessAssignment()moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline]
moeoFastNonDominatedSortingFitnessAssignment(moeoObjectiveVectorComparator< ObjectiveVector > &_comparator)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline]
objComparatormoeoFastNonDominatedSortingFitnessAssignment< MOEOT > [private]
ObjectiveVector typedefmoeoFastNonDominatedSortingFitnessAssignment< MOEOT >
oneObjective(eoPop< MOEOT > &_pop)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline, private]
operator()(eoPop< MOEOT > &_pop)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline, virtual]
paretoComparatormoeoFastNonDominatedSortingFitnessAssignment< MOEOT > [private]
twoObjectives(eoPop< MOEOT > &_pop)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline, private]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline, virtual]
moeoParetoBasedFitnessAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.html new file mode 100644 index 000000000..62bb71e18 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.html @@ -0,0 +1,325 @@ + + +ParadisEO-MOEO: moeoFastNonDominatedSortingFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoFastNonDominatedSortingFitnessAssignment< MOEOT > Class Template Reference

Fitness assignment sheme based on Pareto-dominance count proposed in: N. +More... +

+#include <moeoFastNonDominatedSortingFitnessAssignment.h> +

+

Inheritance diagram for moeoFastNonDominatedSortingFitnessAssignment< MOEOT >: +

+ +moeoParetoBasedFitnessAssignment< MOEOT > +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

moeoFastNonDominatedSortingFitnessAssignment ()
 Default ctor.
 moeoFastNonDominatedSortingFitnessAssignment (moeoObjectiveVectorComparator< ObjectiveVector > &_comparator)
 Ctor where you can choose your own way to compare objective vectors.
void operator() (eoPop< MOEOT > &_pop)
 Sets the fitness values for every solution contained in the population _pop.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account.

Private Member Functions

void oneObjective (eoPop< MOEOT > &_pop)
 Sets the fitness values for mono-objective problems.
void twoObjectives (eoPop< MOEOT > &_pop)
 Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size.
void mObjectives (eoPop< MOEOT > &_pop)
 Sets the fitness values for problems with more than two objectives with a complexity of O(n² log n), where n stands for the population size.

Private Attributes

+moeoObjectiveVectorComparator<
+ ObjectiveVector > & 
comparator
 Functor to compare two objective vectors.
+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector
paretoComparator
 Functor to compare two objective vectors according to Pareto dominance relation.
+moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator objComparator
 Functor allowing to compare two solutions according to their first objective value, then their second, and so on.

Classes

class  ObjectiveComparator
 Functor allowing to compare two solutions according to their first objective value, then their second, and so on. More...
+

Detailed Description

+

template<class MOEOT>
+ class moeoFastNonDominatedSortingFitnessAssignment< MOEOT >

+ +Fitness assignment sheme based on Pareto-dominance count proposed in: N. +

+Srinivas, K. Deb, "Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms", Evolutionary Computation vol. 2, no. 3, pp. 221-248 (1994) and in: K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). This strategy is, for instance, used in NSGA and NSGA-II. +

+ +

+Definition at line 32 of file moeoFastNonDominatedSortingFitnessAssignment.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::moeoFastNonDominatedSortingFitnessAssignment (moeoObjectiveVectorComparator< ObjectiveVector > &  _comparator  )  [inline]
+
+
+ +

+Ctor where you can choose your own way to compare objective vectors. +

+

Parameters:
+ + +
_comparator the functor used to compare objective vectors
+
+ +

+Definition at line 51 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the fitness values for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 59 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::mObjectives(), and moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::oneObjective(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implements moeoFitnessAssignment< MOEOT >. +

+Definition at line 101 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::comparator. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::oneObjective (eoPop< MOEOT > &  _pop  )  [inline, private]
+
+
+ +

+Sets the fitness values for mono-objective problems. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 143 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::objComparator. +

+Referenced by moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::operator()(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::twoObjectives (eoPop< MOEOT > &  _pop  )  [inline, private]
+
+
+ +

+Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 165 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::mObjectives (eoPop< MOEOT > &  _pop  )  [inline, private]
+
+
+ +

+Sets the fitness values for problems with more than two objectives with a complexity of O(n² log n), where n stands for the population size. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 175 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::comparator. +

+Referenced by moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..3749d9490bd19223bcd81fec910bb31f097d37f7 GIT binary patch literal 1684 zcmZ`)doWL36c(@gh+)+yJouXy6fIQ&e`ADXYD`sx4-Y4T#Vld zgD)UofIuJvFHiSC5J(HJ!OG3rn%()J&{h+SF(-pPHa0diaATwU+O^0+4f?dYySvlG z8>LQBW8>wH3MR9EuZk$;?l+=MUB8xT8aW?%4!s!s0Vg(g-t6Ez zSoGa&f$NRiJMK}A(~`~Pt}bc>r#?fvur$Vd5(A{RvEVsI`7g_S5}?}2hlm{}gxK*> zb?zJo8_nJn*f6zIyV!OMhFu7`bL*jLTP`GEdOx7$w7tV>f5}U-Kafxlu05i~k&0-; z{&m>yyf9~=Y>yU<+ZldPekV-Q2PmuO+HBG$9qGsxz?}8;-%yxtR)qI?aIFYzpFR%d z*w&3Q1LO~Q3I`j-i1XG1v9bo7>4&)ndw$n?TE*);8h2fxP&kOUFuag6PtF6WFg)_> zmg=kF{>K}w|E|^a@i~p;U+c_F_sU++>EX3#E>s5`mB?dq$(S^~+*Om+xPOC-qz>nd619 zt;D>4M!92baLXkAs%Ubl`HW5UgV?mkJ7sQ1`&+(?6g?-nJOu`Yu+ddA+PBsvpIQMq zArVR=r;Z)gI`HE^h7Q6u3Po8uE8|TSir*rK#X3>BY__sgbuWXAVwhKO$}G6p$LHc^T1aN`cB+ zh3G_5X&P$k0$r)h*G2GGvBEU}RLJnx&ifQ)5AWLZbvq!8|I6HGLf0q^9ko6^AWk!u zduR6jJQh@N0T&pnllwn{OqV>T^p; z0^NUwXmV$GK86!*#oq`d#usVDfQUSC_%_a5Hr&HvwGQ5xU+~{9zn7;FJ{RmJn#dhl z*LO`5EB9#XR)Sgyo_V5e=4bVE+RD%|R;W9|JluQ6^Z5{2g4}wv)me6&Iug$K@K;a` zb|R5Bb)zFZz<*-zU2Z{2_`6rkYFcuyMrZYhE}WF11jqlEygrk}Q+!mNE3OW;A&vsV zHTtXKHm#9jP_esaeJa3ROrRvi*A{)MwRtjR>{foy{7yx02VH*_l~iLr>ty)Yz-#2q zN?z*QS8w}B4{w+^QJ(EbUJV|4vjQ89SivrTf7W$eWpw5&eF7m9cbw1{L}~SB) zf(y39zc;lU_Idc}5qVKZ+T&T9g2`#wwL1r!Znv8>W|jQ2X?KFt9bHp(_EGH))DJN6 zQR3s=MXQ=IUd{iHNFrK5HUMd=yEX94sh&@k@JlkQn#OE0`w=}TJWJ}DLv*QXccJG8M~8b&v840&yccuntb#9`3X3l0mYP{M%O=?Cn+ zWdXyN>U;HB?+e0L)nP%UPlVM2U%vSY7qnR50Ou@I_(}I)2A|q4b{rM(TZOM4#I@Nd z3oDm-R&*15XwdX&Y+B-QN=Z&8J*A!C$$VOQc=JJf=>33!-zcU7ay)-8L2sy$9PQB8 z58Xt)O9a<~^ABHcXWGXUCH_w7C`ZF*-6eFwO2BO_uuhfCE%MHgan`4yYm(LFrB#h4 h8Q$u5c3Jr<^R;#Ysr{;NislOed3pG`Hyw-2`V-ZaSjqqZ literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator-members.html new file mode 100644 index 000000000..85ded43f9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator Member List

This is the complete list of members for moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator, including all inherited members.

+ + + + + + +
cmpmoeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator [private]
functor_category()eoBF< A1, A2, R > [static]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator [inline]
moeoComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.html new file mode 100644 index 000000000..bb5e01ab9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.html @@ -0,0 +1,114 @@ + + +ParadisEO-MOEO: moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator Class Reference + + + + +
+
+ + +

moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator Class Reference

Functor allowing to compare two solutions according to their first objective value, then their second, and so on. +More... +

+

Inheritance diagram for moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator: +

+ +moeoComparator< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + +

Public Member Functions

const bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 < _moeo2 on the first objective, then on the second, and so on.

Private Attributes

+moeoObjectiveObjectiveVectorComparator<
+ ObjectiveVector
cmp
 the corresponding comparator for objective vectors
+

Detailed Description

+

template<class MOEOT>
+ class moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator

+ +Functor allowing to compare two solutions according to their first objective value, then their second, and so on. +

+ +

+Definition at line 121 of file moeoFastNonDominatedSortingFitnessAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const bool moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns true if _moeo1 < _moeo2 on the first objective, then on the second, and so on. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

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

+References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator::cmp. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.png new file mode 100644 index 0000000000000000000000000000000000000000..7972883251552352a62383b59612ba055e8ec8ff GIT binary patch literal 1663 zcmb_d{Xf$Q9RIq>Q!U+<$Xa+sDq0W3S!h;b?4g(nH@fOrv|M?(X6@4Qa4O-%D%wNJ z!scmXA`kJp9&Tt%O~hVVW|L8F>}|5N$E0tFjAA0Fl;!0 zPz=QZfSC>IU;zGNnfhKp`iHHnvUt7R!lVqnnTPGbcJ2NyJJit7MAcMaPiV*!?6Dv0 zu4`=_CqsLlYhn=?1MIyf9%0^}ar1t=xaZvyQMBq^fA;`HXF(SZ{BwLBn@a0Tw60x> zWJ#rElVM%S+ZdDI@N5KF^Hdt_fm>7-gI|0r|4JiAO`4HRQrVG|);Wk~Iyrp@!GC4? zL;^);LF#VRko}!oMh1Btx>O98O=2y=?9FA-4s=v&~Z0rBcSCrQ6Tql3$71V=8^6Gx7e3J_r13B3?Wu zGe%3cl3v4`A48*x8dVciZlirp7@8 zvYN?s-GK&eVq+#$diVg_x(s?ul+SD{CnAEr7+4Rh=9> z3c<=<-w8}IO-X=L00a>%He2&G=+nJ<%OD@*Zify#@orC6`6G~q-+1(S{5^I5EH^)g z5B)@doEf!V(mb8t>`5n~N=UhH-nqvwri}uGH2i0C-A9<4uI;SgB;==JIknZjHH4k| zN6!B7%kr@wy%GE*XUR0DeB@B^cw9bLU8kw*dPNs6>T~{v`rV_uDXHC#GAG`Q>uEe# zFyqmv)o82xoSYTk?h1{@UWkKjIBr*qm8U(-bl|}yI*Uy+_1jbTJE)HFPG`J&+c@wo1G`lBQZBBHjKM2HA|am z=cbM%EGpSEW*GBsb$_Kvi^bfUbELF!)Tu2iZ{56djqbGuifg;37UN?oFR^r(+HEWL;XLay#esk-<3_FqJ| zdy2?$9ucEOL73Hntr1n?+{Ww%w4!liNo`b|9A8~GS0@$HANWo%VXz&X3m7MAVu>MnKgu%H@mqw)ihm>V}(*X9<{K-^~*KR z0S@os(1cID425s0XIezd%ozvEeV$1YN0;jtXm4<1+!&;EYFQ&N>Vy-|G%4CKh$Oz%*##=Ia;m4KQVp_02PQmSc5!4`xlx(78C#g literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessAssignment-members.html new file mode 100644 index 000000000..4f375f9a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.html new file mode 100644 index 000000000..5cb85dadf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.html @@ -0,0 +1,168 @@ + + +ParadisEO-MOEO: moeoFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoFitnessAssignment< MOEOT > Class Template Reference

Functor that sets the fitness values of a whole population. +More... +

+#include <moeoFitnessAssignment.h> +

+

Inheritance diagram for moeoFitnessAssignment< MOEOT >: +

+ +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoCriterionBasedFitnessAssignment< MOEOT > +moeoDummyFitnessAssignment< MOEOT > +moeoIndicatorBasedFitnessAssignment< MOEOT > +moeoParetoBasedFitnessAssignment< MOEOT > +moeoScalarFitnessAssignment< MOEOT > +moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > +moeoUnaryIndicatorBasedFitnessAssignment< MOEOT > +moeoFastNonDominatedSortingFitnessAssignment< MOEOT > +moeoAchievementFitnessAssignment< MOEOT > +moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > + +List of all members. + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type for objective vector.

Public Member Functions

virtual void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0
 Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
void updateByDeleting (eoPop< MOEOT > &_pop, MOEOT &_moeo)
 Updates the fitness values of the whole population _pop by taking the deletion of the individual _moeo into account.
+

Detailed Description

+

template<class MOEOT>
+ class moeoFitnessAssignment< MOEOT >

+ +Functor that sets the fitness values of a whole population. +

+ +

+Definition at line 23 of file moeoFitnessAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
virtual void moeoFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [pure virtual]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implemented in moeoAchievementFitnessAssignment< MOEOT >, moeoDummyFitnessAssignment< MOEOT >, moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >, and moeoFastNonDominatedSortingFitnessAssignment< MOEOT >. +

+Referenced by moeoFitnessAssignment< MOEOT >::updateByDeleting(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
MOEOT &  _moeo 
) [inline]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the individual _moeo into account. +

+

Parameters:
+ + + +
_pop the population
_moeo the individual
+
+ +

+Definition at line 44 of file moeoFitnessAssignment.h. +

+References moeoFitnessAssignment< MOEOT >::updateByDeleting(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..2e0cd207d607f68564000d0f4858eb20683bd80d GIT binary patch literal 5201 zcmd5=c~p}7*2ZIIT4o*d*wKt*gA=KzGKVyANNrGY3{8d9EN5~^90D5DGBYbPHBE9h z12HuS6`axvhdf%KqLTAKiW3f~a52wa-@WVJ@7}e(yVkevAMbiM@4NTr`R)De4SUDi z+E_|S%1Z(O0I9QQPTKd4k&O+GDVM8ZYbqSY<>bgX4`ZYH;NEjPtF zT_&I`m`-xl{QRrXQL26;uZ@%ZkPZ#+TvqXN7;;6mEhlaI06D?Ls<{mms&yj|0FDdA zfvc+aazX4WiJCGQ{>ZU!oj)A-e!)(=vQA}`KU*y|s%_515P-^n0;189(CA({bXjFY z(Wr1)7L6egDz3x=zlqn8RscVMOVGvl{*06U{g5;8(ix%cqraZ4W0m6vHs`z)sWpOA z!~n+98!vnLix&U@#abTV;N0~p?lS;jN*D#N`eVTVG5l*t{#Vcckpi#<7{9Pn{^kud zWN!JZfe&ErZ_}{xolidC2r9?b@}I?@n>d-;{OUVlPNBHv^0O6dz2V=Tf#1CMllZj! zo^+D2K9YGkc`?-`ECo}~1K{<2P{)}r6EvRrV6|_@rD+@@=R>O_Trr1ht#_?0kt@;@ z($4GQeZ9<9a98mg3&$GOFe}jS^xpf&NQn1%t;>qCMYRWm*;P!W`yqARxvJJjS$Hr9 zWVv2ZQ%0@H+Q&7bi$|p2p(B5>$wluaI(Sw~#)Jj7R2&~5=?64jGx=jX8@Q>{kjr

dP@$m*P(3(XfIr4GQ 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 + +ParadisEO-MOEO: Member List + + + + +

+
+ +

moeoFitnessThenDiversityComparator< MOEOT > Member List

This is the complete list of members for moeoFitnessThenDiversityComparator< MOEOT >, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoFitnessThenDiversityComparator< MOEOT > [inline]
moeoComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.html new file mode 100644 index 000000000..329920597 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.html @@ -0,0 +1,106 @@ + + +ParadisEO-MOEO: moeoFitnessThenDiversityComparator< MOEOT > Class Template Reference + + + + +
+
+ +

moeoFitnessThenDiversityComparator< MOEOT > Class Template Reference

Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. +More... +

+#include <moeoFitnessThenDiversityComparator.h> +

+

Inheritance diagram for moeoFitnessThenDiversityComparator< MOEOT >: +

+ +moeoComparator< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

const bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 < _moeo2 according to their fitness values, then according to their diversity values.
+

Detailed Description

+

template<class MOEOT>
+ class moeoFitnessThenDiversityComparator< MOEOT >

+ +Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. +

+ +

+Definition at line 22 of file moeoFitnessThenDiversityComparator.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const bool moeoFitnessThenDiversityComparator< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns true if _moeo1 < _moeo2 according to their fitness values, then according to their diversity values. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 31 of file moeoFitnessThenDiversityComparator.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.png new file mode 100644 index 0000000000000000000000000000000000000000..13040c492f26073a09d5b1978138a788dc86f71d GIT binary patch literal 1402 zcmb`H`&*I+6vtm%orkRpYW`$+ueI|uS zs3SMP(9klgfl1~<8>TJ9%v;**O{LV-fCP=PJ=;I9?T2&D_xyIw=X{@&7a9^^X0qA@ z001)_)(->#0|&isUi_6l`{PEE^<`CPFyyb(>GV>kYi6^_#d`HuG&eV&ZPC5ew+5%c z5CY)+?o~VhEV01(?S|6IC(8FSesWsr4_7_9XhVKJ++;jh$I@94U2oj94`VWI!(CL0 zqCle)D6(L2oaT`)Pxo%}vnOY@4JdfH0WPm8YGEm&94OSVV;M8IdD)bg&O05g7)CDB zAFGFbKW>)HF+ZHA%S>6L6!1lyM=EUw!S%ye(E@Yc2$@YAU^k)!g_|4TG30Z1!S*xn zu@hWSDPdkF1*AQo@7bHSkvq}h)jOPYgn*dRT#~o-L*3fU9tz44p~NH-9$&tq7OS^# zi27+v`Qhl2n2ZXaU^QYpBXv#7H^BT{%o;#M*JxJUZ@KQu6(x-MR@+1`TbJc>!QwvP z^J@dt7DVnQzzPu-UAtJ%3J1v&A z=ytp|i(ZtDkH}MPWm6O}T(%F>mow;FBYyP~d>V)wS zxaQ%e97Q<4qHWpT4rt);Xxm z<8m<>2W`Pb{VjedPIv1edodWs%9G?|6#RQ^*DTuq@xEUMPh%za z^|Kd_oC!SeV0!mNL#WTd5F_X&=hPDqbK1d({>t4_*ice4+MBvRlNl+X-JWbU;+N-u zZ$_OG@*pNnuJS&AF#5-xN$gG{ZXCVz0Ec>Cv@T3Q3k_N#kPYWUm@4yVYUp_{A}L>9 z$dRTjZo}@Pi`+q>Mn=!t2w#Lw5c-jpvyp1Cwoh-ZPZ)RxX@(FK-l#hy%$n!-uAL&B zR*93+k{1{O`mLz#Yu~E3a){$l{z9rr@{sk@D4p5dHc|Pa-?&gIL2ouieWf`+{{L{; zpI|4QrKwNjrW(bKn|!Njh;EasTRMAVHL~w+2`IrirtS7JPjlCl(gc|b|LTC3ZZ;bK}|uF3V+W1Ma1@WyH=ZPmddDkvNYN~C-2T?)?=b2p%lwI zDM7~MdFbjN`Mrh*1Emb+t1kDpmG2uYw!(OHRY!oxof!PAvJ7d3>K0tT3JtWbpir-E z;gOn}9S)n)Q_AGTxV|S&wN`lJY1hOO8F~j69%0r+#`fV44{~M}&VEn##2sCFprqby zs#>G4)fm*+BotogVDG?=D + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
inf() const moeoCrowdingDiversityAssignment< MOEOT > [inline]
lastIndex(eoPop< MOEOT > &_pop, unsigned int _start)moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > [inline, private]
ObjectiveVector typedefmoeoFrontByFrontCrowdingDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoCrowdingDiversityAssignment< MOEOT > [inline, virtual]
setDistances(eoPop< MOEOT > &_pop)moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > [inline, private, virtual]
tiny() const moeoCrowdingDiversityAssignment< MOEOT > [inline]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > [inline, virtual]
moeoDiversityAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.html new file mode 100644 index 000000000..8a99e63c9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.html @@ -0,0 +1,200 @@ + + +ParadisEO-MOEO: moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > Class Template Reference

Diversity assignment sheme based on crowding proposed in: K. +More... +

+#include <moeoFrontByFrontCrowdingDiversityAssignment.h> +

+

Inheritance diagram for moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >: +

+ +moeoCrowdingDiversityAssignment< MOEOT > +moeoDiversityAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)

Private Member Functions

void setDistances (eoPop< MOEOT > &_pop)
 Sets the distance values.
unsigned int lastIndex (eoPop< MOEOT > &_pop, unsigned int _start)
 Returns the index of the last individual having the same fitness value than _pop[_start].
+

Detailed Description

+

template<class MOEOT>
+ class moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >

+ +Diversity assignment sheme based on crowding proposed in: K. +

+Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). Tis strategy assigns diversity values FRONT BY FRONT. It is, for instance, used in NSGA-II. +

+ +

+Definition at line 25 of file moeoFrontByFrontCrowdingDiversityAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+

Warning:
NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+
Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+
Warning:
NOT IMPLEMENTED, DO NOTHING !
+ +

+Reimplemented from moeoCrowdingDiversityAssignment< MOEOT >. +

+Definition at line 40 of file moeoFrontByFrontCrowdingDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::setDistances (eoPop< MOEOT > &  _pop  )  [inline, private, virtual]
+
+ +

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
unsigned int moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::lastIndex (eoPop< MOEOT > &  _pop,
unsigned int  _start 
) [inline, private]
+
+
+ +

+Returns the index of the last individual having the same fitness value than _pop[_start]. +

+

Parameters:
+ + + +
_pop the population
_start the index to start from
+
+ +

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

+Referenced by moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::setDistances(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..30e862b7b800d81a9f4b94522c31fc55369adbcb GIT binary patch literal 1874 zcmZ`)c{tST9v_jh%@7fi*^-u-Tzg{+hwP4HXc!@3jxEbb$0U+{H@1;2oDNQoL-t+v zeoUB~G#oW5GuDt%Av9;|x%auZ=ehTf_kF+b@_gU-`FuX_=bLP2YX%XK7Xg7l5DRk? zdk~1vlNav@@bh|_PT>M?khQaRFy(T&ypYT7EiJuD;YHtCZ*OlzKbOUu^4+kv#eobL zrimbs;F5)jkwbX#T8V2*k&amWe7*r{qBpH11?FB%88_tnKunYB<*F25_24kh_%Qhi!cWgW;myl3+8_1QT)7)z;BSOSa5 z6v8$LkS-udZv9#(o*$OOE}jM`$E5Tt6!NB~mF8Tt_%!qpp_s)bJVM3cEDfS2BgpD^ za=*V(jiW9u0z1Vzt_cVJ1yc73tc_}KP0y!>URH5Lv1;$6%}%123$`I%Va7Nkpd68P z@j#K=5M{9bEOYi&j}1SP`*~whAYW6Flj;80AU)WTADJ1x`|tCJZ*K>(Ff2fZ zTKtR;DK6UpPWN@3)+QG2o|yWMCVaUSA}$r`Yt z{HRts&gnWU<^(Q6!%*{|PUBr-Ut(z!{$w`>DGZ^dE?5%(d&+JPVPS-?YFg`Fc>TDn zK+PiiV;bKzPU=>q`mmg9sC>_c)&5aVUX#{mC+Zvn#%)+S#{)uMa(8lLQ-u~uvgCpF zv(9k|vf<=RG=Or8$_V)Xi19@56-a~jYQ)9xVAdWRkhukxdu6&RJ~PB{{57JqkI~tz z-}=vPx(lFd5&*rm;w-^BrqzMhiBF3{Yjh`#nFiwXCQCN>y;f8WwT7Huo&wat_U!yA zoK{B=B{dbQdTI1BFRrh(^KRo{o6Qa&?lZWLKiICV zY@=E&)=8}+`UgrXsRn4X7CHqejmo^^yq<%TmmuqXg^#~*T+l>ulN0)#&i;kk_ww5w zafIyl#iHg^c$t>>WSY05t-`DVtocaFjSl=SQ+vVX75pWNhNAEHMUfM8^y*E{!wSri z>**6vv~HhX}3f?`AIoQ8Ll zkv4|V&|WmKKSd?E)NNDv9yVc;_QRL%ruangt4f^NvpYMEB%4RyeB*Xk&(Z0q9tFaA zgK390*4Q{%tlw+qXiwRQIJ-!D+k`c)F1|wRa>m!e zR|$clvHk_HBDwiL376G}pT4+o74M#FfgI^l@Qo?giM}?CQ%^_}45#0Quh>n{g2rWk z4tu_Lia9ayF#>o(Y@4o)66KW3)t;~@t$V9<(5I5xWBwnXc&S{a0q2BQHu7bGHA)~! zdT-f_-&66w3_=?@;8UnL89CEt_U%K^6-fZz`+9xN+e7c&{c;#ZwJ~V+!GNF3>w!4= zY0GO;UlLvle`?x~G5*VxNwI#G<0n;^MDV}6`eJzon^!`0h!fTouF#%BAQPh>5aj1! zeizskkMzKUm3kP=R+kWM%Ync)sC8 zsyh-Kh{}XVMqhbnZ{`tS+2r#mUYe*gRK + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoFrontByFrontSharingDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoFrontByFrontSharingDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
alphamoeoSharingDiversityAssignment< MOEOT > [protected]
defaultDistancemoeoSharingDiversityAssignment< MOEOT > [protected]
distancemoeoSharingDiversityAssignment< MOEOT > [protected]
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
moeoFrontByFrontSharingDiversityAssignment(moeoDistance< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=2.0)moeoFrontByFrontSharingDiversityAssignment< MOEOT > [inline]
moeoFrontByFrontSharingDiversityAssignment(double _nicheSize=0.5, double _alpha=2.0)moeoFrontByFrontSharingDiversityAssignment< MOEOT > [inline]
moeoSharingDiversityAssignment(moeoDistance< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=1.0)moeoSharingDiversityAssignment< MOEOT > [inline]
moeoSharingDiversityAssignment(double _nicheSize=0.5, double _alpha=1.0)moeoSharingDiversityAssignment< MOEOT > [inline]
nicheSizemoeoSharingDiversityAssignment< MOEOT > [protected]
ObjectiveVector typedefmoeoFrontByFrontSharingDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoSharingDiversityAssignment< MOEOT > [inline, virtual]
setSimilarities(eoPop< MOEOT > &_pop)moeoFrontByFrontSharingDiversityAssignment< MOEOT > [inline, private, virtual]
sh(double _dist)moeoSharingDiversityAssignment< MOEOT > [inline, protected]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoFrontByFrontSharingDiversityAssignment< MOEOT > [inline, virtual]
moeoDiversityAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.html new file mode 100644 index 000000000..116080162 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.html @@ -0,0 +1,248 @@ + + +ParadisEO-MOEO: moeoFrontByFrontSharingDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoFrontByFrontSharingDiversityAssignment< MOEOT > Class Template Reference

Sharing assignment scheme on the way it is used in NSGA. +More... +

+#include <moeoFrontByFrontSharingDiversityAssignment.h> +

+

Inheritance diagram for moeoFrontByFrontSharingDiversityAssignment< MOEOT >: +

+ +moeoSharingDiversityAssignment< MOEOT > +moeoDiversityAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

 moeoFrontByFrontSharingDiversityAssignment (moeoDistance< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=2.0)
 Ctor.
 moeoFrontByFrontSharingDiversityAssignment (double _nicheSize=0.5, double _alpha=2.0)
 Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)

Private Member Functions

void setSimilarities (eoPop< MOEOT > &_pop)
 Sets similarities FRONT BY FRONT for every solution contained in the population _pop.
+

Detailed Description

+

template<class MOEOT>
+ class moeoFrontByFrontSharingDiversityAssignment< MOEOT >

+ +Sharing assignment scheme on the way it is used in NSGA. +

+ +

+Definition at line 22 of file moeoFrontByFrontSharingDiversityAssignment.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoFrontByFrontSharingDiversityAssignment< MOEOT >::moeoFrontByFrontSharingDiversityAssignment (moeoDistance< MOEOT, double > &  _distance,
double  _nicheSize = 0.5,
double  _alpha = 2.0 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + +
_distance the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space)
_nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed)
_alpha parameter used to regulate the shape of the sharing function
+
+ +

+Definition at line 36 of file moeoFrontByFrontSharingDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoFrontByFrontSharingDiversityAssignment< MOEOT >::moeoFrontByFrontSharingDiversityAssignment (double  _nicheSize = 0.5,
double  _alpha = 2.0 
) [inline]
+
+
+ +

+Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. +

+

Parameters:
+ + + +
_nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed)
_alpha parameter used to regulate the shape of the sharing function
+
+ +

+Definition at line 45 of file moeoFrontByFrontSharingDiversityAssignment.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoFrontByFrontSharingDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+

Warning:
NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+
Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+
Warning:
NOT IMPLEMENTED, DO NOTHING !
+ +

+Reimplemented from moeoSharingDiversityAssignment< MOEOT >. +

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

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFrontByFrontSharingDiversityAssignment< MOEOT >::setSimilarities (eoPop< MOEOT > &  _pop  )  [inline, private, virtual]
+
+
+ +

+Sets similarities FRONT BY FRONT for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Reimplemented from moeoSharingDiversityAssignment< MOEOT >. +

+Definition at line 74 of file moeoFrontByFrontSharingDiversityAssignment.h. +

+References moeoSharingDiversityAssignment< MOEOT >::distance, moeoSharingDiversityAssignment< MOEOT >::nicheSize, and moeoSharingDiversityAssignment< MOEOT >::sh(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..836960c5cfb303d8838b8a0a8cd8d70e1d5b4bdc GIT binary patch literal 1895 zcmcgtiBr;f6vqzB@+wws&_uFm)JW68F3Uo#OvMx z==WJ?!IZzH`BcwBz4iO)deh*T;T_8fkoSFNAfyrnvfv~qNb^Zh7$KxMts@&OC#~G0 z4`W1&%z2iX<^UwSVX0j<3WE5Dp%7Tnys0ZDZhD*!hU?#82VezmwNG9mzgoE2MJ5`# zQ$>vh(tVGx%d8H8y<8@@=rE!P=Q*co?7>ET2nQWTf+Uu|BNSV1`cuvcXPD4e!1nd4 z7ugp{urEuZ6eFCV#pwIz(put}Z#J@oHr#NOuh=tU?pC@gvK3nOW+Y#1M>X0Wx?nwB^62dklc>2yGr;U%;{kUNgp0 zY^>TvwCO9y9D>x7#R7S6#WTL`86F;bApD|@_C=rI3}OI!299T}C2N9+r4!3z@}JZ; z2?{bR`25k9mQTsviTQs7IH#pu2p-P6e`~hVm-(c&gO!)t5yzy^DDs?5WSrOMc9ACJ z=#(S49dh@R^SQAihE=3SV?c~S-T;K70_eExw3+;Pk@$^4Lll#7_e=stT2xIJ*WFXf z+eA44&hfQW;2Gus7OH8xpjbYC^COfnyLpt;hJCg&9+&Ghl%2NDVX_!X3zQw7mQ);1 z8$o5l6Gj@;JcFxzpkRyO?y|^($v2QZDA+uqrx#TD5c-{jP2z+Uz z5?1|7Rj%)iJA-Xg^!!!fsT(^%;cZYTzoV1|p#>RxGdy6lLE5(gB8zcxt(fXXM7*`I zC+?W2$ghFL0*5NaV?$WQS(;{nWPo5!rjY+Cl2$$fmUF?Vi ztKzStt4N(QHKop#|7#@2k_sS)(-Ik~YN}{9e#%Yjs6{8+PsLI< zAT_Scr@7d$jenYW)q0B>a(daynKXZ!DDjqU#pUOQ*y_CQs@!5aOhGbS`^>+}V)29e zffI~fnzO;r5#$n8Q;__gyViI^i#!_TCD~|f?%pCGo(-XN=4`36-8p4Gx1=E9tDVJ) z>zAC!0S~TUH70<283kp{^0s5575gJap9|j^?&3T(t>?riih^^3FTbT zBqi9_nIZ$PdOY@$wvjZOUGF#WOY;NQn{AcO)@o=?$TDKQuctIlupryo-vmUblz4%p z`9`+#@t`E@kucS|9aL^t>O#~V`sw`ldLVsY_5zL;+N9W#^ji_)>x1=XV~7|20t%Xp A_5c6? literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator-members.html new file mode 100644 index 000000000..f5d23a233 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator-members.html @@ -0,0 +1,45 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoGDominanceObjectiveVectorComparator< ObjectiveVector > Member List

This is the complete list of members for moeoGDominanceObjectiveVectorComparator< ObjectiveVector >, including all inherited members.

+ + + + + + + + + +
flag(const ObjectiveVector &_objectiveVector)moeoGDominanceObjectiveVectorComparator< ObjectiveVector > [inline, private]
functor_category()eoBF< A1, A2, R > [static]
moeoGDominanceObjectiveVectorComparator(ObjectiveVector &_ref)moeoGDominanceObjectiveVectorComparator< ObjectiveVector > [inline]
operator()(const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)moeoGDominanceObjectiveVectorComparator< ObjectiveVector > [inline]
moeoObjectiveVectorComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
paretoComparatormoeoGDominanceObjectiveVectorComparator< ObjectiveVector > [private]
refmoeoGDominanceObjectiveVectorComparator< ObjectiveVector > [private]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.html new file mode 100644 index 000000000..6f3cd26b2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.html @@ -0,0 +1,194 @@ + + +ParadisEO-MOEO: moeoGDominanceObjectiveVectorComparator< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoGDominanceObjectiveVectorComparator< ObjectiveVector > Class Template Reference

This functor class allows to compare 2 objective vectors according to g-dominance. +More... +

+#include <moeoGDominanceObjectiveVectorComparator.h> +

+

Inheritance diagram for moeoGDominanceObjectiveVectorComparator< ObjectiveVector >: +

+ +moeoObjectiveVectorComparator< ObjectiveVector > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoGDominanceObjectiveVectorComparator (ObjectiveVector &_ref)
 Ctor.
const bool operator() (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)
 Returns true if _objectiveVector1 is g-dominated by _objectiveVector2.

Private Member Functions

unsigned int flag (const ObjectiveVector &_objectiveVector)
 Returns the flag of _objectiveVector according to the reference point.

Private Attributes

+ObjectiveVector & ref
 the reference point
+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector > 
paretoComparator
 Pareto comparator.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoGDominanceObjectiveVectorComparator< ObjectiveVector >

+ +This functor class allows to compare 2 objective vectors according to g-dominance. +

+The concept of g-dominance as been introduced in: J. Molina, L. V. Santana, A. G. Hernandez-Diaz, C. A. Coello Coello, R. Caballero, "g-dominance: Reference point based dominance" (2007) +

+ +

+Definition at line 25 of file moeoGDominanceObjectiveVectorComparator.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::moeoGDominanceObjectiveVectorComparator (ObjectiveVector &  _ref  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_ref the reference point
+
+ +

+Definition at line 33 of file moeoGDominanceObjectiveVectorComparator.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
const bool moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::operator() (const ObjectiveVector &  _objectiveVector1,
const ObjectiveVector &  _objectiveVector2 
) [inline]
+
+
+ +

+Returns true if _objectiveVector1 is g-dominated by _objectiveVector2. +

+

Parameters:
+ + + +
_objectiveVector1 the first objective vector
_objectiveVector2 the second objective vector
+
+ +

+Definition at line 42 of file moeoGDominanceObjectiveVectorComparator.h. +

+References moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::flag(), and moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::paretoComparator. +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
unsigned int moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::flag (const ObjectiveVector &  _objectiveVector  )  [inline, private]
+
+
+ +

+Returns the flag of _objectiveVector according to the reference point. +

+

Parameters:
+ + +
_objectiveVector the first objective vector
+
+ +

+Definition at line 76 of file moeoGDominanceObjectiveVectorComparator.h. +

+References moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::ref. +

+Referenced by moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.png new file mode 100644 index 0000000000000000000000000000000000000000..7b85ac538843896fe011d09f7a3d3e0e37869e81 GIT binary patch literal 1559 zcmcIk`8S&h6pbM|@-?JqNR3*KPSMlxWhkXuDS}2CTkX?SC6<;}?ID&hj89IgwWJ2e z(o|7Ps8~Y7Afd`R8nKkpHZ|JfpjE~ioyuhTH*|h@@80**yXW5X9@E_wk3?u8U@#bx z;N;)|gDGUnxj;!#-nT&&j2txGoxL1oGMSvpWCAvuoF`{rOCS&=_sQPNM};^KS5KJj z!t_-b4Bkj^u=ApoeJt}&tvro-G8e)&kk~#$#{cr%jW0Wd=AA=XOdG;I5o0!H1e6O0 zp>JhVQ#seGCtmxs*)N>{&22kIzbo?NPWj+_+B!G7N-!VN%`&8KT-@+7v)= z=$k7iGx)SuWRuz8}EaWanSHPYO+ssDLMxFB=VQ`Cq=ng$rKaAKH+cGy#o&?L`!vFd5;D%RwvXQ4s)6EKmVe#QJvRG3e%ns~%WKwtP0w(4>u5Fd7p$lksv=|FK1H+A!l z&HIhh)gtkfByFf}*=3kZzdpmuBL&><`&>1v2c6`uM?cze+9En`EH{_?oUM5Y0{p7a zPUDdxD8%s=k;bFZ!1))RNgaW~m#sb8Tz2f-tiG7RiWEJJ7_8NpwMi+Bxp2VuH!8b# zq|fpKeRjoug^?!CO#~;vHUVhNoy7_H|Iq9ABd!4de_+#kVlt+eaM&y!K#t1yKZM3g z5-U!6kH$NPS{huHM(_n*W2FtHxd!wQVdzHT8r50HbZQp6)m|#H*480haup#fPqc5` z$V~mwvrJ|1X=a1rJ#&txS&pHy2x+05W&ALBV%w_w>Oo&9Cx+FG@KaB_7k5+WCu$7r zFACPzeq~zKyhPRrdMX_r&+8r5OR7c0oUhcGspcs?8@~m)-Bn$G5N!852f&kzi&J81 z+pYojOF`4iAavWl*?nG%5i{oZM4NEt;0*1iT|k4VxJ1vm;4Y=!w|l^sc8AHa)qHm* zxIbeOKenL2RLu$^v@#eMHMha%ZlilyNbg7r%|4Pk)C#@c3siq&B+-RVhFXBCBy@~( zN*QM`Uh`c;w#>P4)JxnhX+dGNiF@XU3pK*_ZJxe>cWI>r74nW^<|f~oij(}M;hkxw zq_3GLIJiMauxTR-VbN9vZCCP9IRX1Z4F)S7n53mX`>dL4(7lqIXp=3!&j?ET7c^o- YR>TyoJ`g%8%fC2`;OOe`2uIHN7aZNr1^@s6 literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement-members.html new file mode 100644 index 000000000..dd030acaa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoGenerationalReplacement< MOEOT > Member List

This is the complete list of members for moeoGenerationalReplacement< MOEOT >, including all inherited members.

+ + + + + + +
moeoReplacement::functor_category()eoBF< A1, A2, R > [static]
eoGenerationalReplacement< MOEOT >::functor_category()eoBF< A1, A2, R > [static]
operator()(eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)moeoGenerationalReplacement< MOEOT > [inline]
moeoReplacement::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.html new file mode 100644 index 000000000..c67f42b83 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.html @@ -0,0 +1,113 @@ + + +ParadisEO-MOEO: moeoGenerationalReplacement< MOEOT > Class Template Reference + + + + +
+
+ +

moeoGenerationalReplacement< MOEOT > Class Template Reference

Generational replacement: only the new individuals are preserved. +More... +

+#include <moeoGenerationalReplacement.h> +

+

Inheritance diagram for moeoGenerationalReplacement< MOEOT >: +

+ +moeoReplacement< MOEOT > +eoGenerationalReplacement< MOEOT > +eoReplacement< MOEOT > +eoReplacement< EOT > +eoBF< A1, A2, R > +eoBF< A1, A2, R > +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

void operator() (eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)
 Swaps _parents and _offspring.
+

Detailed Description

+

template<class MOEOT>
+ class moeoGenerationalReplacement< MOEOT >

+ +Generational replacement: only the new individuals are preserved. +

+ +

+Definition at line 23 of file moeoGenerationalReplacement.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoGenerationalReplacement< MOEOT >::operator() (eoPop< MOEOT > &  _parents,
eoPop< MOEOT > &  _offspring 
) [inline]
+
+
+ +

+Swaps _parents and _offspring. +

+

Parameters:
+ + + +
_parents the parents population
_offspring the offspring population
+
+ +

+Reimplemented from eoGenerationalReplacement< MOEOT >. +

+Definition at line 32 of file moeoGenerationalReplacement.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.png new file mode 100644 index 0000000000000000000000000000000000000000..add0344621d3b0c12860a36460ddb334159c748b GIT binary patch literal 2064 zcmc(gSyYqP7RNsVxs*gS(2qeVlR)B!7<8!xnZy7lG%^J&gOMqgL6FHv08xUN0wRNe zp&}Tegn(KGr9~)#5J6BT3o>1iA&Lk@PsUAx*hd&luD&CDV6eAtbkmZ`hD?uymNf% zD_JT>CAoM2cCSZ+0YI_B$>FePeDQnv^%CWcn5y1+@O!Kt2{r}#2Ip17h5>(1kxShA#jxCUwwJwGF_?KFSrr@!?`L~gBB zG*_+iXlahaP_VZjQnWC4XRDju6^5>=-a?*%&3kiLYa%%mBOaSR7{4I2#I!%$x0u() zn6$?4FF>_MtPO;BK7uhXvUB04aH0Xy8^Oe>Ywm!Hx3#57j5bWEO^pBKCd%3I*QFm+ z)B%C204A$kn084SD^EyA0trg98{0`{0D%kWzlYJEA%TA)c@rUTpOk_l<34row48SXGqIOXwXM+|{Z zbkkKbW$*?LGH$Bk6^7@^O?lt%W`><6zREC)j&RU*ExqHAMJK8y*3Da`)MqSV6S{8M zGO(&?3dOt3?N43b=6>OLP^;5cEzk0&9)i(e@3_=o*w>%;c`^6AZtU&E;WKh*k7=;h zSaPVb`dGN9JV~8kMzh6JuUaIJeZBJa`lMccQ=Byv;~Ov%;&?b*Jv5K+qa-Fu zqSma+a_H;;=;R-7$G%*D!$5*!wX+y54Nre(_#j!l!&V<_fCbu(Uu8=E4crGHkde{f z60_J)=sqGGcwtCM8N6Ycbs01{Dmc%HmR8v}lvw8STSAwQP3ry#862ak4QbcFvpLb@ zMz-7VL}Nd8?U310Z_BvqQda98?HQ|2T@CAkmV@xtyR-}|Qf=%`#;JVcLZ1?sKrhav z8$~n64?j{|95AfeH?oHjN@ejgxdH;>J$en~uQ`jqgkv3^Xw7;xO~1IU`gZImu=vc+ zbt3C;i@@v~qIvCxIuZ6;FX+|B4mazpAI@NG@2*~^It{ONQl=fZq>(Dk8^;VM+C{OZ z@8&etwGw>Wnjbw^kH5(ut8+Vj&vm-TJDzL4fF7LCOkU_$IiG{fIU1|Lk%gR|z>@iw zB?dm>*SL*-ZxXWOzsal7&?<&jJqv|8FH^%iSI|scK`r>MrpnX+8vuDDe0U^H^#AZs zriNHfcV=ZigcST|~la|E9y{;6RlIQ0@o(BT0z1rT_`b?CM`3w`tlx9L}iu zs+8h9^AO~xnsn8!sXvIiO_gko;GQzks}NPfq7QYNA4|-`RlC3Q_h@ttoR4&xkB!pp zwPLABN~;F$gRxmbt3^*vARJ4khO7O@eRZ#aI0`!i8n1s*Q?V3-Xj9|jKh!$k_am}t z5VfXioKrh-G4`~^*#O&>#)>I2h220Yr8&>^dV3Fp!*MSIe;|~O8frm0=wNn@LQZA=?YGw!zomtxBS1Phm+vCuQ@lCKm@(k=fN zxzTRXK9~S17UtCRP~He031Gr%K{^{Sg$F{D8e`t$N-#nkwE zb0ayr2~=Fgyxps2)<5E*ve77M=O(Y3E$cI8uRd?~51N>epc&z1gFW4@F|%PKvldX# z=+ovBNlJ%E6T^ASWMRywXTk*RAVgRqcCyH~spUXaq)W=V>#;OS#T0s!GBogz(NLV3 z?@_$n-(_1fI-w~(JThbQ@?Ls6bq$34FX$ZqrH6FVoUND*ai@-!HUXUzE=qCzBZ|4&&%)5w}BC_6yhds zJ&x}a3`UxQ=Nv8=+w|`~5l5L0L!@Ri&T4!YiDt2*Y2;Do*F#qh(S+$LImnKbjgL{; z!pjzgA?0Tj7F7mc91Q9crax0v1g!|$3r3KXn}+2R%9~W_tp<$cKe_Vsp(H6rER|QR WY;%^_GX=8m8*p-Taj3=xT>K4f%9s!U literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHybridLS-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHybridLS-members.html new file mode 100644 index 000000000..1fcc328c2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHybridLS-members.html @@ -0,0 +1,48 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoHybridLS< MOEOT > Member List

This is the complete list of members for moeoHybridLS< MOEOT >, including all inherited members.

+ + + + + + + + + + + + +
archmoeoHybridLS< MOEOT > [private]
className(void) const eoUpdater [virtual]
functor_category()eoF< void > [static]
lastCall()eoUpdater [virtual]
moeoHybridLS(eoContinue< MOEOT > &_term, eoSelect< MOEOT > &_select, moeoLS< MOEOT, MOEOT > &_mols, moeoArchive< MOEOT > &_arch)moeoHybridLS< MOEOT > [inline]
molsmoeoHybridLS< MOEOT > [private]
operator()()moeoHybridLS< MOEOT > [inline, virtual]
result_type typedefeoF< void >
selectmoeoHybridLS< MOEOT > [private]
termmoeoHybridLS< MOEOT > [private]
~eoF()eoF< void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHybridLS.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHybridLS.html new file mode 100644 index 000000000..68e76aa34 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHybridLS.html @@ -0,0 +1,141 @@ + + +ParadisEO-MOEO: moeoHybridLS< MOEOT > Class Template Reference + + + + +
+
+ +

moeoHybridLS< MOEOT > Class Template Reference

This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. +More... +

+#include <moeoHybridLS.h> +

+

Inheritance diagram for moeoHybridLS< MOEOT >: +

+ +eoUpdater +eoF< void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoHybridLS (eoContinue< MOEOT > &_term, eoSelect< MOEOT > &_select, moeoLS< MOEOT, MOEOT > &_mols, moeoArchive< MOEOT > &_arch)
 Ctor.
+void operator() ()
 Applies the multi-objective local search to selected individuals contained in the archive if the stopping criteria is not verified.

Private Attributes

+eoContinue< MOEOT > & term
 stopping criteria
+eoSelect< MOEOT > & select
 selector
+moeoLS< MOEOT, MOEOT > & mols
 multi-objective local search
+moeoArchive< MOEOT > & arch
 archive
+

Detailed Description

+

template<class MOEOT>
+ class moeoHybridLS< MOEOT >

+ +This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. +

+ +

+Definition at line 28 of file moeoHybridLS.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoHybridLS< MOEOT >::moeoHybridLS (eoContinue< MOEOT > &  _term,
eoSelect< MOEOT > &  _select,
moeoLS< MOEOT, MOEOT > &  _mols,
moeoArchive< MOEOT > &  _arch 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + + +
_term stopping criteria
_select selector
_mols a multi-objective local search
_arch the archive
+
+ +

+Definition at line 39 of file moeoHybridLS.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHybridLS.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHybridLS.png new file mode 100644 index 0000000000000000000000000000000000000000..3887a1abb8ff99b476334456db032f4bd6f41aa4 GIT binary patch literal 750 zcmV3S@@(DWag|f>1k5D85#@{#?n!1rDAx5BwEG03c!F)HDPxCdj7G?e-(|cd^ zFl*rib83rOi_58xnHc;F-T)H-5lG{K)Bwcf2|VX8lR&{TF#$zGt9bTPy14G~F4MEG z2`@~D@eJDGDP}M${hTu8-pON}=EUXW^52-xh%#F=|Ck)cR6m>3~$GGL@-JWhzsd@6Ghh#TnQ9hLqW#Y55f!ZXGq&yKF>n>Ra#Sg42DN zX%f?Ag%4wn`_`m^ak4P2TU{@@v5zy?Db#;l7>Q!+>YC+lUV^8$&i#3V&{I{{di z8W#pvnLHYqG*~c0a8h?%hApDe$P8gD{gfpq%)}DSoN25eDJo{;-f70nPm`H;!Q`B{ zeddavMLeyLd8e6H%qZ_6D&_an&A*?Eyst|A?`xB3*VU((C;kSm g{J-=*%nr}uAG9TMpfwd&9RL6T07*qoM6N<$f@hd%>Hq)$ literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric-members.html new file mode 100644 index 000000000..93213e9a5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric-members.html @@ -0,0 +1,50 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoHypervolumeBinaryMetric< ObjectiveVector > Member List

This is the complete list of members for moeoHypervolumeBinaryMetric< ObjectiveVector >, including all inherited members.

+ + + + + + + + + + + + + + +
boundsmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [protected]
functor_category()eoBF< A1, A2, R > [static]
hypervolume(const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj, const bool _flag=false)moeoHypervolumeBinaryMetric< ObjectiveVector > [inline, private]
moeoHypervolumeBinaryMetric(double _rho=1.1)moeoHypervolumeBinaryMetric< ObjectiveVector > [inline]
moeoNormalizedSolutionVsSolutionBinaryMetric()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline]
operator()(const ObjectiveVector &_o1, const ObjectiveVector &_o2)moeoHypervolumeBinaryMetric< ObjectiveVector > [inline]
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
paretoComparatormoeoHypervolumeBinaryMetric< ObjectiveVector > [private]
rhomoeoHypervolumeBinaryMetric< ObjectiveVector > [private]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline, virtual]
tiny()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.html new file mode 100644 index 000000000..dcdfad374 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.html @@ -0,0 +1,225 @@ + + +ParadisEO-MOEO: moeoHypervolumeBinaryMetric< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoHypervolumeBinaryMetric< ObjectiveVector > Class Template Reference

Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., Künzli S. +More... +

+#include <moeoHypervolumeBinaryMetric.h> +

+

Inheritance diagram for moeoHypervolumeBinaryMetric< ObjectiveVector >: +

+ +moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoHypervolumeBinaryMetric (double _rho=1.1)
 Ctor.
double operator() (const ObjectiveVector &_o1, const ObjectiveVector &_o2)
 Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho.

Private Member Functions

double hypervolume (const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj, const bool _flag=false)
 Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho for the objective _obj.

Private Attributes

+double rho
 value used to compute the reference point from the worst values for each objective
+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector > 
paretoComparator
 Functor to compare two objective vectors according to Pareto dominance relation.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoHypervolumeBinaryMetric< ObjectiveVector >

+ +Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., Künzli S. +

+: Indicator-Based Selection in Multiobjective Search. In Parallel Problem Solving from Nature (PPSN VIII). Lecture Notes in Computer Science 3242, Springer, Birmingham, UK pp.832–842 (2004). This indicator is based on the hypervolume concept introduced in Zitzler, E., Thiele, L.: Multiobjective Optimization Using Evolutionary Algorithms - A Comparative Case Study. Parallel Problem Solving from Nature (PPSN-V), pp.292-301 (1998). +

+ +

+Definition at line 29 of file moeoHypervolumeBinaryMetric.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
moeoHypervolumeBinaryMetric< ObjectiveVector >::moeoHypervolumeBinaryMetric (double  _rho = 1.1  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_rho value used to compute the reference point from the worst values for each objective (default : 1.1)
+
+ +

+Definition at line 37 of file moeoHypervolumeBinaryMetric.h. +

+References moeoHypervolumeBinaryMetric< ObjectiveVector >::rho. +

+

+


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
double moeoHypervolumeBinaryMetric< ObjectiveVector >::operator() (const ObjectiveVector &  _o1,
const ObjectiveVector &  _o2 
) [inline]
+
+
+ +

+Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho. +

+

Warning:
don't forget to set the bounds for every objective before the call of this function
+
Parameters:
+ + + +
_o1 the first objective vector
_o2 the second objective vector
+
+ +

+Definition at line 63 of file moeoHypervolumeBinaryMetric.h. +

+References moeoHypervolumeBinaryMetric< ObjectiveVector >::hypervolume(), and moeoHypervolumeBinaryMetric< ObjectiveVector >::paretoComparator. +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double moeoHypervolumeBinaryMetric< ObjectiveVector >::hypervolume (const ObjectiveVector &  _o1,
const ObjectiveVector &  _o2,
const unsigned int  _obj,
const bool  _flag = false 
) [inline, private]
+
+
+ +

+Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho for the objective _obj. +

+

Parameters:
+ + + + + +
_o1 the first objective vector
_o2 the second objective vector
_obj the objective index
_flag used for iteration, if _flag=true _o2 is not talen into account (default : false)
+
+ +

+Definition at line 96 of file moeoHypervolumeBinaryMetric.h. +

+References moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::bounds, and moeoHypervolumeBinaryMetric< ObjectiveVector >::rho. +

+Referenced by moeoHypervolumeBinaryMetric< ObjectiveVector >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..df046df5268e2c1a970e23f5132745499af821fb GIT binary patch literal 2681 zcmc(hcT`hr62PN~_+$xIiVzT8#OF#t2oM5-f&!rg5D^VsR31f25*{tcQ;@4tB8w7~ z5+j5n5KyFtW;7@up%;-7Y9K@q2r7ZF!RMZ*d-k2P`_Jwl_uQHJX6Bx6ely>9Z`+_u zCARO|4g!HBkY=aOfIuQKAkZfDEh0jTtSu%|_>!@)JbQY5eO)N7uh)}EZg+*!*QdU| zKK#Y{xKQ1MJA<+VotW&q0s?K9M4mc%HYAOk?iiK{-*J?>cOcJdwN}&Y;?ZjDUX=QE6uC6K#wMxX$r90lnijUBq6mo zN79NutUP&D`U)~=puv{v6nkvU2w-8J#)1QsVikOY6RD&lkbEdSSi)9Azusym6&RH6TJ@E8fhH`hKw2mpTBKlLwrwXbt@M5w5S@S_B|jBsn9?i z*}|#a1)i&`b2FxG3SYH2&(+VXv=t>-W0(o&%a%piLf1LbZ+_1+tcx?+!wed}F8yzf zRi3mJ@w@Srr%gD+Sg8Wf=NSZWJJ}e|-l2$CwYaqTQh86vHmv=rdgf)6^?2nY!eL#V z>jUjw1HoDFyh^r#FVwN7c<*?&(&H+r&DV z#m6SwZTs6*`AM(B5@V!RPXC)`sRs4me%gHqms`dAITc{$*9FMZHwnpW4oykyl#Y3(K$>RHY`G`bLP2(@?S zRKWIzckGmytyr?qeu1uQoBsr}$}QE3l(zhVv=I8IfDoP-XCF3}dFa;|(oRO>S8QWJ zB744JhPmpv6_Yk-;!QZc;r~5TLj(W%?s#7?r)CuVU6=j2*!Nq09i~4eKeb%Er|v?8 z*ao_n0QjSj;t zEWOVQn951t^B(~J};|Fnsp99HbV8_?wRiK5(vDQN*b)-=}ExuMx@%5^cB+#Boq)ZP$TU7LH#j$;|%(jN&XWDcM+=K@17o1zai*+ z_51HL;^)+}`b)3$9q{yV&Bc)S;fNu%BMY#X zfg01FPv8tyZz)*=JFG8oO#w%zdCu(nli>ulBpjdZkxt%EzmuIwt%zrZ)TAKNF%dGke5J{fBQ3?N537Y^Po4`w^z zD!j%XD-}#!1j}a>VV)wo7N-*yMmbJLwoTMxQ!MZhGg^%?DV38)&+&21$Ji#QJAi|n z<&Q-SNRoceqIaN9+i-2x4IG7E5Qh*yPyy^dX0-WvuDY`%qzGu*4Rlw)#&39QbRiEi z$JO;W{9-=~0wBbuT)PDBnR3fU!dOS&ap!l*V;yFs;Z7QQVpOgCNE?d}x1AVGOP97t zX=4q*$EIpTuk8AP9`m@o%NnbJ;WS8-VtGbybpCm{O^S$UpmgUv*;pjNGU`8N{rlbY z@B2b~WJWDidva!yySc78{=1CKO!_?BbO?SpzcKY(X@~4t z2`@jFIV?py{WGm)P;acOx`JRlr=65Gg)ARLPah~q8aD10+UQjcXPTu|u0cDqM0%<# zNXA4GQx1Rz@2(G%{)B}y#lW4-7gDe)Mo)qRje*LV!Av^-0ao)&O>DSs0fT~7AWoV~ zU(m98FE=7I*~t49@c!%>irOserJ)Uz~cXalg6OO*5uhdF=TVELX$4 zQHD4fyfQ2k-ULesoQ5F@Nq#CvvL|we5(iSP9@8hNj>&{7eFYbVTfVxK-4#eemR_Q)N6gr@q+V`j^ja{{{rC^L#R z8y<{sYG2NmZ}LBp?W{*U*Sgi|LyB>K7AA!nIzcIY7b%k<4-PGNhpQ%n9q!O)sY`cY z7}=!zqc%D%a+UTAS>byCD5MtNwf49cNl-0HuWDqlkhgIa&z9+AxO{IbZbThgSlyWd zd6Jp47LY67v~@J#iMG2Te#Eng($BglN=c+FJ)7}fW*5uvS0iZS=D55782~@d<=K=? z@rox!f$G3KZ)6l|Ex#xQI{j;B*m3!w6Zc@8K!(PwWn=J1w@|05xI0UKg&MrTO~RoO z$`Hu4YL1T;ZuIP&pl~PT+S^W@6=wOm6k_!!L;uq0SBDUR+2uOAf1na}J5~~Khzuz{ dwkEd}Nw|~Hew{`h5&kEFkf%|ns77u#{sBT{Wr_d* literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIBEA-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIBEA-members.html new file mode 100644 index 000000000..db86b40ca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIBEA-members.html @@ -0,0 +1,57 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoIBEA< MOEOT > Member List

This is the complete list of members for moeoIBEA< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
breedmoeoIBEA< MOEOT > [protected]
continuatormoeoIBEA< MOEOT > [protected]
defaultGenContinuatormoeoIBEA< MOEOT > [protected]
defaultSGAGenOpmoeoIBEA< MOEOT > [protected]
dummyDiversityAssignmentmoeoIBEA< MOEOT > [protected]
fitnessAssignmentmoeoIBEA< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
genBreedmoeoIBEA< MOEOT > [protected]
moeoIBEA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoIBEA< MOEOT > [inline]
moeoIBEA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoIBEA< MOEOT > [inline]
moeoIBEA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoIBEA< MOEOT > [inline]
moeoIBEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoIBEA< MOEOT > [inline]
moeoIBEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoIBEA< MOEOT > [inline]
ObjectiveVector typedefmoeoIBEA< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoIBEA< MOEOT > [inline, virtual]
moeoEA::operator()(A1)=0eoUF< A1, R > [pure virtual]
popEvalmoeoIBEA< MOEOT > [protected]
replacemoeoIBEA< MOEOT > [protected]
selectmoeoIBEA< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIBEA.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIBEA.html new file mode 100644 index 000000000..9ad5f241b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIBEA.html @@ -0,0 +1,498 @@ + + +ParadisEO-MOEO: moeoIBEA< MOEOT > Class Template Reference + + + + +
+
+ +

moeoIBEA< MOEOT > Class Template Reference

IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. +More... +

+#include <moeoIBEA.h> +

+

Inheritance diagram for moeoIBEA< MOEOT >: +

+ +moeoEA< MOEOT > +moeoAlgo +eoAlgo< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type of objective vector.

Public Member Functions

 moeoIBEA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Simple ctor with a eoGenOp.
 moeoIBEA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Simple ctor with a eoTransform.
 moeoIBEA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Ctor with a crossover, a mutation and their corresponding rates.
 moeoIBEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Ctor with a continuator (instead of _maxGen) and a eoGenOp.
 moeoIBEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Ctor with a continuator (instead of _maxGen) and a eoTransform.
virtual void operator() (eoPop< MOEOT > &_pop)
 Apply a few generation of evolution to the population _pop until the stopping criteria is verified.

Protected Attributes

+eoGenContinue< MOEOT > defaultGenContinuator
 a continuator based on the number of generations (used as default)
+eoContinue< MOEOT > & continuator
 stopping criteria
+eoPopLoopEval< MOEOT > popEval
 evaluation function used to evaluate the whole population
+moeoDetTournamentSelect< MOEOT > select
 binary tournament selection
+moeoIndicatorBasedFitnessAssignment<
+ MOEOT > 
fitnessAssignment
 fitness assignment used in IBEA
+moeoDummyDiversityAssignment<
+ MOEOT > 
dummyDiversityAssignment
 dummy diversity assignment
+moeoEnvironmentalReplacement<
+ MOEOT > 
replace
 elitist replacement
+eoSGAGenOp< MOEOT > defaultSGAGenOp
 an object for genetic operators (used as default)
+eoGeneralBreeder< MOEOT > genBreed
 general breeder
+eoBreed< MOEOT > & breed
 breeder
+

Detailed Description

+

template<class MOEOT>
+ class moeoIBEA< MOEOT >

+ +IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. +

+Zitzler, S. Künzli, "Indicator-Based Selection in Multiobjective Search", Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This class builds the IBEA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +

+ +

+Definition at line 38 of file moeoIBEA.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoIBEA< MOEOT >::moeoIBEA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op,
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Simple ctor with a eoGenOp. +

+

Parameters:
+ + + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
_metric metric
_kappa scaling factor kappa
+
+ +

+Definition at line 54 of file moeoIBEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoIBEA< MOEOT >::moeoIBEA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op,
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Simple ctor with a eoTransform. +

+

Parameters:
+ + + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
_metric metric
_kappa scaling factor kappa
+
+ +

+Definition at line 68 of file moeoIBEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoIBEA< MOEOT >::moeoIBEA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoQuadOp< MOEOT > &  _crossover,
double  _pCross,
eoMonOp< MOEOT > &  _mutation,
double  _pMut,
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Ctor with a crossover, a mutation and their corresponding rates. +

+

Parameters:
+ + + + + + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_crossover crossover
_pCross crossover probability
_mutation mutation
_pMut mutation probability
_metric metric
_kappa scaling factor kappa
+
+ +

+Definition at line 85 of file moeoIBEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoIBEA< MOEOT >::moeoIBEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op,
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoGenOp. +

+

Parameters:
+ + + + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
_metric metric
_kappa scaling factor kappa
+
+ +

+Definition at line 100 of file moeoIBEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoIBEA< MOEOT >::moeoIBEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op,
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoTransform. +

+

Parameters:
+ + + + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
_metric metric
_kappa scaling factor kappa
+
+ +

+Definition at line 114 of file moeoIBEA.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoIBEA< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 124 of file moeoIBEA.h. +

+References moeoIBEA< MOEOT >::breed, moeoIBEA< MOEOT >::continuator, moeoIBEA< MOEOT >::dummyDiversityAssignment, moeoIBEA< MOEOT >::fitnessAssignment, moeoIBEA< MOEOT >::popEval, and moeoIBEA< MOEOT >::replace. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIBEA.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIBEA.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba6b5a1b006c3b42e714d0e78b5724e54448700 GIT binary patch literal 1377 zcmeAS@N?(olHy`uVBq!ia0y~yU{nIKf3PqE$z4w0Du9$kfKQ0)|NsAi%>Vxn%%7hy z0muU50|yRNANv0U$Ym@E@(X5gcy=R=fq~__r;B4q#hkZub0^I<;Bh!yl2)I5-{A|> z+;2|5rv8>+_=7n~z{M}jEpPGm&AT}{KdqjynYruoZQnk7B@V8;b^c6$Oq7j(srSq& zK584Wy~=d)+Y=k|Sbtr)=4S9b?OaR$<7x)^Z5Hxo)$%=$gdY{_8F5K{-qAg=eT%Ba zt{IC<#LI4Ga>uFbd~{=>DD z<>#{dlCjb5M`M`f+2?I{n3cV;@4&&W#czGjoag}}mKX2etYF$xVIy}%?8fKP>t;7D z&%gM$?-rN!FXLD1H=SLI!8QiQt*jg?bR8UW8JV)U1p=ZQ8g4PMkSO)x*27=B z7hSy{YHw_`ILuApSFLOLegEvke|J2u?+q*zm($(%cwYVKbA>q{lv$b$@v*Y-MWSva^B3mCA2kzt|-sd-Y=D#nRF# z&u`Vt>C)UP_0u!)oBh)_e*?1I((~Jc&P#4uiU}em7N##`T)*DsD zFWYW!{j1%}aL@45lI72n&R^6&efV$VmrlV0Po}#bei&|4l<8}iJ*C{o&ES8`W`W)$ zc5^eA<;`wSW=<^s5D_tVzrwoH_C8myX}q7Y@6)U|SNi9^{j>1m;^^u$lb_1U6~{I1 zcm5W2E8O^3*?qN8`jlDUUM4fI>iu-8uEY27mSnjL%s%Swxq(T=TTI?QTq>ih{rj(- z`*OFdmQl06eW;R6UF<7sYsZi{>(tJ$aQFV5(|Y3OW}nP3zP`!-XH|&hbw7*TF8kWE zb>E!IL|#o*`)lo{emwF>#{Zw3r6AU^7m*UbZ=Y{BRJQ9`F!6$B?}tt?=4&=9`4$E^ zB|dTD+;*hZ>1(>m4Iy!^tB~No-YN(TF*k!L0TKs+YFL~(kp;>vTY6Ug*j2E`>P*M+ zo(cqEcke~}iLI;RC%Fk-|EvZ~TlI%HPN|+X-TUX8+sEU#9zLr6`N?f}IirlE?c1m3 z2DkQcD=a@0{{54*#M@sde=h#Dy80(?@3p1BS8k8LeL8>U;-|3;E32}rf4=R%l@tOL zNeMZ#HAJuf|AOY%PwO9KZv!Wzroi%achQWAs|%8=6z*s&k0@UJ#nyg@-K%HT z$pv24Ez(cdU2;p7u>W`Z@%rG!im#W=jgs1_Xu-Q(!&t;kQCrd6(W+8-@sAZXeQmd| zWvpCWG3U|*{>48VjodwVObnD+eJ1e61UBjREq@=Z;7vX)bJxsmV^wjVU+=7E8S(C! zc25;Q8{Rp;wXAf@% + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoIndicatorBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoIndicatorBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.html new file mode 100644 index 000000000..7390738bf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.html @@ -0,0 +1,63 @@ + + +ParadisEO-MOEO: moeoIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference

moeoIndicatorBasedFitnessAssignment is a moeoFitnessAssignment for Indicator-based strategies. +More... +

+#include <moeoIndicatorBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoIndicatorBasedFitnessAssignment< MOEOT >: +

+ +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > +moeoUnaryIndicatorBasedFitnessAssignment< MOEOT > +moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoIndicatorBasedFitnessAssignment< MOEOT >

+ +moeoIndicatorBasedFitnessAssignment is a moeoFitnessAssignment for Indicator-based strategies. +

+ +

+Definition at line 22 of file moeoIndicatorBasedFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..174829d60e7d87087f428f8b78c78e7537f71fca GIT binary patch literal 2885 zcmcImc~Fzr7RS0oTo5f<9uQLst*rBa18nl|=!;CJ>NdLM;Up5vWMQ zDt#|tq{tTpBP4;KEFz*H0{I9r1Q1BV2c&`lg8`aq+p+J>o9Von_s5-k@0l~_+_}H= z`<-+7DB5M?I-PZDYHAx@4;{d$seQy#Q(N)%s+B6s$qu7=)uw&a-Sgn`^0Ml5sN_|Q`_Faka(nV4lo3c0k!==%M5e&2CTWn+PoI~@~23>*sIAP z?vEE{E~zzXWO~n$l>qRa>GvQ`xhRvY=j!a*8-AWG{L~8DlzT~+vb=KNeg+vCb4{O! zJ?XUt*5OIQ*7!vOEVQaJs)q&YlgdMzes& zljnI%dK_wheYR6+TC98gGb>PbeNhUMZlv6_?1KB*ol~D+;ia;?C~?6oz~WLE!Bj>M z6oEWd`v%?nXmyY- z>@b&`{pIg6;04L1PbY`Ygvt<(SCUmYRfXwkuu~rt;8eBrf5l-k#`xfZcbTXuA~;xF zIYO#cSVCksXEz(>H$1!`y9cN9On~PWpT|;f^;n zYMwUBDIL?~Kej22Gd@S_7Wvj^fp7xS7BZu-iW)fy$if6t!+8{zfj>0G9+kW>8iO6u zUU;dza{8l@Tkb}O_@+rpL7sj)!F|j-rm|gEm2Lq?KB_gnCRR8iB_>048uQy+geyKQ z-b@@8wYcI3q+aFZ;?QZ_w<=EXGMe{6UmrKuKwwu6CmQ_0;t%Te590g-6%s7IY=1c{VaxitY~5Z#>`qfcnmNS&QNTRS zr|b(!(h+UxEOjZft-{+!DZMXTgLjpCCt8-#d&13bDg6A89T9iZCn%DB9>ndM@~EN$ zXU2%zOK(8B)sEfFK!R+56?*Tm2JV!>ygQ=e&UL5PnWcId4h6T%p8plSCq=KCvUnNn zxqUX^NMAkLrgS1uQmp!OZAjjY+S~u2`|;o=@-~FZa^k7AUhKwXi7J>&}b zU39kd`xes1(&%h`W~q3s#a<&F(9;pV7~#;U-3v%UAyhIn+Qv`KxoSDC5}3;sNZ|VT z1&|zIO5Y&t?mM%X`Ll6<)}?RfK7Cc|2i659|4|qUY(Tv`6t$xMm{O0w6XZ^37 zy}f1tW;;@4&gdH2dh@d$SI6>t+ubC@h@evvMm!GrJ^GeHo3xG?T@r|3#i7RalS>LK z1 zXm$Snbp3li1~hA*fVN(@=1q!0lVSSnk;5A0SbERrxekUqU_DGo5FU%z{yK`8X>(Qg z#cuy&rX-YGS{Q^D$T=Yo9ul}1YVa?DS@yLC3r6ruKrk6#YGX*rzdLz6K=3Ry?k({+ z>gS%a1X8ygIScT>oTr0?c6|qN_Hh*Z37nUVCF=?jkZ=NtFYimhF7J%43mk(-h`9{i zvUYqsMAC3o5c6?nSGc*1+L%K!b{Ett2ZEr(HDh}UA)A&N`ONykN+%OBJTX;28Y%91 zYQgLPT7ILO8zT<6r5=eLY^5J8TAr#ClA@6KkAvFS)|lAzjtB2WxG`v6v=r19=~(j%Fqc#{x{XHO zcKU#drZ9W>r%3I_RArhlct5oF&ETaE#+<*W*6&BQ_j!Jsl6>kXbA+Z~m(^zmOa7O> z`RAXrQzjFx(gJ&$Jf=F8qk=Ujn4By;Hb|M0p6cSw(H)Spn~J?Fn#i>UT z@u(3tW;^A=Vp!kw!+7EK@!4=BW=3x7^;-%{f1}~rTXFM9P(&LL#@CUvRQ{5Ms1F{A k!!}OltY)YhP@)307T&x}`#fWVYUWjQJ%~O4?mzMUuM9}=^#A|> literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoLS-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoLS-members.html new file mode 100644 index 000000000..7ebd61395 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoLS-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoLS< MOEOT, Type > Member List

This is the complete list of members for moeoLS< MOEOT, Type >, including all inherited members.

+ + + + +
functor_category()eoBF< Type, moeoArchive< MOEOT > &, void > [static]
operator()(Type, moeoArchive< MOEOT > &)=0eoBF< Type, moeoArchive< MOEOT > &, void > [pure virtual]
~eoBF()eoBF< Type, moeoArchive< MOEOT > &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoLS.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoLS.html new file mode 100644 index 000000000..89c538843 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoLS.html @@ -0,0 +1,63 @@ + + +ParadisEO-MOEO: moeoLS< MOEOT, Type > Class Template Reference + + + + +
+
+ +

moeoLS< MOEOT, Type > Class Template Reference

Abstract class for local searches applied to multi-objective optimization. +More... +

+#include <moeoLS.h> +

+

Inheritance diagram for moeoLS< MOEOT, Type >: +

+ +moeoAlgo +eoBF< Type, moeoArchive< MOEOT > &, void > +eoFunctorBase +moeoCombinedLS< MOEOT, Type > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT, class Type>
+ class moeoLS< MOEOT, Type >

+ +Abstract class for local searches applied to multi-objective optimization. +

+Starting from a Type (i.e.: an individual, a pop, an archive...), it produces a set of new non-dominated solutions. +

+ +

+Definition at line 25 of file moeoLS.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoLS.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoLS.png new file mode 100644 index 0000000000000000000000000000000000000000..fffbbbd90813b3e123f82a5009d9e06325d567f3 GIT binary patch literal 1810 zcmcgtdsxy}7zRyTBz7}Q(iAmOw7jKLV_qViikC8jerRd&Ls3@Nm}o7h%feh)cmcJ> zm=$ITWk0;MMP}1_5ERo2Z!0geW+|HUvNVmcc6qkd-}~cy=l$O2InVQ*@4Vl8a<@i& zj6!0NFc=IK61*h}2GiTA!wrk{brC-Z8`f>Bw}wRrYPDJ&)M^`q!g#I@y!~CChCBR^aijXY<(dl1n1ltNK@yj?g!IeX3_I(v1;&DuBXXAs>%*B*p zM0@)wfeXAv+gh4#;vsNeU!s83#ax)5t@|i>llM^DLvvw`z+4YNT9M$OLza_4o80Xl z$SkVu!Ku7=?NC#ZBFR(+1!YwmrDbDC-~yVqkifhpt|E3BLb5U-q==qdm!4q< zqOWz(yxHM^9Y~qF2Z)_~~d zOid8_g%g&EYDVBD(SvH2hXDA2WPqfrhAVn!z1Hw zaj_bh&)`p$>_rxE09jujt64S&hc@2mflnQ)wD6Dozkp-fm7Ywi+Qv9bN?~TpOr*xo zcivce#o}(7FLs3R=N*nh5aTd=V^#y1KW<;bNw%6~33r`a$f-B&zW=)ThIWtFbjJd> zekqGvTg0Oa*ZN?qcytjfnYsWE4LH*GXpyDoj6+@Thv}C{2e3fBblBvH<(RpGh-*31 zme-mOicVi%1C;rVcVKypP}f(-i#@b+HhEJgBj5%AHf~-&y!X26d2!bgPnr3EHxM+Z z4($Zr>MR${eU9V zP0HxWpFWVIk(1G#fM@-(n;95I5qM!m)5@mdt|@EBQ_L!mj4x&-2- zlGIJjt0u}Gq#^@8yKO9*ey~Qr3l5o7_oUoxE<;+45G>>b0`eOtv9~h<?Ivj zo+Wup^~Q?;+Otv5P{BICk0k?M^?L-o8jjt3XlaFFT#Al6KP{m)CaN|K3kNlzXwCKI zP=q_-rAdn8$a0KP2*U+J5LaMMiSKZaA#9i~wqjb`KBECA{rQOKmwy}GyKnHW-@K>yPXfr-yR+UnvdeGljI-lKG&TGm?)fuV zO6T-WhgB15*m%A})57-yhJL@Y?DLdL<@uJS`$9*Pzhd|SwJj#!oQ|<;t1owACQ;jH zDy7T%TSDU37o8MejU9Dbcsi?uWap*wD=Wgl;R+ zl{x*GTMEcJ$xm8dU1Hg~7+^Uhsz0JwD3MFf7T8{v?giMF&0Is%s6?hSHIXjC_IUyP zz;>%T&g7$#zQpz!U*^O*s&glXZ>MNZ=`udV0-gu8Y*r_!EqSN^)xY~!#e3u8c^4|g aTKLbrIU02A(v0o{gM|b}Y`MBQ{^)P2Tt7De literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoManhattanDistance-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoManhattanDistance-members.html new file mode 100644 index 000000000..1824953e4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoManhattanDistance-members.html @@ -0,0 +1,48 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoManhattanDistance< MOEOT > Member List

This is the complete list of members for moeoManhattanDistance< MOEOT >, including all inherited members.

+ + + + + + + + + + + + +
boundsmoeoNormalizedDistance< MOEOT > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoNormalizedDistance()moeoNormalizedDistance< MOEOT > [inline]
ObjectiveVector typedefmoeoManhattanDistance< MOEOT >
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoManhattanDistance< MOEOT > [inline]
moeoNormalizedDistance< MOEOT >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)moeoNormalizedDistance< MOEOT > [inline, virtual]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedDistance< MOEOT > [inline, virtual]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedDistance< MOEOT > [inline, virtual]
tiny()moeoNormalizedDistance< MOEOT > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoManhattanDistance.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoManhattanDistance.html new file mode 100644 index 000000000..31bd0745a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoManhattanDistance.html @@ -0,0 +1,116 @@ + + +ParadisEO-MOEO: moeoManhattanDistance< MOEOT > Class Template Reference + + + + +
+
+ +

moeoManhattanDistance< MOEOT > Class Template Reference

A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. +More... +

+#include <moeoManhattanDistance.h> +

+

Inheritance diagram for moeoManhattanDistance< MOEOT >: +

+ +moeoNormalizedDistance< MOEOT > +moeoDistance< MOEOT, double > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

const double operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns the Manhattan distance between _moeo1 and _moeo2 in the objective space.
+

Detailed Description

+

template<class MOEOT>
+ class moeoManhattanDistance< MOEOT >

+ +A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. +

+between 0 and 1). A distance value then lies between 0 and nObjectives. +

+ +

+Definition at line 24 of file moeoManhattanDistance.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const double moeoManhattanDistance< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns the Manhattan distance between _moeo1 and _moeo2 in the objective space. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 37 of file moeoManhattanDistance.h. +

+References moeoNormalizedDistance< MOEOT >::bounds. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoManhattanDistance.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoManhattanDistance.png new file mode 100644 index 0000000000000000000000000000000000000000..55fba644616505abbe5afd3e0010bae3defea76a GIT binary patch literal 1294 zcmeAS@N?(olHy`uVBq!ia0vp^4}kaw3p0>pZ~LwSq$C1-LR|m<{|{vT|9@cq{DcWW z78oBmaG?6o|0h5$V@Z%-FoVOh8)*y-EK59H978JRyq)7cYq14SL!xo^66q7g&F{Fs zu6kGBa5&@8xWVTc)?aI>^a&8hA5omM~=A$+&$d+YHU$8`xZgJndK#cvGjJd+|$FVZ*dz zVhXRM-d!q@Es(#QeS<00YxBA*5?8GqrYx@KdGhsW@UhQtO;zq5Vg7K*v?R>y#N&5D zLfTJFRTg-!{c=j^00UbA!<@RAKXyO8p8x%iz=Qbsa`w8~zq>3y{0ox;${I8<@+2@Y zOB`T`D55qs{18<_$#OEIfN#?q#zS{Kq&IK#K>I+-OuW1qV+FaiF=B+H_ zWaeeB8;z{7uYpx4QD%U!}Hst`@&al|;?GDdZ z$%~xmpRrtMlf&~Ydv29S&SeX^9=&1nTYW*KTS_ibq58;G(KnxL9OO#Q|8*=jY;#~) z#sAdXtl6gFeXvf4>EjO^b__vHlk^k)zgW9hu&T*0PVV!XHtB#3|C2i%Y&ZIv*RI~r zJ}sctM^immLcpQIvR~Eq$_Cb1x(A(kCo`L6b-$L|&w1oY<@se-CTZ;1uqM%0&2#0} zOPksXl6dD%JyofZDeBT0r5!rQo}XKI%Uf>ky-Q-I1{Updar0!zX9C8a#b2i%!3~1j zf7CqqyVe9AW1z^}BVzHl?aROKKN#mQEV;-3a+2VYm22v5ItGdx+TYTz-{ilw{K7B2 zzpLlpxe&7VY_h^K6-i;S49EME8jsItwQLZ)S<3%PN53!b<7eglI$FDHx6Wrz($ZJW znqMIPKrwCM{hQfq*Z(kFZr$a6d(T5vi-qfQ>!!?iX_Vs-t@yI^y17_n_*|vW@4IDA z2ddZ}5aVFzZM(pzo94(X5W@L=pT@kPwU=Ue95$F9+t}t~lQDzMVQ$c;_uX0(rLV7F zl5E5BO={Y|3(SUBO-%x&MK+f3{QMGD6>-=(#W#*gHTcxAsI?*IoG0Co{&c2F+qcAq z-&%WaBoi>H@-avS$nyTEG<_k?%6(idNQ zzl$MZ@~wvpv+m!O+WhzPu~X9ijl0*Fylj{)dq(0!?e&=5oYmP;Tm@(2v+d;mUGn>V ze&5!O751mjviQV*){8JLFFSD7?OsnML*4}QPZoc+o>I*Dy<(?%ceg{sr{LA%b46d@ zWYqNqI z=d@?XZI0Eudd`dW`T4_*Q~h*6*_Zvm&FP*08H^kmZf~#MxEfe^F?hQAxvX + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoMetric Member List

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

+ +
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoMetric.html new file mode 100644 index 000000000..8b940b1c0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoMetric.html @@ -0,0 +1,63 @@ + + +ParadisEO-MOEO: moeoMetric Class Reference + + + + +
+
+ +

moeoMetric Class Reference

Base class for performance metrics (also known as quality indicators). +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoMetric: +

+ +eoFunctorBase +moeoBinaryMetric< A1, A2, R > +moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, double > +moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, R > +moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, double > +moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R > +moeoUnaryMetric< A, R > +moeoUnaryMetric< const ObjectiveVector &, R > +moeoUnaryMetric< const std::vector< ObjectiveVector > &, R > + +List of all members. + +
+

Detailed Description

+Base class for performance metrics (also known as quality indicators). +

+ +

+Definition at line 22 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..62d847a9edefa9dd1897db98090302e612399a0b GIT binary patch literal 6647 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 cb9Lj6U13dnyaw9vzcf60I)GGQl>h($ literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGA-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGA-members.html new file mode 100644 index 000000000..3b66bf3ad --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGA-members.html @@ -0,0 +1,56 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoNSGA< MOEOT > Member List

This is the complete list of members for moeoNSGA< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
breedmoeoNSGA< MOEOT > [protected]
continuatormoeoNSGA< MOEOT > [protected]
defaultGenContinuatormoeoNSGA< MOEOT > [protected]
defaultSGAGenOpmoeoNSGA< MOEOT > [protected]
diversityAssignmentmoeoNSGA< MOEOT > [protected]
fitnessAssignmentmoeoNSGA< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
genBreedmoeoNSGA< MOEOT > [protected]
moeoNSGA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, double _nicheSize=0.5)moeoNSGA< MOEOT > [inline]
moeoNSGA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, double _nicheSize=0.5)moeoNSGA< MOEOT > [inline]
moeoNSGA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut, double _nicheSize=0.5)moeoNSGA< MOEOT > [inline]
moeoNSGA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, double _nicheSize=0.5)moeoNSGA< MOEOT > [inline]
moeoNSGA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, double _nicheSize=0.5)moeoNSGA< MOEOT > [inline]
operator()(eoPop< MOEOT > &_pop)moeoNSGA< MOEOT > [inline, virtual]
moeoEA::operator()(A1)=0eoUF< A1, R > [pure virtual]
popEvalmoeoNSGA< MOEOT > [protected]
replacemoeoNSGA< MOEOT > [protected]
selectmoeoNSGA< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGA.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGA.html new file mode 100644 index 000000000..b66d0cbea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGA.html @@ -0,0 +1,457 @@ + + +ParadisEO-MOEO: moeoNSGA< MOEOT > Class Template Reference + + + + +
+
+ +

moeoNSGA< MOEOT > Class Template Reference

NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. +More... +

+#include <moeoNSGA.h> +

+

Inheritance diagram for moeoNSGA< MOEOT >: +

+ +moeoEA< MOEOT > +moeoAlgo +eoAlgo< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoNSGA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, double _nicheSize=0.5)
 Simple ctor with a eoGenOp.
 moeoNSGA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, double _nicheSize=0.5)
 Simple ctor with a eoTransform.
 moeoNSGA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut, double _nicheSize=0.5)
 Ctor with a crossover, a mutation and their corresponding rates.
 moeoNSGA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, double _nicheSize=0.5)
 Ctor with a continuator (instead of _maxGen) and a eoGenOp.
 moeoNSGA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, double _nicheSize=0.5)
 Ctor with a continuator (instead of _maxGen) and a eoTransform.
virtual void operator() (eoPop< MOEOT > &_pop)
 Apply a few generation of evolution to the population _pop until the stopping criteria is verified.

Protected Attributes

+eoGenContinue< MOEOT > defaultGenContinuator
 a continuator based on the number of generations (used as default)
+eoContinue< MOEOT > & continuator
 stopping criteria
+eoPopLoopEval< MOEOT > popEval
 evaluation function used to evaluate the whole population
+moeoDetTournamentSelect< MOEOT > select
 binary tournament selection
+moeoFastNonDominatedSortingFitnessAssignment<
+ MOEOT > 
fitnessAssignment
 fitness assignment used in NSGA-II
+moeoFrontByFrontSharingDiversityAssignment<
+ MOEOT > 
diversityAssignment
 diversity assignment used in NSGA-II
+moeoElitistReplacement< MOEOT > replace
 elitist replacement
+eoSGAGenOp< MOEOT > defaultSGAGenOp
 an object for genetic operators (used as default)
+eoGeneralBreeder< MOEOT > genBreed
 general breeder
+eoBreed< MOEOT > & breed
 breeder
+

Detailed Description

+

template<class MOEOT>
+ class moeoNSGA< MOEOT >

+ +NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. +

+Srinivas, K. Deb, "Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms". Evolutionary Computation, Vol. 2(3), No 2, pp. 221-248 (1994). This class builds the NSGA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +

+ +

+Definition at line 37 of file moeoNSGA.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGA< MOEOT >::moeoNSGA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op,
double  _nicheSize = 0.5 
) [inline]
+
+
+ +

+Simple ctor with a eoGenOp. +

+

Parameters:
+ + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
_nicheSize niche size
+
+ +

+Definition at line 48 of file moeoNSGA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGA< MOEOT >::moeoNSGA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op,
double  _nicheSize = 0.5 
) [inline]
+
+
+ +

+Simple ctor with a eoTransform. +

+

Parameters:
+ + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
_nicheSize niche size
+
+ +

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

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGA< MOEOT >::moeoNSGA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoQuadOp< MOEOT > &  _crossover,
double  _pCross,
eoMonOp< MOEOT > &  _mutation,
double  _pMut,
double  _nicheSize = 0.5 
) [inline]
+
+
+ +

+Ctor with a crossover, a mutation and their corresponding rates. +

+

Parameters:
+ + + + + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_crossover crossover
_pCross crossover probability
_mutation mutation
_pMut mutation probability
_nicheSize niche size
+
+ +

+Definition at line 77 of file moeoNSGA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGA< MOEOT >::moeoNSGA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op,
double  _nicheSize = 0.5 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoGenOp. +

+

Parameters:
+ + + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
_nicheSize niche size
+
+ +

+Definition at line 91 of file moeoNSGA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGA< MOEOT >::moeoNSGA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op,
double  _nicheSize = 0.5 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoTransform. +

+

Parameters:
+ + + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
_nicheSize niche size
+
+ +

+Definition at line 104 of file moeoNSGA.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoNSGA< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 114 of file moeoNSGA.h. +

+References moeoNSGA< MOEOT >::breed, moeoNSGA< MOEOT >::continuator, moeoNSGA< MOEOT >::diversityAssignment, moeoNSGA< MOEOT >::fitnessAssignment, moeoNSGA< MOEOT >::popEval, and moeoNSGA< MOEOT >::replace. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGA.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGA.png new file mode 100644 index 0000000000000000000000000000000000000000..dd9cd8548627840998c1e6d0e560004238f68030 GIT binary patch literal 1449 zcmb_cX;4!K5KgpU4T6-zfE2s{x#eMvw8|0g5QqpNMzI_Z6(Nv#ArMfh6i5O=rxXd5 zh*rWGNS{Oqv;i9OqF~}6AVwlkC?Hg$B8PZD8vCc6{&r?}zi)SEe|)n$%M2p~>Z3NI z5D0`mF32w&fk3)y`O;^rwXw{+xj^b5(5V6Qf!i z7tC?;Q+`Z5KPIICt!MFl$`C8#D(_vSyiFvl|H%*%O%ouB^)a6T(jB{F5ZjsZbP>c4 zCrYou<2UA^)BCtLL#0y`sCVUgtFbUS-k@SAhZAIhr}LU_tQ=(*h~0!hLV1uN%iJ^q z(3(9Iy^>1(zfYw-S;(x9 zfQcai^1PF?Dd~?DQAJ%Dy{)ZeH)4|Sm9D=y3REISl4+vaYHQuhX5QrJ<@7e~VR4HR zd?D9WR_bsdIliIaqWQN1&ZF40GG}mUB6iT}r6kT4*(kh&8T8y@-7j+k6)LmE;QUr} zl$m-+UP+&{IkU+5#f(d6uulWt4@eJR2+zIia~Ki5k9an9#H2oQD4zxF2V7wA1>J;Z3*X-(gNW!n;G|Q3 zc~!gJhNc6>5r>)Fw6Ef>KWgk6!@RG;0UBV*9b@6OXtlkXY}I|x!vLHw!pg5Icg5Sx zY1=s!y?3zcrJVk?Cd{L0g}&pMc6BiaKeE#j*qtCf)o*UX9PwW zb>aK?10AWkyc#pK>7PIU+jF=QuFiXsa1?4w^ZU5Zb`H){+;Q%eO0aYG_w_i>^(S^2 zMFo!Tm%p3PX)##+%?Cc+81nTDAgt?{MCQX$Ov~3m^Ngb;dDZ=D)Dc*&2J^95#<$R4 z4wf_CqWc(SB(NLJSQiKlK(OZ&dtDwuix}wQk-T= zls~>Yaf3v+q6|8AuvxVntz9O!l+tXbOWaGT+r6eE`KLDcd9;~6YniS8zY>{0Ec%Z; z2B#J#9^@a&aIhtXsb8Oml+zk^d#QOb)ipOpBRL+D^}|`2E{NxibXvG**w5(3(Gs)- z-{l%@I-ddo=}rrI?o03&T|3tW0v#q+vWIE{)SX^zj|#;mGeh}Ftf-}gd;NT+`>@Sa zeX!I=F;-J%&xlj}s_YZ?G1yUAG^41Enezo()?()jAi}2L@i6MF80X{^0Ih{VG`A6^ zUQ*KS*5q($g&;+d9(zgrdgS9-EbqmHcH1Lw_suC4;#*A@lS->WQ0Jk`K3IyX`!+fS dnkuDf5EY8g*GQ_WMB2ZK!1)vW8hv6f{tXu{tU3Sy literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGAII-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGAII-members.html new file mode 100644 index 000000000..b4888680a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGAII-members.html @@ -0,0 +1,56 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoNSGAII< MOEOT > Member List

This is the complete list of members for moeoNSGAII< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
breedmoeoNSGAII< MOEOT > [protected]
continuatormoeoNSGAII< MOEOT > [protected]
defaultGenContinuatormoeoNSGAII< MOEOT > [protected]
defaultSGAGenOpmoeoNSGAII< MOEOT > [protected]
diversityAssignmentmoeoNSGAII< MOEOT > [protected]
fitnessAssignmentmoeoNSGAII< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
genBreedmoeoNSGAII< MOEOT > [protected]
moeoNSGAII(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op)moeoNSGAII< MOEOT > [inline]
moeoNSGAII(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op)moeoNSGAII< MOEOT > [inline]
moeoNSGAII(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut)moeoNSGAII< MOEOT > [inline]
moeoNSGAII(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op)moeoNSGAII< MOEOT > [inline]
moeoNSGAII(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op)moeoNSGAII< MOEOT > [inline]
operator()(eoPop< MOEOT > &_pop)moeoNSGAII< MOEOT > [inline, virtual]
moeoEA::operator()(A1)=0eoUF< A1, R > [pure virtual]
popEvalmoeoNSGAII< MOEOT > [protected]
replacemoeoNSGAII< MOEOT > [protected]
selectmoeoNSGAII< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGAII.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGAII.html new file mode 100644 index 000000000..0ab609a0d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGAII.html @@ -0,0 +1,422 @@ + + +ParadisEO-MOEO: moeoNSGAII< MOEOT > Class Template Reference + + + + +
+
+ +

moeoNSGAII< MOEOT > Class Template Reference

NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. +More... +

+#include <moeoNSGAII.h> +

+

Inheritance diagram for moeoNSGAII< MOEOT >: +

+ +moeoEA< MOEOT > +moeoAlgo +eoAlgo< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoNSGAII (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op)
 Simple ctor with a eoGenOp.
 moeoNSGAII (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op)
 Simple ctor with a eoTransform.
 moeoNSGAII (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut)
 Ctor with a crossover, a mutation and their corresponding rates.
 moeoNSGAII (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op)
 Ctor with a continuator (instead of _maxGen) and a eoGenOp.
 moeoNSGAII (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op)
 Ctor with a continuator (instead of _maxGen) and a eoTransform.
virtual void operator() (eoPop< MOEOT > &_pop)
 Apply a few generation of evolution to the population _pop until the stopping criteria is verified.

Protected Attributes

+eoGenContinue< MOEOT > defaultGenContinuator
 a continuator based on the number of generations (used as default)
+eoContinue< MOEOT > & continuator
 stopping criteria
+eoPopLoopEval< MOEOT > popEval
 evaluation function used to evaluate the whole population
+moeoDetTournamentSelect< MOEOT > select
 binary tournament selection
+moeoFastNonDominatedSortingFitnessAssignment<
+ MOEOT > 
fitnessAssignment
 fitness assignment used in NSGA-II
+moeoFrontByFrontCrowdingDiversityAssignment<
+ MOEOT > 
diversityAssignment
 diversity assignment used in NSGA-II
+moeoElitistReplacement< MOEOT > replace
 elitist replacement
+eoSGAGenOp< MOEOT > defaultSGAGenOp
 an object for genetic operators (used as default)
+eoGeneralBreeder< MOEOT > genBreed
 general breeder
+eoBreed< MOEOT > & breed
 breeder
+

Detailed Description

+

template<class MOEOT>
+ class moeoNSGAII< MOEOT >

+ +NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. +

+Agrawal, A. Pratap, and T. Meyarivan : "A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-II". In IEEE Transactions on Evolutionary Computation, Vol. 6, No 2, pp 182-197 (April 2002). This class builds the NSGA-II algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +

+ +

+Definition at line 37 of file moeoNSGAII.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGAII< MOEOT >::moeoNSGAII (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op 
) [inline]
+
+
+ +

+Simple ctor with a eoGenOp. +

+

Parameters:
+ + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
+
+ +

+Definition at line 47 of file moeoNSGAII.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGAII< MOEOT >::moeoNSGAII (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op 
) [inline]
+
+
+ +

+Simple ctor with a eoTransform. +

+

Parameters:
+ + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
+
+ +

+Definition at line 59 of file moeoNSGAII.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGAII< MOEOT >::moeoNSGAII (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoQuadOp< MOEOT > &  _crossover,
double  _pCross,
eoMonOp< MOEOT > &  _mutation,
double  _pMut 
) [inline]
+
+
+ +

+Ctor with a crossover, a mutation and their corresponding rates. +

+

Parameters:
+ + + + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_crossover crossover
_pCross crossover probability
_mutation mutation
_pMut mutation probability
+
+ +

+Definition at line 74 of file moeoNSGAII.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGAII< MOEOT >::moeoNSGAII (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoGenOp. +

+

Parameters:
+ + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
+
+ +

+Definition at line 87 of file moeoNSGAII.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGAII< MOEOT >::moeoNSGAII (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoTransform. +

+

Parameters:
+ + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
+
+ +

+Definition at line 99 of file moeoNSGAII.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoNSGAII< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 109 of file moeoNSGAII.h. +

+References moeoNSGAII< MOEOT >::breed, moeoNSGAII< MOEOT >::continuator, moeoNSGAII< MOEOT >::diversityAssignment, moeoNSGAII< MOEOT >::fitnessAssignment, moeoNSGAII< MOEOT >::popEval, and moeoNSGAII< MOEOT >::replace. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGAII.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNSGAII.png new file mode 100644 index 0000000000000000000000000000000000000000..f5c5303ea6fb48fe46e6093a7438e5c4ff652c2e GIT binary patch literal 1286 zcmaKsTTqe-6vt6flU+j-qoi!g% z3<7~ThwTrIfk15VR-T30Su@|8=w)pyqQYYdAP8C!1SOS~NB^+Wmy$>%3@JEf9c{8= zNMy*KiT;xi2$UTbx;K`}ey54gEcZh=94+e}`-K?bGO(vs6U7mM-UtmOU$Tx^O16Nn zH(-?t+g&@@(O0Xof<7a{Gc?oN{*)o9!{T6ti(XC^hr3G|7wbxSb5B#rfI8*MDn)nV z-N{=tW<}~MMNp>fFS53J%!P-v|`zmZAsp z=hf#tnt&|%*`bKKYyQEOkbQRp8-|1ez0i%;hHtYZjuWB(^WTA)n8|)7|RVv3LUC)L|#B5G5-|ndpa8 zLYE2j^V8VK>n-rr+zn#VV9N*tSf3~8TL$%{l>qO%-!BnN2)purQ+%fbdX-JZZBIPY z_8&BSa&$}_+`T;ajBmLA{MiPwp{7R+ZFnt2((5-9R9K!)&$FOp$>=%@beeQG0%qK8 zJ%O^FGYK!DJ&&^`oj?{Y(K%rdu01z_9TF`RPx@wL(!4RtKR-fkVSIXj{`o0B=g^t_ z#NlnWo<2D0T$^03XP*CA$*S@bzOsc`==z=h2ZIy|EOusRK>aCW&b-PM_YYe%cb4<; ze7`0l74#}%AB)MyuuUYT8Nd3f^rersJz?7aPVz$Gtb2Roi}4zzH#n*>1e-XN1$#`< zUk?WfnJ2D?Q&zx_(>e zVg%;y#_{M`keQCS??2+o=i?6kM=9dY2ZaIlo3_HIq%uqtuV?V1`b=SgU0K{c=8(r1 ziF3Xxz&dW#HfNRF2ws20?tcW3Xt}7w$&8~ zBnMQ{##)7(q1!kk>H6*alL<9ge6sEeEkD;q_eSgc_nr8Z^_Jrfyo`at8@0z6bsHbZ zs(WqUp%>wUSi}r=>BZs-zoP2Jo1@VLpol(d-}7tvcGJS=L!7|zCO*+j3ytP2#QHRb z5|WZ?Uh#2T~g z4Dgxqp6-D9r-BHkPjb9F)`@c~Ew2BBGo=(>l54Z%^x7lsE-#_hrv(WkkV5N2jxzrR DJhXnV literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedDistance-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedDistance-members.html new file mode 100644 index 000000000..deb4e706f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedDistance-members.html @@ -0,0 +1,47 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoNormalizedDistance< MOEOT, Type > Member List

This is the complete list of members for moeoNormalizedDistance< MOEOT, Type >, including all inherited members.

+ + + + + + + + + + + +
boundsmoeoNormalizedDistance< MOEOT, Type > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoNormalizedDistance()moeoNormalizedDistance< MOEOT, Type > [inline]
ObjectiveVector typedefmoeoNormalizedDistance< MOEOT, Type >
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)moeoNormalizedDistance< MOEOT, Type > [inline, virtual]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedDistance< MOEOT, Type > [inline, virtual]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedDistance< MOEOT, Type > [inline, virtual]
tiny()moeoNormalizedDistance< MOEOT, Type > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.html new file mode 100644 index 000000000..d10987cb8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.html @@ -0,0 +1,220 @@ + + +ParadisEO-MOEO: moeoNormalizedDistance< MOEOT, Type > Class Template Reference + + + + +
+
+ +

moeoNormalizedDistance< MOEOT, Type > Class Template Reference

The base class for double distance computation with normalized objective values (i.e. +More... +

+#include <moeoNormalizedDistance.h> +

+

Inheritance diagram for moeoNormalizedDistance< MOEOT, Type >: +

+ +moeoDistance< MOEOT, Type > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

moeoNormalizedDistance ()
 Default ctr.
virtual void setup (const eoPop< MOEOT > &_pop)
 Sets the lower and the upper bounds for every objective using extremes values for solutions contained in the population _pop.
virtual void setup (double _min, double _max, unsigned int _obj)
 Sets the lower bound (_min) and the upper bound (_max) for the objective _obj.
virtual void setup (eoRealInterval _realInterval, unsigned int _obj)
 Sets the lower bound and the upper bound for the objective _obj using a eoRealInterval object.

Static Public Member Functions

+static double tiny ()
 Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound).

Protected Attributes

+std::vector< eoRealIntervalbounds
 the bounds for every objective (bounds[i] = bounds for the objective i)
+

Detailed Description

+

template<class MOEOT, class Type = double>
+ class moeoNormalizedDistance< MOEOT, Type >

+ +The base class for double distance computation with normalized objective values (i.e. +

+between 0 and 1). +

+ +

+Definition at line 24 of file moeoNormalizedDistance.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT, class Type = double>
+ + + + + + + + + +
virtual void moeoNormalizedDistance< MOEOT, Type >::setup (const eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the lower and the upper bounds for every objective using extremes values for solutions contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Reimplemented from moeoDistance< MOEOT, Type >. +

+Definition at line 59 of file moeoNormalizedDistance.h. +

+Referenced by moeoNormalizedDistance< MOEOT >::setup(). +

+

+ +

+
+
+template<class MOEOT, class Type = double>
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void moeoNormalizedDistance< MOEOT, Type >::setup (double  _min,
double  _max,
unsigned int  _obj 
) [inline, virtual]
+
+
+ +

+Sets the lower bound (_min) and the upper bound (_max) for the objective _obj. +

+

Parameters:
+ + + + +
_min lower bound
_max upper bound
_obj the objective index
+
+ +

+Reimplemented from moeoDistance< MOEOT, Type >. +

+Definition at line 83 of file moeoNormalizedDistance.h. +

+

+ +

+
+
+template<class MOEOT, class Type = double>
+ + + + + + + + + + + + + + + + + + +
virtual void moeoNormalizedDistance< MOEOT, Type >::setup (eoRealInterval  _realInterval,
unsigned int  _obj 
) [inline, virtual]
+
+
+ +

+Sets the lower bound and the upper bound for the objective _obj using a eoRealInterval object. +

+

Parameters:
+ + + +
_realInterval the eoRealInterval object
_obj the objective index
+
+ +

+Reimplemented from moeoDistance< MOEOT, Type >. +

+Definition at line 99 of file moeoNormalizedDistance.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.png new file mode 100644 index 0000000000000000000000000000000000000000..5fff519494b9831c4caf2ab0ec066fe0b86b9814 GIT binary patch literal 1213 zcmeAS@N?(olHy`uVBq!ia0y~yU}Ocd53n!;$^Wmi1%Z@AfKQ0)|Ns9%BL5G}pPw)R z$O7X72M$yp`u_yTWh@Eu3ubV5b|Z~}fhE|}#WAE}&fD3(lO8MZv>r{nc7XQ-=dLup zBdgxmw=gPxysX$a`G#QZ((8AHr44Gt4oyDA{lPyb{zLiXX+|1{Z}Xhn`A+9b(0|9a z!ZiWjhjTA~mUP>E%ukl!Vdnr%m3_Ct$=b7Cy6AhlcImxr{&f{9PGot@f^7hT+Z{+*S-?sYm z!f5e>j{{b!Oet;rDG;-xDmF$rHGnNOVyfe>xwUoq|F=E*9lK|(1~0>h=h3qgc-!8; z*XZ5Aa+u3u`Sh3AMl%H9q@I7aQJI3n^YX zUBqp%M$0)p&3j3?WsJ;KCdO@RlW*vyuDB*@oUoz0`C8NmPD7cw6VxSTB-@w%mS*b` ze16!mV=>RUuZ0WF8Cut78y{f}{_Oj&KgChf?x4cob8&yqe%{iweFxKFu6vKT zc(k7^F`BT*gh7K@+l#ruXafP}ui5H#VoP{VeUM?!+jENj^7$txH#kgR{bzD+U(%Ny z&Th{I+jbcipL?)5S@=Za>zJv#!)20AL|-_ub75{~rT?tsduPoq-?}b&L2dPxrR$R& z#Ix#O-_iN3qULr;EZb?-q- z^M2>MZWgUKQZsIw7U~tmD;O`?WhBkGJWri(-rbwk0{o9Qn6|Cu_e+eAQ$dsZ2BFgm6&ku|@NwN11rNYW!vieXBl=u$=p z$q4++2O@0hdfeas-mVBfwScEzg6Ch~S)cIP#y6*Qs~bH%Zy8fmk??`x)oVev>eCnc z16M!iS$XBD*wSp96}rpA6P%m>rlr+*E@$)4opdlL`_$hh!p*hI*v#fWTU8Z%K7m_j zN^_s$ci-tfJYv<`BId`vFfD!Bqq~%C#kw!~yni2AZf`#`alP4Zo)XW8scdgH7+%nn z4Yr+METi+mVTMj?Wy*=m_Pxx;A{`SM*KfSynObmW?xc-|65gS$idQYqiSL$XKkaOI zq~GE|OXIUc0rh7NEd6S=z~YVZlBj(ta_zU4?oQos;ZtMxt^?a@7R;}HedyNjpBL70 zKPYu9ZalqsZTF`dgBhE}^0Onv6YA{brPy3kH|g0a$t|Bf)8F{Y@_AFi!K@a + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Member List

This is the complete list of members for moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >, including all inherited members.

+ + + + + + + + + +
boundsmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoNormalizedSolutionVsSolutionBinaryMetric()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > [inline]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > [inline]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > [inline, virtual]
tiny()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.html new file mode 100644 index 000000000..6d432b049 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.html @@ -0,0 +1,178 @@ + + +ParadisEO-MOEO: moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Class Template Reference + + + + +
+
+ +

moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Class Template Reference

Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. +More... +

+#include <moeoNormalizedSolutionVsSolutionBinaryMetric.h> +

+

Inheritance diagram for moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >: +

+ +moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R > +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + +

Public Member Functions

moeoNormalizedSolutionVsSolutionBinaryMetric ()
 Default ctr for any moeoNormalizedSolutionVsSolutionBinaryMetric object.
void setup (double _min, double _max, unsigned int _obj)
 Sets the lower bound (_min) and the upper bound (_max) for the objective _obj.
virtual void setup (eoRealInterval _realInterval, unsigned int _obj)
 Sets the lower bound and the upper bound for the objective _obj using a eoRealInterval object.

Static Public Member Functions

+static double tiny ()
 Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound).

Protected Attributes

+std::vector< eoRealIntervalbounds
 the bounds for every objective (bounds[i] = bounds for the objective i)
+

Detailed Description

+

template<class ObjectiveVector, class R>
+ class moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >

+ +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. +

+Then, indicator values lie in the interval [-1,1]. Note that you have to set the bounds for every objective before using the operator(). +

+ +

+Definition at line 26 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector, class R>
+ + + + + + + + + + + + + + + + + + + + + + + + +
void moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >::setup (double  _min,
double  _max,
unsigned int  _obj 
) [inline]
+
+
+ +

+Sets the lower bound (_min) and the upper bound (_max) for the objective _obj. +

+

Parameters:
+ + + + +
_min lower bound
_max upper bound
_obj the objective index
+
+ +

+Definition at line 50 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h. +

+Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setup(). +

+

+ +

+
+
+template<class ObjectiveVector, class R>
+ + + + + + + + + + + + + + + + + + +
virtual void moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >::setup (eoRealInterval  _realInterval,
unsigned int  _obj 
) [inline, virtual]
+
+
+ +

+Sets the lower bound and the upper bound for the objective _obj using a eoRealInterval object. +

+

Parameters:
+ + + +
_realInterval the eoRealInterval object
_obj the objective index
+
+ +

+Definition at line 66 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..07c556671c141de73542f63a931f5009bcd58d7e GIT binary patch literal 2692 zcmd6pdoAHVnaylcJhv!3Vse%|MK z(@uFDS5?wdf3>?+6#9Z+gvK5I4 z2(UE;j2J7z>83vKPuGdcZ7A#ALsQUEhQ)<7@~L_pVvZL4b!km;_+aN2ZOXdJOO|C1 zt8av*FuU=^$@n&e@PJ#XW9=670O)wQ%(6Bu<0O4ypG#3n05Mh@&edmC_=TWDv)Fl` z!=^(y*~o`-T9m$_k_#*aFx|;^L+j|VA*dPf{I9TUD&`dn3mb8KP_WDKMBxfHeAE?MylRa;XWdpa!l^qw_1ia zDmZuGG(t4>H-u=u*5;Tv$Z$+b50?3+$d&mzM7Yo)P#1d2h}4t%cis}5c=9d|Jo$xd z6y>ZGitF5X5VLUO_MRC+j^Y54-(B()p4aLC+<1cR4&1FV z(DkcNv{kJYwDDPvw&x7sYYEK+Yy5oXj?A*$&jUTwK%;njw&5C+6@{s~Xvtt9p_(v* z;=A>Ts>#utg1N5sjlIXh^QgO6oabniH;(8r12jDg5;9{6?R0dOV{nE5;~7cK;d`yr z4UBEi+^v)Z(_9wT?o~E_F&_^L({8KYD8&Z1z3m1=_3Afd{t)Dh|0#f{7x3v-K4~FA zbD`dlq4pgG=dUTpWqj38js$B2a#D`=ZMt}^2`=qK8KqEUN36X^V>xrVA~^u z>e+-9uHmY`(B;-~V{wKhc}T#zG#*aQW-$0Hb;WzFoIt;t_rCXX3lS4?qR8AS9VBzD z25fNM7z7acyRRQ*eHs-y1nVlgN7!-SaHYGG4rE zz{Y})MJtsR;LM2O!uWQZ+E~(*j+^y(ej^xP?B&NQ0p zAX)b=SIf2@?n6SAnp_pwM3aV*YYFXguHFdhO3sM^-3Y8Tbz#rc=Rm};V(NT=J5eQL z9Pae1FM-wp*P+Y{a6v~l9xe1a~zGaGgSGF7t3JK9v9Ki9$e+lxtok9Eg~aP z_|VUZn_5vsDIFwYa7OR#PBxUBc}(VF++s-lp}hV%JM$#Fkvx$@w<6f$91y_5I&v2TwHRPZ#n*)tUr@b({ECY3dJU30ANatSFrgKkyddr zvC(XnH{FE4#)<>9^r9N7_MbmEzho6(bUWKAo^xeX6E#A@jwRyia&#l; zZPe3&hlBjsfqT!Oy7s!iLW;ey$sQirpg4FXF*_UW_;iQg=!%rOa{=ajHbG(Z5V3qSAin9n%g>h3SQks9qTE`~ znh@shf-dZyE?@i|1;j896^GkB>)l>QGX>KpXPIrg z9ZQ^bXMjpoQVcd!fcH%Dsm9Nr&0vXc;2Xk1@0^bsKu&#_uUceU&@HwY#hZJ3K)v^l z0fUEG>DOc#t%BZCUZ;d@DDEYIK5dJ?OfB98VnX_4gt$6;9IZa$fB7HSp!yvE literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator-members.html new file mode 100644 index 000000000..131653ad9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoObjectiveObjectiveVectorComparator< ObjectiveVector > Member List

This is the complete list of members for moeoObjectiveObjectiveVectorComparator< ObjectiveVector >, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)moeoObjectiveObjectiveVectorComparator< ObjectiveVector > [inline]
moeoObjectiveVectorComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.html new file mode 100644 index 000000000..3fd621f5b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.html @@ -0,0 +1,106 @@ + + +ParadisEO-MOEO: moeoObjectiveObjectiveVectorComparator< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoObjectiveObjectiveVectorComparator< ObjectiveVector > Class Template Reference

Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. +More... +

+#include <moeoObjectiveObjectiveVectorComparator.h> +

+

Inheritance diagram for moeoObjectiveObjectiveVectorComparator< ObjectiveVector >: +

+ +moeoObjectiveVectorComparator< ObjectiveVector > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

const bool operator() (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)
 Returns true if _objectiveVector1 < _objectiveVector2 on the first objective, then on the second, and so on.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoObjectiveObjectiveVectorComparator< ObjectiveVector >

+ +Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. +

+ +

+Definition at line 22 of file moeoObjectiveObjectiveVectorComparator.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
const bool moeoObjectiveObjectiveVectorComparator< ObjectiveVector >::operator() (const ObjectiveVector &  _objectiveVector1,
const ObjectiveVector &  _objectiveVector2 
) [inline]
+
+
+ +

+Returns true if _objectiveVector1 < _objectiveVector2 on the first objective, then on the second, and so on. +

+

Parameters:
+ + + +
_objectiveVector1 the first objective vector
_objectiveVector2 the second objective vector
+
+ +

+Definition at line 31 of file moeoObjectiveObjectiveVectorComparator.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.png new file mode 100644 index 0000000000000000000000000000000000000000..4d94f5ab61acdf0200d399a0c962ce12d445661c GIT binary patch literal 1308 zcmeAS@N?(olHy`uVBq!ia0y~yU@QW%53n!;$=CH?KL9C-0G|-o|Ns93ng9PEm_I*Z z0+0p92M!#lKJ@L)rd=~(}0Y8JhG@%}s$u}wb~olrS`)$y-n=&SAW!TVe0#5$c@fA7gT32(mK zjb(FHS6To3bU|!&?bllWzbBm6&1EbSuUpeOEukZg{mDnkA728^iw=A>n>_o+m50sU z*J?7VQ}v-7@syZiO`UVE3H3;uO? z)}M)`e%HkE1q>nzat~UWU$ZO9O`JaAv-gRgs!#q%&HQuOTwc%n?#lJii|?;2Jh}gW z-K+NqWdPLFpwr?2=Nt{pD?eNz1|wtuO-f9{JZ zKA$$>^XlY!@0|3RzlG+i>o#1QzHi#|Qs>IuIi;JHaI)|Ims9w95#JNOU#(hCS}z`) z{Cwi`X={DnJxYFMt}XYJ;pE-ls+ap^Uf)q$5&r4OtXF?(zwkY2Y<*&*=y-nSY};w; z50yK-pH%F>nsuVi$``KllQ!8YJ-=#YuTbwcclp+%61QAtp1i#2-Kh_guT6{9HQ4=a z!F^x9L~B)R&wblJK)gMv?&z*3a^m~j-u{xFUUO&N{=$>&`XPUnN!997fqSY)5pE4sno zep@waS7pq-fOQpzj@W(IauP_=_4l3~?tCHZez@-QbNeUU7P=L#?l?V!apsYyybPy3 z@10v)%ImoLh4quA{D%HaY%yhV!s3x;O3HRaehLbC%}KT|43Vw!707=z>yDOx5#Lg?IBL z7SEircFTGtJ?0m=1z|DK3)nC3c+`-^9d-HV`3v9X?G;YnbCKhR{e~QMcDt-5Ng&(tTfCBtDIP4#2hkz3zJSD+{8cFz_s`+BCm(ib# z=Bp{D0~6nBFFQ$Dwh&1rzuV5je-@d1T$h!Z$Gyv4?y(Q|a$)DKo?i}?Pu`=ep*sK3 z)YHt|y z!&usn=c&9!OXoppAH#h!*B(_A5dE~-QFPvv69+3>m!JBXR7^a9gTl!J!$Yq%h~qRzu3)ngC1P^nW+pc${0Ld{an^LB{Ts5^nZ}9 literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVector-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVector-members.html new file mode 100644 index 000000000..2780676ab --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVector-members.html @@ -0,0 +1,44 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > Member List

This is the complete list of members for moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >, including all inherited members.

+ + + + + + + + +
maximizing(unsigned int _i)moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline, static]
minimizing(unsigned int _i)moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline, static]
moeoObjectiveVector(Type _value=Type())moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline]
moeoObjectiveVector(std::vector< Type > &_v)moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline]
nObjectives()moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline, static]
setup(unsigned int _nObjectives, std::vector< bool > &_bObjectives)moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline, static]
Traits typedefmoeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >
Type typedefmoeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVector.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVector.html new file mode 100644 index 000000000..67e636056 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVector.html @@ -0,0 +1,222 @@ + + +ParadisEO-MOEO: moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > Class Template Reference + + + + +
+
+ +

moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > Class Template Reference

Abstract class allowing to represent a solution in the objective space (phenotypic representation). +More... +

+#include <moeoObjectiveVector.h> +

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

Public Types

+typedef ObjectiveVectorTraits Traits
 The traits of objective vectors.
+typedef ObjectiveVectorType Type
 The type of an objective value.

Public Member Functions

moeoObjectiveVector (Type _value=Type())
 Ctor.
 moeoObjectiveVector (std::vector< Type > &_v)
 Ctor from a vector of Type.

Static Public Member Functions

static void setup (unsigned int _nObjectives, std::vector< bool > &_bObjectives)
 Parameters setting (for the objective vector of any solution).
+static unsigned int nObjectives ()
 Returns the number of objectives.
static bool minimizing (unsigned int _i)
 Returns true if the _ith objective have to be minimized.
static bool maximizing (unsigned int _i)
 Returns true if the _ith objective have to be maximized.
+


Detailed Description

+

template<class ObjectiveVectorTraits, class ObjectiveVectorType>
+ class moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >

+ +Abstract class allowing to represent a solution in the objective space (phenotypic representation). +

+The template argument ObjectiveVectorTraits defaults to moeoObjectiveVectorTraits, but it can be replaced at will by any other class that implements the static functions defined therein. Some static funtions to access to the traits characteristics are re-defined in order not to write a lot of typedef's. +

+ +

+Definition at line 25 of file moeoObjectiveVector.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class ObjectiveVectorTraits, class ObjectiveVectorType>
+ + + + + + + + + +
moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >::moeoObjectiveVector (std::vector< Type > &  _v  )  [inline]
+
+
+ +

+Ctor from a vector of Type. +

+

Parameters:
+ + +
_v the std::vector < Type >
+
+ +

+Definition at line 46 of file moeoObjectiveVector.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class ObjectiveVectorTraits, class ObjectiveVectorType>
+ + + + + + + + + + + + + + + + + + +
static void moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >::setup (unsigned int  _nObjectives,
std::vector< bool > &  _bObjectives 
) [inline, static]
+
+
+ +

+Parameters setting (for the objective vector of any solution). +

+

Parameters:
+ + + +
_nObjectives the number of objectives
_bObjectives the min/max vector (true = min / false = max)
+
+ +

+Definition at line 55 of file moeoObjectiveVector.h. +

+

+ +

+
+
+template<class ObjectiveVectorTraits, class ObjectiveVectorType>
+ + + + + + + + + +
static bool moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >::minimizing (unsigned int  _i  )  [inline, static]
+
+
+ +

+Returns true if the _ith objective have to be minimized. +

+

Parameters:
+ + +
_i the index
+
+ +

+Definition at line 74 of file moeoObjectiveVector.h. +

+

+ +

+
+
+template<class ObjectiveVectorTraits, class ObjectiveVectorType>
+ + + + + + + + + +
static bool moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >::maximizing (unsigned int  _i  )  [inline, static]
+
+
+ +

+Returns true if the _ith objective have to be maximized. +

+

Parameters:
+ + +
_i the index
+
+ +

+Definition at line 84 of file moeoObjectiveVector.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator-members.html new file mode 100644 index 000000000..9038084ab --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoObjectiveVectorComparator< ObjectiveVector > Member List

This is the complete list of members for moeoObjectiveVectorComparator< ObjectiveVector >, including all inherited members.

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


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.html new file mode 100644 index 000000000..4ef212ff1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.html @@ -0,0 +1,64 @@ + + +ParadisEO-MOEO: moeoObjectiveVectorComparator< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoObjectiveVectorComparator< ObjectiveVector > Class Template Reference

Abstract class allowing to compare 2 objective vectors. +More... +

+#include <moeoObjectiveVectorComparator.h> +

+

Inheritance diagram for moeoObjectiveVectorComparator< ObjectiveVector >: +

+ +eoBF< A1, A2, R > +eoFunctorBase +moeoGDominanceObjectiveVectorComparator< ObjectiveVector > +moeoObjectiveObjectiveVectorComparator< ObjectiveVector > +moeoParetoObjectiveVectorComparator< ObjectiveVector > + +List of all members. + +
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoObjectiveVectorComparator< ObjectiveVector >

+ +Abstract class allowing to compare 2 objective vectors. +

+The template argument ObjectiveVector have to be a moeoObjectiveVector. +

+ +

+Definition at line 24 of file moeoObjectiveVectorComparator.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.png new file mode 100644 index 0000000000000000000000000000000000000000..07d6ef1ec2f50d068012f1182d4c9b0ee01cfee4 GIT binary patch literal 2533 zcmcgudpK148XiUMTtU2$!(LUoy=71 zaX)Hui9xkZ8FCwDG?}zR?&LN@qvou3dq3x#{r5ThkG0mj-sgMX=UdO>1%qw4vfl|yh`c+UPstM6Z%q8nBi3MgUk5x(C8DqVxXi7V&wErQ zm+|widmStDu#?3R#F)&pUYpPeoz*XMbl=SOWvkWmu@4|XXC#|iYj`Gt`Xya>ryNyn z?k)javAl26!=?*=dT1?pN5_c8|J3gzhnzS{LYk)T=GCg=fV8-z_a|;FRK1asn7w*S z-SMD3;trUCMxOOn8397CYlV@MxI5w}0&qb74M?=mzl3V0!_B2It0L%(?GMPzZmTbF z8(RWqq=jwTjuvJ(0{KcJR7hkfGdyM_Vn+v=88%l;VdC$7PGm%?1m9H^jVKgETU94S z=jK*0Xi5!jR`9(hM&G*DM5Ztu0W}|z@qI-V9D(uulN7!H_?Otqtt$cY=2!b2yVfL| z#EQBVlTDy9?iVy^!>{Vr8r?XEH~+KXZvxR~V>0xV-I(S!tK~p_^}qCulSt=#Bu&-l zUM!4w*zaV`whsCJO8l`8zc3r8!jM+rX5Z%eCbgbY?81*azQm8ewHGMcgo8*DGY+N+ zJgG!ffUcvg)to->jL-MAUB?@op~?CHBNXOD&Uzq6R2l$`+oeGJvImjoJ=6FWlkxch zk3Apj`{={Q(2|X(@h_%sj=BzoKN+rXD;084T>XN2kQ!_p0Ni$3LU+~$J#C|arn=56 z)V#}4w^l$8?iESG>wv&SNVLGVw;f3F^S%b*)f$KYT*x0D(_B==qSmu%!&lT;u;WTt zrL9HF5zb~?i@sS=QcpMB=mzZ+0rAxv|0wvIz{&sQJGt)PZu-`I zLolk18XU=DTcVFTz^ojQYv{#vpU0P$^TX)#D z_qCzz(H$dt{MhI`R(eBDPKCm_uo`!0|Zm1l(-b8?(=F!QGLVePo9^7OYB17OMq{Y@h`I`=X`SDURr*FjI#-9jQ{Qy{r_z}jou4GURmu2+nuMr{!owD?Yll)Zj5_ zu-Lh!NR;{!0r}h9q1-81B$fM`512hs^`mIts=OpW9YtooL4y47bbaeAhU0waGXLVZ z-c317qZk89R_Fywb9&1Ix{V6z#V%S z`Dy~txx1~w?&cwutIK04>uSUv$Mo440i%2&oxb3@U1cfL^>91&zW#RQkuYJaeQ>rI zh@Ey!9p&CQqN~eEDrR6xn|j)|75=zL*0+694S&G7)mD#9av*tLFRO9;g?n#Z6NV7C z(xX*x7!$nbDPL@DCPc85g%-VlY1OzM^)oGf}$)m0BFZD-t`LXuOr76EqlXh{zRFdFqO2XYCZ}Hxy!G}h-C?}$ygN%t(3K%k*a|z*{p(aH97cA>-6r?AUq%>eK?hBt{V2f)~Awpd?XItOXtqRZ?V0j_PMLkyZR{1mMHzSfTKLtz)sbXL0(gDWzeWK;pw59d1GS4`$$LYFm3mQS8OoL^Czc`~`bFn-l&(|w%s7v5HrAi&nz8I~BwAN55 z)Uv+Vi=-Yzi`HuYYhKp + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoObjectiveVectorTraits Member List

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

+ + + + + + + +
bObjmoeoObjectiveVectorTraits [private, static]
maximizing(unsigned int _i)moeoObjectiveVectorTraits [inline, static]
minimizing(unsigned int _i)moeoObjectiveVectorTraits [inline, static]
nObjmoeoObjectiveVectorTraits [private, static]
nObjectives()moeoObjectiveVectorTraits [inline, static]
setup(unsigned int _nObjectives, std::vector< bool > &_bObjectives)moeoObjectiveVectorTraits [inline, static]
tolerance()moeoObjectiveVectorTraits [inline, static]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits.html new file mode 100644 index 000000000..752201b0a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits.html @@ -0,0 +1,183 @@ + + +ParadisEO-MOEO: moeoObjectiveVectorTraits Class Reference + + + + +
+
+ +

moeoObjectiveVectorTraits Class Reference

A traits class for moeoObjectiveVector to specify the number of objectives and which ones have to be minimized or maximized. +More... +

+#include <moeoObjectiveVectorTraits.h> +

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

Static Public Member Functions

static void setup (unsigned int _nObjectives, std::vector< bool > &_bObjectives)
 Parameters setting.
+static unsigned int nObjectives ()
 Returns the number of objectives.
static bool minimizing (unsigned int _i)
 Returns true if the _ith objective have to be minimized.
static bool maximizing (unsigned int _i)
 Returns true if the _ith objective have to be maximized.
+static double tolerance ()
 Returns the tolerance value (to compare solutions).

Static Private Attributes

+static unsigned int nObj
 The number of objectives.
+static std::vector< bool > bObj
 The min/max vector.
+


Detailed Description

+A traits class for moeoObjectiveVector to specify the number of objectives and which ones have to be minimized or maximized. +

+ +

+Definition at line 23 of file moeoObjectiveVectorTraits.h.


Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
static void moeoObjectiveVectorTraits::setup (unsigned int  _nObjectives,
std::vector< bool > &  _bObjectives 
) [inline, static]
+
+
+ +

+Parameters setting. +

+

Parameters:
+ + + +
_nObjectives the number of objectives
_bObjectives the min/max vector (true = min / false = max)
+
+ +

+Definition at line 32 of file moeoObjectiveVectorTraits.h. +

+References bObj, and nObj. +

+

+ +

+
+ + + + + + + + + +
static bool moeoObjectiveVectorTraits::minimizing (unsigned int  _i  )  [inline, static]
+
+
+ +

+Returns true if the _ith objective have to be minimized. +

+

Parameters:
+ + +
_i the index
+
+ +

+Definition at line 67 of file moeoObjectiveVectorTraits.h. +

+References bObj. +

+Referenced by maximizing(). +

+

+ +

+
+ + + + + + + + + +
static bool moeoObjectiveVectorTraits::maximizing (unsigned int  _i  )  [inline, static]
+
+
+ +

+Returns true if the _ith objective have to be maximized. +

+

Parameters:
+ + +
_i the index
+
+ +

+Definition at line 80 of file moeoObjectiveVectorTraits.h. +

+References minimizing(). +

+

+


The documentation for this class was generated from the following files: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator-members.html new file mode 100644 index 000000000..ab307e330 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoOneObjectiveComparator< MOEOT > Member List

This is the complete list of members for moeoOneObjectiveComparator< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoBF< A1, A2, R > [static]
moeoOneObjectiveComparator(unsigned int _obj)moeoOneObjectiveComparator< MOEOT > [inline]
objmoeoOneObjectiveComparator< MOEOT > [private]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoOneObjectiveComparator< MOEOT > [inline]
moeoComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.html new file mode 100644 index 000000000..9d8f1fba4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.html @@ -0,0 +1,150 @@ + + +ParadisEO-MOEO: moeoOneObjectiveComparator< MOEOT > Class Template Reference + + + + +
+
+ +

moeoOneObjectiveComparator< MOEOT > Class Template Reference

Functor allowing to compare two solutions according to one objective. +More... +

+#include <moeoOneObjectiveComparator.h> +

+

Inheritance diagram for moeoOneObjectiveComparator< MOEOT >: +

+ +moeoComparator< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + +

Public Member Functions

 moeoOneObjectiveComparator (unsigned int _obj)
 Ctor.
const bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 < _moeo2 on the obj objective.

Private Attributes

+unsigned int obj
 the index of objective
+

Detailed Description

+

template<class MOEOT>
+ class moeoOneObjectiveComparator< MOEOT >

+ +Functor allowing to compare two solutions according to one objective. +

+ +

+Definition at line 22 of file moeoOneObjectiveComparator.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoOneObjectiveComparator< MOEOT >::moeoOneObjectiveComparator (unsigned int  _obj  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_obj the index of objective
+
+ +

+Definition at line 30 of file moeoOneObjectiveComparator.h. +

+References moeoOneObjectiveComparator< MOEOT >::obj. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const bool moeoOneObjectiveComparator< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns true if _moeo1 < _moeo2 on the obj objective. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 44 of file moeoOneObjectiveComparator.h. +

+References moeoOneObjectiveComparator< MOEOT >::obj. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.png new file mode 100644 index 0000000000000000000000000000000000000000..b07c06bb3c3362c6f423c211e15b6f9be80270fc GIT binary patch literal 1066 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K54zMr-Ny)Vxn%%7hy z0muU50|yRNANv0U$Ym@E@(X5gcy=R=fr0ser;B4q#hkaZy(isK;AuOnmVJa*!Q4a7 zWc9xPf=Mk555s?3F3GN2b!?jBHaqTz?>0sqzJD(Fhw!d#_kmV(GAISP@B6arJyQnn z&r7eLuQF%;@$ua8-z7QcD&HsZ@4WFgh9!aZS|yu8l3iw=hnoN$zOaVzd9s(;f!0}vyDhmSEA>(z->&KTu4O*)Qkm=9Jce^^I*cr=0`r(P zUM}Q0VCSc~YSl!3mW2B@GRz7mPcF?q&v3-rlC4be4U57hxe40E7Q0qmtV&it7{}j| z#^qu4I_Gsw;=8?mw;eCNS3>R+L{L$_@ z|4Rqx&UuV4{%zg!+g@!x-v!&;>#_@~Z>_U-_^!Z$;s+q-3Ge#-i-0j-#b}rm5RPkZVc5j=_%4R4`G;- zIO)pC+g2w+873v^g~lISTDLL!s)U%~Jbg>IF%gFA zY+?Ls1oyB8n6^nB_`Id!6hl$%^V*1+O`=V*ava_aJCEeQY7A|-EH^>ZL(`eDfSW;x zdFu}&mc3l(jy6QG{*h78%=of$(}e9i?*yFV%KIf_v75{6*2-T=40kvSvVqY!!FAyM}yle)A*-EnSf3)>xrfN5*{Z9=R`mU@xom8?De>A|neG7UN}8r+|2*v$~a$Y#wx zo*YceSJ2>x~+uJXnza%q+&8xi6{viSwXg=T9KmE_J XIn-!js(9c-P*8cg`njxgN@xNAc|Elx literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment-members.html new file mode 100644 index 000000000..0deb21e49 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoParetoBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoParetoBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.html new file mode 100644 index 000000000..10e5b673a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.html @@ -0,0 +1,61 @@ + + +ParadisEO-MOEO: moeoParetoBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoParetoBasedFitnessAssignment< MOEOT > Class Template Reference

moeoParetoBasedFitnessAssignment is a moeoFitnessAssignment for Pareto-based strategies. +More... +

+#include <moeoParetoBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoParetoBasedFitnessAssignment< MOEOT >: +

+ +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoFastNonDominatedSortingFitnessAssignment< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoParetoBasedFitnessAssignment< MOEOT >

+ +moeoParetoBasedFitnessAssignment is a moeoFitnessAssignment for Pareto-based strategies. +

+ +

+Definition at line 22 of file moeoParetoBasedFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..2291d4e38b5130e3bd8331af450d48a7441b2c97 GIT binary patch literal 1875 zcma)-dpr~BAIFDIKVeOBoepOrMXWWBY~&VGG|Z(7LuOr(q+jKMaYiJ+$L;NHsodUfr_loQr0O57y}doPV_P7d z%EV#No&ej)!4Lpo=gi3yc3w$k^W|9Ty<cuvK2OyWd(%|5DOIJZTR5S?vWD|<{^1=!3XEuVqZLb7$>^Tl3CfMY`zg6wPhw$ za~*1_Z~~>zK|~`d=bDBP*45p3_H6Ck_{RwGASSIW;DILf%GiK<4n*)#x#LBbGS0H0 zyzCPi9a-(c8r{kpqgIh6A7bXn;C#s}H*v3DUml;!;e4S)+u<;v6br<^q7ADX^F2Sm zWX($taEXBYcM|Ecr<*X*#+J*l+wK_W`$+dlMTn_X+uO9JSBeV!z4=a8d~6eQ;M&Sl{*7f8tIB^h%(rL@XkPO5usDoR z);3s5@dp2~quIK%SSQJO;U==q#NLslzM}` zoGMY0vT&*-uR3J72-g^0H0zN&;WU^9G&Yxd1uE|^QSFJe94Gu%I{Ie6qPW>*bH-zd4mh9jKxh&HF#TLmUrV3Ux~WAB9J`3SsbxZidcERNQ}A>o1u8Y1=#eBlN1udyXk# z2?V&57aAkSjDnjEXg}4FC(b8ZkXtYP9{Y@@^$qk+!3*xs@Lzcdhu+_xd{;dx`Db>V zKQGNc`o>e>$T|t0=<5RIe#V@pzF5dm2@Ru9KOS$}~5M8cL*?5w` z0K{Oz51394oSI@mcd#gpHEDrxZ7u2K1tqpP(E3=K4yLgIh@dM-lEZD!$r15a@MKuS3Svs0F z6%z8}qeoqNrY(_14nn-MP|JVS63JiO{M?@%u_bbH~1+1vs@7y8BvR;>@rlL+vd0nHr$6(D| z;-wEJ505zITAe+l9OqoKGuuv1M>StXc=iqRBe;33Ua#Q#9_E0WMqmzx;OdFG99zv+ z%0KWtbc{ON986f>68~W5;94 zjS}n#20kO1(N9D;VOtGovveWnr^Qd!bamY*Chj!$a11I zbEB>(Tb8u6%;c#~Z}^vwoaXX~ZZv3hV?UF>^?hU1V_WVUhOp`?Qzs*>fPj;Z=o7W} Hff;`SVj-pJ literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator-members.html new file mode 100644 index 000000000..0986468d4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoParetoObjectiveVectorComparator< ObjectiveVector > Member List

This is the complete list of members for moeoParetoObjectiveVectorComparator< ObjectiveVector >, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)moeoParetoObjectiveVectorComparator< ObjectiveVector > [inline]
moeoObjectiveVectorComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.html new file mode 100644 index 000000000..998b35297 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.html @@ -0,0 +1,106 @@ + + +ParadisEO-MOEO: moeoParetoObjectiveVectorComparator< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoParetoObjectiveVectorComparator< ObjectiveVector > Class Template Reference

This functor class allows to compare 2 objective vectors according to Pareto dominance. +More... +

+#include <moeoParetoObjectiveVectorComparator.h> +

+

Inheritance diagram for moeoParetoObjectiveVectorComparator< ObjectiveVector >: +

+ +moeoObjectiveVectorComparator< ObjectiveVector > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

const bool operator() (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)
 Returns true if _objectiveVector1 is dominated by _objectiveVector2.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoParetoObjectiveVectorComparator< ObjectiveVector >

+ +This functor class allows to compare 2 objective vectors according to Pareto dominance. +

+ +

+Definition at line 22 of file moeoParetoObjectiveVectorComparator.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
const bool moeoParetoObjectiveVectorComparator< ObjectiveVector >::operator() (const ObjectiveVector &  _objectiveVector1,
const ObjectiveVector &  _objectiveVector2 
) [inline]
+
+
+ +

+Returns true if _objectiveVector1 is dominated by _objectiveVector2. +

+

Parameters:
+ + + +
_objectiveVector1 the first objective vector
_objectiveVector2 the second objective vector
+
+ +

+Definition at line 31 of file moeoParetoObjectiveVectorComparator.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.png new file mode 100644 index 0000000000000000000000000000000000000000..790ba77fa113f904facd252df5c418adb32095fc GIT binary patch literal 1501 zcmcIkYgCd47{<(4nmKD`pk`)jY2Hd%)1{UgdhkMGm*Z_JrSlUtkx~-1yd0b36Elqx zl{PP%X%cgYTr{)wm6qDUhD=CT%qw03)6_`D*3bRg&e=K7`@YY6-haTwCwNd?(WX+(fpxZ zbx2_$IGE3bBmoA~%Lw#48lF`>SB)Xg?)%jLQT^k5i`yo`sZngHP-Ej(b{YGDg<08= zYmS!K+gEy27QJyU7{C8urA;jWAGysBYHYz#`L_8IPR99LD5u+(?z7GGJ`mS+v>$fC?CY&iUK3i-z`VbGAD!OmOhdVEm)2#O>|__S3sa*}t$yrHsA>ahB&ZeFpp;Lb}YWJOO}d{qjWU z1vyHrpUjvL0M+z!r)$>>Ij>#sj*^c&u>g(ACzr^Y2Jh4AeM24ITC|O&p!w(Ki|*-R zA;m7U!7SlCTS} zLe&%_icq)7Mh|=!!>LjoRS7(Kyl>F~B0I>dYgDLveVILdF~!M9!neMjYFW8wDC@9$ z^nuz+k96X;v5m9&EV~?Fwq-1nN30SOk~nFpOfs(Tu>x7lvB^Q1ulKYIU|Yika{hKzhJBxg7=-(3)-wHOAs zS9pGfz+AdZVL{S!AlH^Rw4Y_22|k@FKzfI+5kZBZ9>;#!*1wQaTD+fYago@@rD7uO z%HLL!g)9?33B~1vcJij1!VSO|QV+CL{nHT6X=#bSt;~6YP3LRQ0y%48*dUS8_T4NU znOA4^hBuHY*pep=J;r>Zjn-9Yc5LEA!hLD!|85cij*k|na;6@B47DR3KWDXPTXD~| zrn*LQSN)Ip;*BX2a^C~f*7636CTCG-VoHjK@kO_`D<0Ap0 zhOPmzWQ0f*It20I&eVt8-fG#@qSA0^`vQ{T#-chx_FHTn`%K+q`sk`XbOq8mSVel} zPFJ?3BXY3v$-uPXjsf{H*gK;buZUC`#@~=vV21B3idsIWE{&WKDae#F4zFL`;U-5o zkfvp6iu1UJ4U(uD%J-vUWXcl2KQ$G97Py>mlQLW~%!@J){X!SBrT~?e$6}s8C|@sS n7J4y~WK3i5xBLBdEgD@We6J{oa + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoRandomSelect< MOEOT > Member List

This is the complete list of members for moeoRandomSelect< MOEOT >, including all inherited members.

+ + + + + + + + + +
moeoSelectOne::functor_category()eoUF< A1, R > [static]
eoRandomSelect< MOEOT >::functor_category()eoUF< A1, R > [static]
moeoRandomSelect()moeoRandomSelect< MOEOT > [inline]
operator()(const eoPop< MOEOT > &_pop)moeoRandomSelect< MOEOT > [inline, virtual]
moeoSelectOne::operator()(A1)=0eoUF< A1, R > [pure virtual]
moeoSelectOne::setup(const eoPop< MOEOT > &_pop)eoSelectOne< MOEOT > [virtual]
eoRandomSelect< MOEOT >::setup(const eoPop< EOT > &_pop)eoSelectOne< EOT, WorthT > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRandomSelect.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRandomSelect.html new file mode 100644 index 000000000..4571aea5b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRandomSelect.html @@ -0,0 +1,74 @@ + + +ParadisEO-MOEO: moeoRandomSelect< MOEOT > Class Template Reference + + + + +
+
+ +

moeoRandomSelect< MOEOT > Class Template Reference

Selection strategy that selects only one element randomly from a whole population. +More... +

+#include <moeoRandomSelect.h> +

+

Inheritance diagram for moeoRandomSelect< MOEOT >: +

+ +moeoSelectOne< MOEOT > +eoRandomSelect< MOEOT > +eoSelectOne< MOEOT > +eoSelectOne< EOT, WorthT > +eoUF< A1, R > +eoUF< A1, R > +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + +

Public Member Functions

moeoRandomSelect ()
 Ctor.
+const MOEOT & operator() (const eoPop< MOEOT > &_pop)
 Return one individual at random by using an eoRandomSelect.
+

Detailed Description

+

template<class MOEOT>
+ class moeoRandomSelect< MOEOT >

+ +Selection strategy that selects only one element randomly from a whole population. +

+ +

+Definition at line 23 of file moeoRandomSelect.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRandomSelect.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRandomSelect.png new file mode 100644 index 0000000000000000000000000000000000000000..3347ccc9aa2c29f5881300a0dab4f959d605438a GIT binary patch literal 1901 zcmb_ddpy&N8~)D7X-gdk-*M>S6JwqqELSqkH?GXl#3KCB+S+M zEMO~s8UO&QP=bS<+x7fc1>U(OMw;<+rzvnN-m{K@_?MOI?Xjs)BO`1tf5UxJIA*rk z<>BM=ak)3YXpfvZHw)eQE)kF_+?)x)#{19;j zq7^lwRIFET($=VJ`#b%$wF4*ei1CYo6X!jxzvmyD^Qt8w_O-v5iBkU!J(fZ(QVN4x zl#FZbsVkKaxv&vPeKK{B>ss1!w~h-O zJw?oz9*6k`T^iXY)q5b47&5lUO{(#Bzm*xYoW9)6%l5npxn;k8E2KxLBm#ViGeo3u zSm1q$m?0TeY>S<9zqsM_w+l`7>s}OdX1-p%mhF3b=pHHUU3LqOYzQ*EfrO&-CAIjO zUu)W0wG4Tg5uC53NZYs3;Y0-bO$tT2%C2Hii{d}IE=fQ=>~;J>xb#Nrin5-P>fwDG ze1~5Z3o|9HUISR_m7LBHV}DnH7=w-)xuAl z_B}2~(lcgCF$R-HFLJ#0zxSw3jI}JdQm$4Nlq&7=xHDCDNQbbuA@G+ox@HZUVD9Lv zjCr~{>eP6TAAx%NJvNt1uFhnw?bhzbr+u8xsF(YkTlg-yVvy=Ti^+}<6yESvPnVS@ zrRPb#u^+@$p*SL8HgBXUsE#1%M-64PHQp+>3Ov?u@d@N_0*MUX)Tq?-B`!gHApL2w?S&MlIrZ&D}89cJE z3?1=W?3@Qxqlz$5!Pv4)hu;x&TCg?EJD>87@4YT9NQls}NQYWOyuW1Isa;m}PipQv%2F4K+h^B?NjhMS+y*G|i`I9B|3lsD@ zujP5it!Muu4U4;*of`Wpj(e6Iz*yFjAk;OBL++->L>sL6U`?aVc3WrLPj}#-Tq}P} ziCgC`5F-oPgtr;?e*oJ=dve$t54b0gFOQ>Euq`d!s&;<>Fy)>1Z2yl$dFmmowb%3I z#=jkC?w)tx$nqD!LJfiNYB4#|IgB-&NM*7*eEmh9jQ&+{a{V z(w(2{?npVa1B!U-m+h$F7SYTI_a@iHpDcu4~K z`*8G!Se^atc^0N{xwYHX#%#>MdxMjs=u*)2nhhZwbRCvSQy|}fk0sYli??)aMi9x7 z4w>NN{Z*G|5NFUg*%-?;Vch`hNwFzLI8430nMkiAm&DuUT2+&1F$c%lNA9KB-)xuV nSip1y_`L$W#=p2%c3?gl&G)rSQxSV8ej`9|batr4`^NkUz2ius literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector-members.html new file mode 100644 index 000000000..58cc2feb5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector-members.html @@ -0,0 +1,53 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoRealObjectiveVector< ObjectiveVectorTraits > Member List

This is the complete list of members for moeoRealObjectiveVector< ObjectiveVectorTraits >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
dominates(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
maximizing(unsigned int _i)moeoObjectiveVector< ObjectiveVectorTraits, double > [inline, static]
minimizing(unsigned int _i)moeoObjectiveVector< ObjectiveVectorTraits, double > [inline, static]
moeoObjectiveVector(Type _value=Type())moeoObjectiveVector< ObjectiveVectorTraits, double > [inline]
moeoObjectiveVector(std::vector< Type > &_v)moeoObjectiveVector< ObjectiveVectorTraits, double > [inline]
moeoRealObjectiveVector(double _value=0.0)moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
moeoRealObjectiveVector(std::vector< double > &_v)moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
nObjectives()moeoObjectiveVector< ObjectiveVectorTraits, double > [inline, static]
operator!=(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
operator<(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
operator<=(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
operator==(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
operator>(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
operator>=(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
setup(unsigned int _nObjectives, std::vector< bool > &_bObjectives)moeoObjectiveVector< ObjectiveVectorTraits, double > [inline, static]
Traits typedefmoeoObjectiveVector< ObjectiveVectorTraits, double >
Type typedefmoeoObjectiveVector< ObjectiveVectorTraits, double >


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.html new file mode 100644 index 000000000..8ec3e5f93 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.html @@ -0,0 +1,351 @@ + + +ParadisEO-MOEO: moeoRealObjectiveVector< ObjectiveVectorTraits > Class Template Reference + + + + +
+
+ +

moeoRealObjectiveVector< ObjectiveVectorTraits > Class Template Reference

This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. +More... +

+#include <moeoRealObjectiveVector.h> +

+

Inheritance diagram for moeoRealObjectiveVector< ObjectiveVectorTraits >: +

+ +moeoObjectiveVector< ObjectiveVectorTraits, double > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

moeoRealObjectiveVector (double _value=0.0)
 Ctor.
 moeoRealObjectiveVector (std::vector< double > &_v)
 Ctor from a vector of doubles.
bool dominates (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector dominates _other according to the Pareto dominance relation (but it's better to use a moeoObjectiveVectorComparator object to compare solutions).
bool operator== (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is equal to _other (according to a tolerance value).
bool operator!= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is different than _other (according to a tolerance value).
bool operator< (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is smaller than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).
bool operator> (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is greater than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).
bool operator<= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is smaller than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).
bool operator>= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is greater than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).
+

Detailed Description

+

template<class ObjectiveVectorTraits>
+ class moeoRealObjectiveVector< ObjectiveVectorTraits >

+ +This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. +

+that an objective value is represented using a double, and this for any objective. +

+ +

+Definition at line 27 of file moeoRealObjectiveVector.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
moeoRealObjectiveVector< ObjectiveVectorTraits >::moeoRealObjectiveVector (std::vector< double > &  _v  )  [inline]
+
+
+ +

+Ctor from a vector of doubles. +

+

Parameters:
+ + +
_v the std::vector < double >
+
+ +

+Definition at line 45 of file moeoRealObjectiveVector.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::dominates (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector dominates _other according to the Pareto dominance relation (but it's better to use a moeoObjectiveVectorComparator object to compare solutions). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 54 of file moeoRealObjectiveVector.h. +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator== (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is equal to _other (according to a tolerance value). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 65 of file moeoRealObjectiveVector.h. +

+Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator!=(), and moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>=(). +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator!= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is different than _other (according to a tolerance value). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 82 of file moeoRealObjectiveVector.h. +

+References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator==(). +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator< (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is smaller than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 93 of file moeoRealObjectiveVector.h. +

+Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator<=(). +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator> (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is greater than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 105 of file moeoRealObjectiveVector.h. +

+Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>=(). +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator<= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is smaller than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 116 of file moeoRealObjectiveVector.h. +

+References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator<(). +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is greater than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 127 of file moeoRealObjectiveVector.h. +

+References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator==(), and moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.png new file mode 100644 index 0000000000000000000000000000000000000000..c5aa7381c7bf513558563efc01a5ff4499d74e32 GIT binary patch literal 890 zcmeAS@N?(olHy`uVBq!ia0y~yVDtd816Y`WWao*GPC!Z`z$e7@|Ns9$=Kuc(=Fd-< z0AzvjfddDs5B+}vEalY(fD?H?4~6OJgpB?=kZz}xOwnQ z+ovnP;}1CqWo+5V`@Kl}?G*RbE+-V{|H;_?yP9#Q{p;hezw=spnm^GgRa9;4}2;T&&DLyzZPwt0;yy}quRQ=9WRl~NnHR(?x4 z5u|85Z-%!>fGMxFjpEWG=AG9}vh^3XxV%iipzQ4+#QkJiqvFc%x+(|wCTZQ6_AGFj zdF7JGkh%*GiFpNul(TB_UJ=}!KCbZmDhic zly2X5?Syp0`Lx=prN+-P6~AW--CJ|=`MYQ3ahrpaA1viF@{l=cy>*{`n~l+3#V2Rg z_BI&Eym_bG`gqyOd2gdXhR$cKOsZn9{8V$WDCIe?g(ghDVPXEnWT9z;TL$j}!6@d8mTL@B)Zm_bFQlii z{Y?G4o1e^|sN9{fxrB!^AX@DC<=*9&?mc^{Q#gB_yG_7l-L0OCJGaO_oqg@i?MsYL zW*jenWHrINuI>T^`MGV^@#Ce=`SaQ z5VULx)jNFR(`3PV*TP3GjD(XGHIzA%l77wiYHG}>fCS2dVZgicipF4_iD?{ z*}{6f!TBnpa_3iC+?n5(lJ5IS@76l~=atMKZm!W+pOQRJ>{E(wS^0OR_b1bq|7x9X zbwXidYkAh&suRkW=T7=rzB_vH`kHzB{(JuBSB$r3vwvLq^3f%G13M33GLB`r^y~d9 bxBm=l_}q$gM5Nk)8HK^q)z4*}Q$iB}DR7YM literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealVector-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealVector-members.html new file mode 100644 index 000000000..3b5687e3c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealVector-members.html @@ -0,0 +1,86 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Member List

This is the complete list of members for moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AtomType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >
className() const moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
ContainerType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >
Diversity typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
diversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
diversity(const Diversity &_diversityValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO()EO< MOEOObjectiveVector >
EO()EO< MOEOObjectiveVector >
Fitness typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
fitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
fitness(const Fitness &_fitnessValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::fitness(const Fitness &_fitness)EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::fitness(performance_type perf)EO< MOEOObjectiveVector >
fitness_traits typedefEO< MOEOObjectiveVector >
invalid() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate_worth(void)EO< MOEOObjectiveVector >
invalidateDiversity()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateFitness()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateObjectiveVector()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidDiversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidFitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidObjectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
moeoRealVector(unsigned int _size=0, double _value=0.0)moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
moeoVector(unsigned int _size=0, double_value=double())moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > [inline]
ObjectiveVector typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
objectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
objectiveVector(const ObjectiveVector &_objectiveVectorValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > &_moeo) const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > [inline]
MOEO::operator<(const MOEO &_other) const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::operator<(const EO &_eo2) const EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::operator<(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
operator>(const EO &_eo2) const EO< MOEOObjectiveVector >
operator>(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
performance(performance_type perf)EO< MOEOObjectiveVector >
performance(void) const EO< MOEOObjectiveVector >
performance_type typedefEO< MOEOObjectiveVector >
printOn(std::ostream &_os) const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > [inline, virtual]
readFrom(std::istream &_is)moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > [inline, virtual]
storage_type typedefEO< MOEOObjectiveVector >
value(const std::vector< double > &_v)moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > [inline]
worth(worth_type worth)EO< MOEOObjectiveVector >
worth(void) const EO< MOEOObjectiveVector >
worth_type typedefEO< MOEOObjectiveVector >
~EO()EO< MOEOObjectiveVector > [virtual]
~eoObject()eoObject [virtual]
~eoPersistent()eoPersistent [virtual]
~eoPrintable()eoPrintable [virtual]
~MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealVector.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealVector.html new file mode 100644 index 000000000..4993a6aca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealVector.html @@ -0,0 +1,113 @@ + + +ParadisEO-MOEO: moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference + + + + +
+
+ +

moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference

This class is an implementation of a simple double-valued moeoVector. +More... +

+#include <moeoRealVector.h> +

+

Inheritance diagram for moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >: +

+ +moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > +MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > +EO< MOEOObjectiveVector > +eoObject +eoPersistent +eoPrintable + +List of all members. + + + + + + + + +

Public Member Functions

 moeoRealVector (unsigned int _size=0, double _value=0.0)
 Ctor.
+virtual std::string className () const
 Returns the class name as a std::string.
+

Detailed Description

+

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ class moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+ +This class is an implementation of a simple double-valued moeoVector. +

+ +

+Definition at line 22 of file moeoRealVector.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + + + + + + + + + + +
moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::moeoRealVector (unsigned int  _size = 0,
double  _value = 0.0 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_size Length of vector (default is 0)
_value Initial value of all elements (default is default value of type GeneType)
+
+ +

+Definition at line 31 of file moeoRealVector.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealVector.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRealVector.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe873b85a551b2cf519603550bb7badfe92fe22 GIT binary patch literal 2896 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 Ma6esl^80K50?O~GPXGV_ literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoReplacement-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoReplacement-members.html new file mode 100644 index 000000000..ca17ecb5a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoReplacement-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoReplacement< MOEOT > Member List

This is the complete list of members for moeoReplacement< MOEOT >, including all inherited members.

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


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoReplacement.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoReplacement.html new file mode 100644 index 000000000..34f9ce415 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoReplacement.html @@ -0,0 +1,63 @@ + + +ParadisEO-MOEO: moeoReplacement< MOEOT > Class Template Reference + + + + +
+
+ +

moeoReplacement< MOEOT > Class Template Reference

Replacement strategy for multi-objective optimization. +More... +

+#include <moeoReplacement.h> +

+

Inheritance diagram for moeoReplacement< MOEOT >: +

+ +eoReplacement< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase +moeoElitistReplacement< MOEOT > +moeoEnvironmentalReplacement< MOEOT > +moeoGenerationalReplacement< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoReplacement< MOEOT >

+ +Replacement strategy for multi-objective optimization. +

+ +

+Definition at line 22 of file moeoReplacement.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoReplacement.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoReplacement.png new file mode 100644 index 0000000000000000000000000000000000000000..81188d8ce588a996d142f66693eea26c55fb5800 GIT binary patch literal 2429 zcmd6pc~DbX7RH0N0)i-z4oZu-z-ZtFlm-dVED9oYAV5SW5D*DQ1wyCUT7e*rWeXBX zXq9IJZXlp^qT~T4EV2j*TTom811O3ipaRhlku_wVGBZxsOifMI^dD38-FMHcU!8aB ze&^m(?~E^g&&m~sD-a08N>2|r0s^rVfaB?}mcq~Zkh`Hn)XUYvS9*Wf zIUlm-M&L?OiH#XpGi?GU%slDJ<>i@yos~$OVRD;z3(Sj=ak%sWb;JA%JP;&jX|3=pmsM=9MQ>Wm5Ko8;wlvstgdmO?c`ik=2%P&o5td`@_Y0rZUa zIMU-9(di|bww4)=p1OQY-cw5C(djhLXq!4gL9)n*Zm)-f{8Oo(2_^wD4B8}9Aal7o z5mG=5{#P|FgcWMnEU(w&E<3eMyrl7^bEP!YBlPBmWI|Jf$McYmae0SZGKEY?%8RYA^akP5qv+eAmN7#h`dW@O;1s15tA0SDl83>+1-fq14s`(f?)}| zTDM~A7{G|L?ABY1u|ilY4FRh8^apo-A!;ykZrmV}Sw*#+U&K$J$v*iOE|Cr-;o%iy#lyg=kj_}KC(I93EInZZk3KG|`S5~xx z|C+3W6~<;?Cl0r<6pzRsKUm!2m0oox*9gHLrDAoX1x z_wbqmwblvC9Q2aC?kBKwiT!fpPF7+t)kygt#>-VY2jxkL#c2=ds~v)m+58ZZ269t$scT z69gz;^aWW`n<~PzqXU1^m=u{g^?ysVJQxQkvC8?X628}#{Z}~D#Jp}R@K!sWL(J&w zG?w*jOU4CN77A-kd7_bB6;58Id}SloDb7ytY9-W0VM?W1hVL+1*%1j@7IakC;qJ{)USECs$|vK6&d(WA@Rb+> z+{xnu1b1@NDBPf>i?K%1%9AoF0qC^o z7PHOJv#dT3&LyRLCd*m+u4~FwHv6OUPPgMGTjU<-nPma7XZ}S?tR=I~^|kwdIzV&A l^)pupD|v3snXM|s#J)~johe}^{I7)Y+>Lj;z3afqzXDBKY5)KL literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRouletteSelect-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRouletteSelect-members.html new file mode 100644 index 000000000..6e8659266 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRouletteSelect-members.html @@ -0,0 +1,44 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoRouletteSelect< MOEOT > Member List

This is the complete list of members for moeoRouletteSelect< MOEOT >, including all inherited members.

+ + + + + + + + +
functor_category()eoUF< A1, R > [static]
moeoRouletteSelect(unsigned int _tSize=2)moeoRouletteSelect< MOEOT > [inline]
operator()(const eoPop< MOEOT > &_pop)moeoRouletteSelect< MOEOT > [inline]
moeoSelectOne::operator()(A1)=0eoUF< A1, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)eoSelectOne< MOEOT > [virtual]
tSizemoeoRouletteSelect< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRouletteSelect.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRouletteSelect.html new file mode 100644 index 000000000..bf715384a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRouletteSelect.html @@ -0,0 +1,144 @@ + + +ParadisEO-MOEO: moeoRouletteSelect< MOEOT > Class Template Reference + + + + +
+
+ +

moeoRouletteSelect< MOEOT > Class Template Reference

Selection strategy that selects ONE individual by using roulette wheel process. +More... +

+#include <moeoRouletteSelect.h> +

+

Inheritance diagram for moeoRouletteSelect< MOEOT >: +

+ +moeoSelectOne< MOEOT > +eoSelectOne< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + +

Public Member Functions

 moeoRouletteSelect (unsigned int _tSize=2)
 Ctor.
const MOEOT & operator() (const eoPop< MOEOT > &_pop)
 Apply the tournament to the given population.

Protected Attributes

+double & tSize
 size
+

Detailed Description

+

template<class MOEOT>
+ class moeoRouletteSelect< MOEOT >

+ +Selection strategy that selects ONE individual by using roulette wheel process. +

+

Warning:
This selection only uses fitness values (and not diversity values).
+ +

+ +

+Definition at line 24 of file moeoRouletteSelect.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoRouletteSelect< MOEOT >::moeoRouletteSelect (unsigned int  _tSize = 2  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_tSize the number of individuals in the tournament (default: 2)
+
+ +

+Definition at line 32 of file moeoRouletteSelect.h. +

+References moeoRouletteSelect< MOEOT >::tSize. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
const MOEOT& moeoRouletteSelect< MOEOT >::operator() (const eoPop< MOEOT > &  _pop  )  [inline]
+
+
+ +

+Apply the tournament to the given population. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 48 of file moeoRouletteSelect.h. +

+References moeoRouletteSelect< MOEOT >::tSize. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRouletteSelect.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoRouletteSelect.png new file mode 100644 index 0000000000000000000000000000000000000000..5a9a8b943bc75869d3649623917816a6ad330361 GIT binary patch literal 1009 zcmVByWzbg>0oY<4aJr~~zR3=pjbGa2BJTOtz31Fqtk zFINCSUSt*nT#7+x^^XIB4e3D(;3bN_V3P#*dEn0h6d!jQ?8`C0bnAA2r(z(o2p!o8 zEy!6!F+jklvS>t6fC82POy9QLTfXid@n(Qu->U<@zrPj-te-^+P=Epypa2CZKmi{M znEnE?{yUlio(Eu*ql8N8d{H_tXs1^JqKZ|4x}cq&i-IJSb^v}1ponxC0BqFl0C=`e zR{;RYegjA`I3t__0Hg;Xj1~|0=7ezWfp3-wQX}qT@UREH7<2#+#~@`g1>pSi zX?j{N{dwXEz@@)VJOj8|6!2dFrf*xOZ@k_Opt|Yn0qbXx0u-PC1t>rP3Q)ku0;a!! ztpARtfQJB(zaY~cUJM!{X z0G%4G9<+oVfR)lTEL|D^KpO85{f#AR2zw72r8G^f@gR@C4LJ2cDy1?8$SSXlK|MC> zz09K17zm|QW)V7SNex_*dHFrKlBVN}0u-1F@`0f0MGjV{3m + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoScalarFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoScalarFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.html new file mode 100644 index 000000000..a2e1503f2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.html @@ -0,0 +1,61 @@ + + +ParadisEO-MOEO: moeoScalarFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoScalarFitnessAssignment< MOEOT > Class Template Reference

moeoScalarFitnessAssignment is a moeoFitnessAssignment for scalar strategies. +More... +

+#include <moeoScalarFitnessAssignment.h> +

+

Inheritance diagram for moeoScalarFitnessAssignment< MOEOT >: +

+ +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoAchievementFitnessAssignment< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoScalarFitnessAssignment< MOEOT >

+ +moeoScalarFitnessAssignment is a moeoFitnessAssignment for scalar strategies. +

+ +

+Definition at line 22 of file moeoScalarFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..93cce37122d5827d3b3835d06318d647803e9b3f GIT binary patch literal 1934 zcmbtVc~Fzr9t}!eO0l*qWm9YcSzg&CNHicIi3GwXA_h<~tO)^R)v(09r6xp+8q1b( zK1qNAVF@6M22x4NZbWtor4R@bWD1EaN%)#BGo5+=y}p@q?>%?!{N^`v&OP_$1^6K~ zKQ{On0)c3HpE?-?fvA0{;v4EaRdZlEI!m?a1^5Pgfgq@&AlN~tU%aPce~ylhjw~)X zr`oEe1^JzZoR}Yrfk1YfdY^O;zEZqg5}2}NvEQqVzNssLR3DPXct$v#NdkTJJe~Jk zHuK5Qz7SNVW&Ws69ci816YqJ4bZi#C;ke#KNb6G}lU$rS3&dw9?m^eHjk z#^Gsu;gIIp6>U3B(Db*A1ohpX9@AxroB?g-!cqkEHNY}__%)UgtivnDy2zrmQ-;)@ zHU#>G@Lq~~5oTI=L}&ADOLx48iY!9R7Z1~JC0dPprx_cT)y(|Jwdzk2-3{z%v$eMx zbVd*hCsD@`W&kTMm1EPF67t^jab^wX)ya1FYHl>Unr#TQyui622!+!3Q{!tRav&s2ybOnnJ>+CtB=$P-Y$BXlc~xG7b~%1w(DmGA*^y8ZnDDtp4LcC zb}Hcba`$DV)=i~6IDd)B)a5b+!iSTNg~}d_^V<{tS|dUmcc*jhu%3QAFqZR9@A+ew zfpjJYMV74X&X|z`dplW_RpyTHnxB*S;x5TnN>eKKfg`9}VaK{b3%hWMog|GRk0{F% zkG9R_s-H#6@8`^fW-*POu-5y^qks5>;s+mDwc2S3&<&5!w`Ahybsro?qnlXv#3bcy zg3WgV=d*VzHmf=DZry}5Un)Y9>1mz$0=y}uMXU^#b0kC(LMf9>iq-$sb^b^6zmgFi zQm{mhe{6HC8Ltw)g_3_YaV}hF;FD*_s2eBTqEO74Qh4jea+(RHibm!=IUY8uq3J(3 zP+8oIb!>v-yx)!;zu71_${4z0RQmq4+Eqtg|BB^qbir~#Vz-6v%jb-EvL^p1kEZK9 zXJ-n8Vz=yLDolWGFQ#QFGW+m|Luj6BDH|0lClfgd{#b=U_z}YdPSk-$CK|X*jEO?W z0-e7;Z8SA^uKtkc?DTq)9WwmQP%V@g9K?^SW@EMGN%{Q!Su>AYFIhI^NGrRlvxjje z)luwS%*#d@H4~_KTg1&N>!P7odW&jiK|=w%ldAIBddmhS-vzo(;JAN?HCK zH$s(Y@Fp(1VR#rK994w<`ruu`gVx}Kc*_&Rp}pn|nu~Lst87V-SC{e8boB}jSQ*W1 z6o~WJuMQ;1(Y?PwVSm3%OJAANhSPMox^attC1qT;P2O4>Zx-zRZ~6aKd|Ij)KgN_Q zG6Ui8fmM}dD&xkX^*U1vQxz;|Z)?ey1{blj-X&S>Z3>WazyB@C!NkcHF4T4lt7wyC z*D6R3xR|x2zMKfJw@a1362HKHzA`l%3mf8>94K2F&$@8fluv>lEW}y?N)b352QT9E zO|8qqB}X+dU|CDU-WjOzu?L&uTMrj-%-OU2V$Ajh%E%gbtxsvkqJ-RtKLZlaKeH{U z{i!{*uR;WlB49<++uvN%Z(&b(yvlF)-DuVmiS|gjEzt&72~qswux(CWU}?W`rQV{) zuEPNt738YP`BR%M`_AY5QQusH(URFsc7#S;pD34>BoLJ4@cB2Z;9UU@O8S98-*pb- z+HqV$_Yj9_2=7FeF1X2wRie}V{4t-GinLA8IJ-YL6(*LkoCu=+|-uNAHSFKh6 literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch-members.html new file mode 100644 index 000000000..df1647da5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch-members.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoSelectFromPopAndArch< MOEOT > Member List

This is the complete list of members for moeoSelectFromPopAndArch< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + +
archmoeoSelectFromPopAndArch< MOEOT > [private]
archSelectOnemoeoSelectFromPopAndArch< MOEOT > [private]
functor_category()eoUF< A1, R > [static]
moeoSelectFromPopAndArch(moeoSelectOne< MOEOT > &_popSelectOne, moeoSelectOne< MOEOT > _archSelectOne, moeoArchive< MOEOT > &_arch, double _ratioFromPop=0.5)moeoSelectFromPopAndArch< MOEOT > [inline]
moeoSelectFromPopAndArch(moeoSelectOne< MOEOT > &_popSelectOne, moeoArchive< MOEOT > &_arch, double _ratioFromPop=0.5)moeoSelectFromPopAndArch< MOEOT > [inline]
operator()(const eoPop< MOEOT > &pop)moeoSelectFromPopAndArch< MOEOT > [inline, virtual]
moeoSelectOne::operator()(A1)=0eoUF< A1, R > [pure virtual]
popSelectOnemoeoSelectFromPopAndArch< MOEOT > [private]
randomSelectOnemoeoSelectFromPopAndArch< MOEOT > [private]
ratioFromPopmoeoSelectFromPopAndArch< MOEOT > [private]
setup(const eoPop< MOEOT > &_pop)moeoSelectFromPopAndArch< MOEOT > [inline, virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.html new file mode 100644 index 000000000..5d9d7c135 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.html @@ -0,0 +1,201 @@ + + +ParadisEO-MOEO: moeoSelectFromPopAndArch< MOEOT > Class Template Reference + + + + +
+
+ +

moeoSelectFromPopAndArch< MOEOT > Class Template Reference

Elitist selection process that consists in choosing individuals in the archive as well as in the current population. +More... +

+#include <moeoSelectFromPopAndArch.h> +

+

Inheritance diagram for moeoSelectFromPopAndArch< MOEOT >: +

+ +moeoSelectOne< MOEOT > +eoSelectOne< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoSelectFromPopAndArch (moeoSelectOne< MOEOT > &_popSelectOne, moeoSelectOne< MOEOT > _archSelectOne, moeoArchive< MOEOT > &_arch, double _ratioFromPop=0.5)
 Ctor.
 moeoSelectFromPopAndArch (moeoSelectOne< MOEOT > &_popSelectOne, moeoArchive< MOEOT > &_arch, double _ratioFromPop=0.5)
 Defaulr ctor - the archive's selection operator is a random selector.
+virtual const MOEOT & operator() (const eoPop< MOEOT > &pop)
 The selection process.
+virtual void setup (const eoPop< MOEOT > &_pop)
 Setups some population stats.

Private Attributes

+moeoSelectOne< MOEOT > & popSelectOne
 The population's selection operator.
+moeoSelectOne< MOEOT > & archSelectOne
 The archive's selection operator.
+moeoArchive< MOEOT > & arch
 The archive.
+double ratioFromPop
 The ratio of selected individuals from the population.
+moeoRandomSelect< MOEOT > randomSelectOne
 A random selection operator (used as default for archSelectOne).
+

Detailed Description

+

template<class MOEOT>
+ class moeoSelectFromPopAndArch< MOEOT >

+ +Elitist selection process that consists in choosing individuals in the archive as well as in the current population. +

+ +

+Definition at line 26 of file moeoSelectFromPopAndArch.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoSelectFromPopAndArch< MOEOT >::moeoSelectFromPopAndArch (moeoSelectOne< MOEOT > &  _popSelectOne,
moeoSelectOne< MOEOT >  _archSelectOne,
moeoArchive< MOEOT > &  _arch,
double  _ratioFromPop = 0.5 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + + +
_popSelectOne the population's selection operator
_archSelectOne the archive's selection operator
_arch the archive
_ratioFromPop the ratio of selected individuals from the population
+
+ +

+Definition at line 37 of file moeoSelectFromPopAndArch.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoSelectFromPopAndArch< MOEOT >::moeoSelectFromPopAndArch (moeoSelectOne< MOEOT > &  _popSelectOne,
moeoArchive< MOEOT > &  _arch,
double  _ratioFromPop = 0.5 
) [inline]
+
+
+ +

+Defaulr ctor - the archive's selection operator is a random selector. +

+

Parameters:
+ + + + +
_popSelectOne the population's selection operator
_arch the archive
_ratioFromPop the ratio of selected individuals from the population
+
+ +

+Definition at line 48 of file moeoSelectFromPopAndArch.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.png new file mode 100644 index 0000000000000000000000000000000000000000..64ad01a6c0c1249650f582981d3ebbf202b1a50d GIT binary patch literal 1109 zcmV-b1giUqP)q$gGRCt{2+}(Dg zAP@&|x!G%nH^3+8*?pm2_5B}VnGbMGj7>C@di>KiRV4gCCON6I?(nZ;`569A{R(vG z&lMtad#TpOAJLaesQ2?9(7)ib%}}iO7!hq_hg&#MsK(7 zF6L7dB-bR3d0F>Fsa?!BDA1up|5?57C+cJ6^WgJOtpEACuKxA)d0G9+F%KO&bm-8b zLx&C>I`po3->U~#zHS5kEP9mOOwE3zsiwtV$%!1%-Sz({iLo+}7gK_Jauc_DoqJ2Y z=4DJzk|UYYt^UI4-=|9!Mu*^aTlXdzv6_$5R9KwFI(OT6n%|R;OO}_i%6Pl(jk19& z>%OA5S$B*1WI4GqB-PW@IOey9w(D8%()aw!gY&)5Lx+A`@B4|m?_U!q){&39rhes^ zhYlS&bm-8bLx&C>dRM*g)q^Wvw}Jk9^+c9}u@Xy-Yob4#CLw*`oXNL&f@gF~J~;jE zZaB_UkfsMTQ>AHxL%P2^h{_Fck#7l_>J4&UxBI3ng>zK5OiYSXy(LOAGpgG?Qj&*B ziNDwM&9ncE&it%T^`YFEx72yL{oJ?sP2DnZ+Gn%}ujdNwJj-!??wkBKbN3lIdsxoh zI^WQD&wY`BbL*~m0#1J2?dv|~_piIlz`2;0yARE;F|W3Ny&sPG<^?)*=s&CX{Y2gO zuZa`u$j4n%zjDk&hYlS&bm-8bLx&E%tKRqO!IiJuK>yu(o1EOUdYhcwL!I+1nwV&q zlY6L>{qKNHb8?U8o+hui$;o}IH_gdCG53Z!xo6LOo1EOH?qa@8PVOA@3is*Ft2+v;=-#xWmEk z&5iiGZo8vnegglHZb+za=)wA&J04e$%XV;;ZX{(Md54Lhb>m`?riUN{%#G!j9G2Ij z?vr$z8*$wjROf9{oqv<*`FQRij9%yd!T$q3YI^?aR9B$);kTkp+To z>b|YJ(``@YO|#CySadu0W3cx3XP#T!%zdz5^E0;fFbwXj*_rTjf2gm_y>>aStoxl# zUZ+{tz^vV`#{BKN&oM8rcNg-{d~cb4PtlF)k<=vURd bexm*lCi1{ + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoSelectOne< MOEOT > Member List

This is the complete list of members for moeoSelectOne< MOEOT >, including all inherited members.

+ + + + + +
functor_category()eoUF< A1, R > [static]
operator()(A1)=0eoUF< A1, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)eoSelectOne< MOEOT > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectOne.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectOne.html new file mode 100644 index 000000000..da2461fc3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectOne.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoSelectOne< MOEOT > Class Template Reference + + + + +
+
+ +

moeoSelectOne< MOEOT > Class Template Reference

Selection strategy for multi-objective optimization that selects only one element from a whole population. +More... +

+#include <moeoSelectOne.h> +

+

Inheritance diagram for moeoSelectOne< MOEOT >: +

+ +eoSelectOne< MOEOT > +eoUF< A1, R > +eoFunctorBase +moeoDetTournamentSelect< MOEOT > +moeoRandomSelect< MOEOT > +moeoRouletteSelect< MOEOT > +moeoSelectFromPopAndArch< MOEOT > +moeoStochTournamentSelect< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoSelectOne< MOEOT >

+ +Selection strategy for multi-objective optimization that selects only one element from a whole population. +

+ +

+Definition at line 22 of file moeoSelectOne.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectOne.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSelectOne.png new file mode 100644 index 0000000000000000000000000000000000000000..c3d4939f914b3035fc59a7c5330b1e52507a5af8 GIT binary patch literal 2926 zcmd5;Sy)ro7Cw~WXn_+d3KU3yYpsF;soFM-GKs}1P=bn#fd~~NmNY2>YtQ9UqHwzrW<%(rTMqudt1jg)_Q-L=on=0 zC)`KLG|SL`X@0Myx;ok{Lj`0jhQRbHf}l zYx5=rn+QDLuJ$Qr!zrR(KhM1EUHgsK>h;q;qe6h>6EYylIK zK5GXGx|+IFP&8PD*>HyVgeAc~#P2erjmM9zFAQTgXiL+xlvQw-;}w{AWgPN;UBVBG zL$moIbh7N4{%*)kcm)ps34z`6Ah9L{A<5ALEgp@sycn^l%J+{-Zzb1Q&)rgu$vYe| zOCr8ic;)AoJ*<=;qEHmY@?4563l2uK0w zuu)|M4V>6kEzQKPgi12yw&8A%h>vY)T1zcvlT4$fHswce^Z5TCuMG3a%2>y9+CQRr z<|p1wXZEX2zehGaNiZ|YxM0&a=!^!`L+(_a#{pV& zmmp;;pc8+ge(8dm(e!&U^Xls8KFyI4Pz!fQyS5IY)9UiqH?Hc2$dp^x-b_!2*|nxS zTk+G)kZYtO7&*t zwR(kHvZ*2XkdseVz$phaUAgmJ|AOmYU99m1?p(Z#dTTHDT;s&f>vSA8iLR8>O}W<^ zqC_1czqg&*w8EDjl8#hox~GeoVS6ajv5F zeeT5BY9L)%#Q{QoP<}v{H}-0DMb$u9;8$sZiu|yE5_b8b*YHl}Jg$W`8%=3J)xiGMo@)J$`;~a0yZkRRGl+{CXBp99!8V?*e_+{MB(Y=0Q0nqKEL2c?= zAKDwapDGA0x+StATG}^ktETu{m))O=+|pDWS7jIK)fkg9eX2#w3tsiZg>)aeSF-kd z?dlC1Qh8ak$7j~wiH=E=JnEi7_G@2Hep0&>lk{x*@C2DcI6%4YUEY+#DL>1>KicUd z;*swYz=lQNRMN(rz=tc@4^xO9N5N`)ITK#IKc8~sw~-)x&)I=jj%QxkwnXki^}y#B z%0pfUA0O6Y5J)EV_YHi&rE0pvCg-y<>K->EDQ4OAU&l@Tyw_&na%5;IQ>b<@CSNf% zW6Fpn&+|%RjzJu9u-RFnM?LgS4JP1vBND_V$J3uZ%2z* z)6*aNiHE2GhoVt+3sJ%s2bVipkFRx^H~0=*5$LA#afDY?S%USJoC{&s0>b{WzlY5V zNtR#&g2s0{C7>@&O=Wi=JSRDhm;^bmkxWd$4S$kF&{odyNY50#Fh1RenLuQoh;JflM#?0yY2BXQ=Hwc}qCVKPLq5=U_k-lKHd$S9 zRpA2O?j3KASM>ZU_@TD>-tQ?6OD|Jo!rFd^+*s2&#pz>a_;gQWZc|Mn4QwcQ(2r_L zx@@x6&r)96M?@z;)B%=#^xUs*uWMZ3*Xp6Uy!lL@uLBmzeZ_X48Z?8Ln4GQ)m z&EnXW4m6ikHi0mmGj6s#hiXCFK=n%gFl$rw5mX+jT0Vwptf#N0sh*_R*~z-a;C!Kb z=l&11|E$^_ zRsJukI6)^PMa2nPE>1u^>vH;l;=^M!@Y?U~ JL36`h{3jVUiShsd literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment-members.html new file mode 100644 index 000000000..6289a393a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment-members.html @@ -0,0 +1,51 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoSharingDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoSharingDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + +
alphamoeoSharingDiversityAssignment< MOEOT > [protected]
defaultDistancemoeoSharingDiversityAssignment< MOEOT > [protected]
distancemoeoSharingDiversityAssignment< MOEOT > [protected]
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
moeoSharingDiversityAssignment(moeoDistance< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=1.0)moeoSharingDiversityAssignment< MOEOT > [inline]
moeoSharingDiversityAssignment(double _nicheSize=0.5, double _alpha=1.0)moeoSharingDiversityAssignment< MOEOT > [inline]
nicheSizemoeoSharingDiversityAssignment< MOEOT > [protected]
ObjectiveVector typedefmoeoSharingDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoSharingDiversityAssignment< MOEOT > [inline, virtual]
setSimilarities(eoPop< MOEOT > &_pop)moeoSharingDiversityAssignment< MOEOT > [inline, protected, virtual]
sh(double _dist)moeoSharingDiversityAssignment< MOEOT > [inline, protected]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoSharingDiversityAssignment< MOEOT > [inline, virtual]
moeoDiversityAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.html new file mode 100644 index 000000000..97d76ae07 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.html @@ -0,0 +1,347 @@ + + +ParadisEO-MOEO: moeoSharingDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoSharingDiversityAssignment< MOEOT > Class Template Reference

Sharing assignment scheme originally porposed by: D. +More... +

+#include <moeoSharingDiversityAssignment.h> +

+

Inheritance diagram for moeoSharingDiversityAssignment< MOEOT >: +

+ +moeoDiversityAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoFrontByFrontSharingDiversityAssignment< MOEOT > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

 moeoSharingDiversityAssignment (moeoDistance< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=1.0)
 Ctor.
 moeoSharingDiversityAssignment (double _nicheSize=0.5, double _alpha=1.0)
 Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default.
void operator() (eoPop< MOEOT > &_pop)
 Sets diversity values for every solution contained in the population _pop.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)

Protected Member Functions

virtual void setSimilarities (eoPop< MOEOT > &_pop)
 Sets similarities for every solution contained in the population _pop.
double sh (double _dist)
 Sharing function.

Protected Attributes

+moeoDistance< MOEOT, double > & distance
 the distance used to compute the neighborhood of solutions
+moeoEuclideanDistance< MOEOT > defaultDistance
 euclidean distancein the objective space (can be used as default)
+double nicheSize
 neighborhood size in terms of radius distance
+double alpha
 parameter used to regulate the shape of the sharing function
+

Detailed Description

+

template<class MOEOT>
+ class moeoSharingDiversityAssignment< MOEOT >

+ +Sharing assignment scheme originally porposed by: D. +

+E. Goldberg, "Genetic Algorithms in Search, Optimization and Machine Learning", Addision-Wesley, MA, USA (1989). +

+ +

+Definition at line 28 of file moeoSharingDiversityAssignment.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoSharingDiversityAssignment< MOEOT >::moeoSharingDiversityAssignment (moeoDistance< MOEOT, double > &  _distance,
double  _nicheSize = 0.5,
double  _alpha = 1.0 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + +
_distance the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space)
_nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed)
_alpha parameter used to regulate the shape of the sharing function
+
+ +

+Definition at line 42 of file moeoSharingDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoSharingDiversityAssignment< MOEOT >::moeoSharingDiversityAssignment (double  _nicheSize = 0.5,
double  _alpha = 1.0 
) [inline]
+
+
+ +

+Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. +

+

Parameters:
+ + + +
_nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed)
_alpha parameter used to regulate the shape of the sharing function
+
+ +

+Definition at line 51 of file moeoSharingDiversityAssignment.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoSharingDiversityAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets diversity values for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 59 of file moeoSharingDiversityAssignment.h. +

+References moeoSharingDiversityAssignment< MOEOT >::setSimilarities(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoSharingDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+

Warning:
NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+
Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+
Warning:
NOT IMPLEMENTED, DO NOTHING !
+ +

+Implements moeoDiversityAssignment< MOEOT >. +

+Reimplemented in moeoFrontByFrontSharingDiversityAssignment< MOEOT >. +

+Definition at line 80 of file moeoSharingDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoSharingDiversityAssignment< MOEOT >::setSimilarities (eoPop< MOEOT > &  _pop  )  [inline, protected, virtual]
+
+
+ +

+Sets similarities for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Reimplemented in moeoFrontByFrontSharingDiversityAssignment< MOEOT >. +

+Definition at line 102 of file moeoSharingDiversityAssignment.h. +

+References moeoSharingDiversityAssignment< MOEOT >::distance, and moeoSharingDiversityAssignment< MOEOT >::sh(). +

+Referenced by moeoSharingDiversityAssignment< MOEOT >::operator()(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
double moeoSharingDiversityAssignment< MOEOT >::sh (double  _dist  )  [inline, protected]
+
+ +

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..4bb9a13c27a3fc2417bf22a8ec74a3121aa5b377 GIT binary patch literal 1935 zcmcgtYgAKL7LL^_k5N>Fh!qg4pkhEORl+slQQnw{V0m~!2sUXk+$bQSAf(73I^YOM zGf)g5Q65p~kb)2-B)JLJQBd-L8VrIF(^%K)ulX~xX3dX%&bQY&d+ojU zx4ymq5gf?B9BMu)6G#ZU2Xf*b)*-2$4 z^t<)+^qlK6J~g>3&PEcWP`=Yr3JSGmXJ~-mv9DR$8ZiBa*ZRN`_EM1ieC&D7m!H{r zY?w4|TwNEr?F5--qXN^<$gLvId+qS2V{casbgzA(U);|VLSQKZJ50#DpA~oP>v&!A zx-|aFE}lgcRZ4sP30hj@QGaq3N4xmxDo2o2Iy4y!Dt-A&D5TNLn+!TehQG|(g7CJu zUD9R3#3$G8SG4fc0C=5aGGM{vCdli{*K@YoW;qQ>8U*%;s%jxd0ijEgq!I?%fPDg2 zSr^1Kad+Op`VBy59%oD!cK`Ig96p3Q-cIgT2QB72^xLBc*N`l?y_p|6;QN(m!2n7v zP>>AHtW?4_8(>sn+lSiNr+H8A$i>>|up>VBy2JT${3(DuTm}8A4k9#i7t){!$*>Ds!pi4h8a7r( zfcC|AzuGJA`5_M;SKP$HV`^7qQ^EeuhSY}3x4u0zRr%LAg*?wp*c)QD+fF3;N20WL z6laHA-)fG9)t>vPKD_Y>;n}E`RQD3?d>T;aPSgr#S!G1$O)L4sf)2z-kULr&#I}8g z?Tr^L(LG!QtO461?~Fe4wnLpU?XzC+Es8QNHF4_I+i2l4xFwhhYqFGPS@_rh=?7*I zIktn0L>GMy!jO{8hXVf>t$t5XS=jPzW5MMSd7|z#a$EuHd!SEel18uY|E^EbMt1Af zA4%Cx%XFR>j?Np8Osamcq1{i{ zI!R#WGs4j4CM0pV@3H0mM_ipgj|da(cKr$OIp#d4DjJ(fo|99qB_L;=EJ11;gzl;h zLw60*iKsD+J7&>Fd?6+egQ9$VotH^#vq*2^H_Rkg%7)F8DA!8s(^Gt{L?edO=z9y< zoze?%RCMfS4H!KLPYDuA3!_XwrM4LbLwx*@^-Lc?eKExRsB}X}O*h zQj#!H7pR{DwEoC|Fso+lWH2Hic-nOpM@k+GsO#ABAl$Opp7quaL|c8oV*GTCgVMH( z_nd+#YVo>m#faKXa(%XW`F@lt3+m#yW^4w5)}|Zb5}(__3@(p=zTMWb8ljJpjIr`7 z!j8+@^4TM>oZy{#=U+4`uYa3my( z@!FF%$iQ~^B7Cc#u9M3KVVmJ!efnfL{tK3M>Rs)a z^E)bML|7+wh-#;(ii&-7*UN?VOXCxQA=3ww2y53t2EA&H6n}*g(0XM1mAadY%C{J&M;qcl+zUM)vwoDU zy|wgRCfA{gX%O#|;<$c8dl0ayOff{AOV#Ii=3BDVO4IOgX6-h zP#k@5wd&=j5cVFbjI;e>V7Uw15?roRk-|aODQ3~nif3fA+VT0R W-9Lv^r&OD^Cn_|M7|`mURPY-p2%_cy literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric-members.html new file mode 100644 index 000000000..ff946811e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoSolutionUnaryMetric< ObjectiveVector, R > Member List

This is the complete list of members for moeoSolutionUnaryMetric< ObjectiveVector, R >, including all inherited members.

+ + + + +
functor_category()eoUF< const ObjectiveVector &, R > [static]
operator()(const ObjectiveVector &)=0eoUF< const ObjectiveVector &, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< const ObjectiveVector &, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.html new file mode 100644 index 000000000..8823c6ed2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoSolutionUnaryMetric< ObjectiveVector, R > Class Template Reference + + + + +
+
+ +

moeoSolutionUnaryMetric< ObjectiveVector, R > Class Template Reference

Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoSolutionUnaryMetric< ObjectiveVector, R >: +

+ +moeoUnaryMetric< const ObjectiveVector &, R > +eoUF< const ObjectiveVector &, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class ObjectiveVector, class R>
+ class moeoSolutionUnaryMetric< ObjectiveVector, R >

+ +Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. +

+ +

+Definition at line 43 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..88515c6992b9217ff90778aca470712708c33d75 GIT binary patch literal 2041 zcmcJQc{~(a8^=Y;5{kUC6f;?}M9PwViLzvkSuz>LU`Db{Vi;m(gqw`*>N8n-X{u=! zykim~+_;&xYZz;B`+cAD>hoqy9 zVXeNN>iAK=;9KhSeHrz~<8WKK2UIUwcj6*>&vI%_iW!*2E~5Sf0I7y*9~**%&_Y@0B3ghhJ*Ar zh9`3JTq^CXtoO|Ue35B$me|4(XgMz`UvK7ON_P=WHUOhaWu`_io4ttsb^Urp63s?! z{Njr*v@}TN7(!m;JIvd%5#m>DI&r%N}w=g(oMis9$ns zi?uPP-@1P>-(jhBOIy{j<#tJMmxoCxxwMY+8Zt+C{rR&=A!zqT`M_m?HG^`7Fe}@m zB;7Nxnhv&ss8pG__-H%A;U7POgCNS=o*O(n>X>woN|m1Cw(kPZu5in4-EUX09}B<$ z0Rrb0m+udigWp-{|1y!2(aQL?YcMwi3;5Pg{Jv9B9fu8>6G_vgXDHL0Fprcwebyv4 zBsgzM;jLfZX3T_I!UYptWIjSUcW5waxT+FrHy7|~<_!F9J_u6MziBwIm$|%rfH&cS z=`e_uiul<;g`;%%0YEtupB{e%f6!#!|1k#g>0EYtPN38j-O8;5S|`o!sXeY8m`ca6 z3pyHatYkG3nMc-atFTJ|_y>)t7rGAOtVxdzKtt0sQqyqJnRipqew{z<8}XH|WLWBt zh`p?odI{R;e2h_N5ckFOVY_P~A9c7t7^Jw>(t%2lYFWF;H(MpEf;nWiK~sgY-dQ)j z3j&Fb4thOpji&J+jSh9l4fO7Jl*OTE_kkomQO`BOb>%p}@GwMYU}muql<*-|yC_8dpbZ8Brx(-%2N$2q_nNF3^G|GpB7U0}v5kxPilpj@L&$e>GFJ%C zvI_rKl1M_+3<|Zq%;;s^O@sfSy%VN?oZ+wCTjC(F@a|Pt@X=(0mmiN;?Xa_R<|9yo zz0~t?ojsQbE|TMC;o+mwyUv!k^UfWU<+$(-Q{NLOEbp+57u6@PY*` zK5_S4ITh*HgqAi=q-8Eb%#)8e1D#A~y*#9#AGHI|cE?RFbQr9*cu6Xrq`EfY(_o!T zCm2_L^2qYNr&zTh$-`W)jANDI{5iEVH_Mj4h z!elGWf*e0oaD3(+?OW@gJ{;LnE*Bn4pG9fU%&Vl9V(yB@ZYGO|AZUF8!I~CnGK@A# zr1Sm@&R<3Q8!i8)TO_f(k4WDqb0`S~wHk}1fIt0vtS*nIKzs8%KAWL(q48nVtiMhwmO&O(wakTl#T3F3L zXxEs*Tr6=hU&E&%j))~%vfQ6Ckw%t#o;Nq9YE6hZa6;k0PO9Pm8hMB%dS0tnxK>bg zuF2a0#!sdl8~?|c~*s+aYr9thLDB+Aob N?ylZ04Cj!{-vNPb`RxDz literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric-members.html new file mode 100644 index 000000000..cc3c993e2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Member List

This is the complete list of members for moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >, including all inherited members.

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


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.html new file mode 100644 index 000000000..9f25989ae --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.html @@ -0,0 +1,63 @@ + + +ParadisEO-MOEO: moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Class Template Reference + + + + +
+
+ +

moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Class Template Reference

Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >: +

+ +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase +moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > + +List of all members. + +
+

Detailed Description

+

template<class ObjectiveVector, class R>
+ class moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >

+ +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. +

+ +

+Definition at line 57 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..3b831c9615216c7d52b9dbec9083c45d7d946647 GIT binary patch literal 2700 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 literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect-members.html new file mode 100644 index 000000000..61acf6b3a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect-members.html @@ -0,0 +1,47 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoStochTournamentSelect< MOEOT > Member List

This is the complete list of members for moeoStochTournamentSelect< MOEOT >, including all inherited members.

+ + + + + + + + + + + +
comparatormoeoStochTournamentSelect< MOEOT > [protected]
defaultComparatormoeoStochTournamentSelect< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
moeoStochTournamentSelect(moeoComparator< MOEOT > &_comparator, double _tRate=1.0)moeoStochTournamentSelect< MOEOT > [inline]
moeoStochTournamentSelect(double _tRate=1.0)moeoStochTournamentSelect< MOEOT > [inline]
operator()(const eoPop< MOEOT > &_pop)moeoStochTournamentSelect< MOEOT > [inline]
moeoSelectOne::operator()(A1)=0eoUF< A1, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)eoSelectOne< MOEOT > [virtual]
tRatemoeoStochTournamentSelect< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.html new file mode 100644 index 000000000..7e840c964 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.html @@ -0,0 +1,196 @@ + + +ParadisEO-MOEO: moeoStochTournamentSelect< MOEOT > Class Template Reference + + + + +
+
+ +

moeoStochTournamentSelect< MOEOT > Class Template Reference

Selection strategy that selects ONE individual by stochastic tournament. +More... +

+#include <moeoStochTournamentSelect.h> +

+

Inheritance diagram for moeoStochTournamentSelect< MOEOT >: +

+ +moeoSelectOne< MOEOT > +eoSelectOne< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoStochTournamentSelect (moeoComparator< MOEOT > &_comparator, double _tRate=1.0)
 Full Ctor.
 moeoStochTournamentSelect (double _tRate=1.0)
 Ctor without comparator.
const MOEOT & operator() (const eoPop< MOEOT > &_pop)
 Apply the tournament to the given population.

Protected Attributes

+moeoComparator< MOEOT > & comparator
 the comparator (used to compare 2 individuals)
+moeoFitnessThenDiversityComparator<
+ MOEOT > 
defaultComparator
 a fitness then diversity comparator can be used as default
+double tRate
 the tournament rate
+

Detailed Description

+

template<class MOEOT>
+ class moeoStochTournamentSelect< MOEOT >

+ +Selection strategy that selects ONE individual by stochastic tournament. +

+ +

+Definition at line 24 of file moeoStochTournamentSelect.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoStochTournamentSelect< MOEOT >::moeoStochTournamentSelect (moeoComparator< MOEOT > &  _comparator,
double  _tRate = 1.0 
) [inline]
+
+
+ +

+Full Ctor. +

+

Parameters:
+ + + +
_comparator the comparator (used to compare 2 individuals)
_tRate the tournament rate
+
+ +

+Definition at line 33 of file moeoStochTournamentSelect.h. +

+References moeoStochTournamentSelect< MOEOT >::tRate. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoStochTournamentSelect< MOEOT >::moeoStochTournamentSelect (double  _tRate = 1.0  )  [inline]
+
+
+ +

+Ctor without comparator. +

+A moeoFitnessThenDiversityComparator is used as default.

Parameters:
+ + +
_tRate the tournament rate
+
+ +

+Definition at line 53 of file moeoStochTournamentSelect.h. +

+References moeoStochTournamentSelect< MOEOT >::tRate. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
const MOEOT& moeoStochTournamentSelect< MOEOT >::operator() (const eoPop< MOEOT > &  _pop  )  [inline]
+
+
+ +

+Apply the tournament to the given population. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 73 of file moeoStochTournamentSelect.h. +

+References moeoStochTournamentSelect< MOEOT >::comparator, and moeoStochTournamentSelect< MOEOT >::tRate. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.png new file mode 100644 index 0000000000000000000000000000000000000000..640878725c923b1c7eff7a8a12d0736e25c8b8d1 GIT binary patch literal 1089 zcmeAS@N?(olHy`uVBq!ia0vp^UxD}s3p0>B#<;fwNJ#|vgt-3y{~yTw|Np@J`3Vz% zEHFNB;6U}E|4)Ei#*!evU&kFzp2*S`7qt#X6M?EW%aYC-oHD4UuYw5^>%@YH@lXa{b8@p zIuay3eRo{?ag%!{yAA|(7(S8W+G*92^O!fBQ(X zJfHKM1+V93{njdbb+4~F>-3!Gk{y#H_MG4|T9!LIS#gg*@$+leuTC3m&R)B{^RvVZ z57WR$bFNzltr2~GUHry|#OvFl>)h*B|Jif>PxRaP{_0!($It7&-F?h52Pk>CjaS+X z$XLHMdfxB*U#qy^^lxW=?&B4w^i4JJtJAheytiZK^3Pc%#rJqC%iYdB2k+=TUY9<- zrt{Xs&EmClZXZ|wH|6Y2K}&}0*Hz&s0;m3&p|bqYi>ZaLyBGiH{1b5{W@1>|&#Lf~ zXV6Lu57{@--}`G&;#Acy8v=6zUe_9^-M zruR}nF_`-j5AVB{SNX2~`fJ?{_80n=tQ6EuTw%ETgtEGU$Gjr5$2UX&FmF?1>)E>_ zTIacdhu%H!ZytKD_9x!9&dk{1sPp7@`mZA9nOnd9Q}SKACq27OrET9Gt0R)a8^6XW zo$Eg`vRf zfdRbr?X>$7qvuK2tnU4DWA7WBq0hf{^^+5Pw?d0jqRYNgE<1JZZHbE>vtQOH?%U$G&wYHj zbnegnf6OZHemnBJxb&B&>$i()nU@8>AD0h*nIIu`+poWG_gC-R!S7Bzzqhk}o%U^& z-><`7ojM)uEPU??+q#km6?;|&R_)EQw!bxZ{telwc2@RVOaJ}Z;^}_vS@N4@Wl?F? zd6ru`eU~skD9?3IDsK0aezNV7V;l!B%k|tdmG_d(@?7WL*w<4nu}<;L4)eED3#YG~ zx9(uV + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoUnaryIndicatorBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.html new file mode 100644 index 000000000..f309d2da0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.html @@ -0,0 +1,61 @@ + + +ParadisEO-MOEO: moeoUnaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoUnaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference

moeoIndicatorBasedFitnessAssignment for unary indicators. +More... +

+#include <moeoUnaryIndicatorBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >: +

+ +moeoIndicatorBasedFitnessAssignment< MOEOT > +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >

+ +moeoIndicatorBasedFitnessAssignment for unary indicators. +

+ +

+Definition at line 22 of file moeoUnaryIndicatorBasedFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.png new file mode 100644 index 0000000000000000000000000000000000000000..0f96bc66f530df32db0c062b30089a94ab5ff5e0 GIT binary patch literal 1628 zcmaKte>Br;9LHBF<)T7yC%@|YF%|jMMxsoYVH1|hk3{ipLbfSmn^G5Xb4%DVUt5&9 zN~9m6*qOz&er!U?kD2_MXN9>fZ$aL9>_$TBXUSGBCJAbV*q^Zk_Jn9seU=Gbi@iD zFnUgDN87Tz97jbfx+!6n1AeO{K#J3KVybfR(?g$~vl4-*jfa?hD4$6zOjsZ;Rg` zyy^MjeNW2SjIx)LtDsq`cam2c3(hO0b#-+&*Pg-|2%~3wUF-kd@ApHTG7#Rh=f3aR z*4t974^!U?2flcS?`K>WqTe=IQDF*FYjLqxq~~*T8B#JLXMDVc7p%<#?2%znp-ME> z954^`dVJ8}S2$8vAHQOWmbiQ+;A?DmKM0JOTO%AE@CrN@!D;Rv3-H;fS(IqW^fN7W zGkQs~Us#sG%H9;t}Szf{!GB z`H%Zdu*v>Ww2raZGrW-fj3sYof!`~dm@Z~E6WRg>D`1M`Ek7QJc{L3317tDAS6Nf$i4t<(i{9~M_4;>nfVC~0T_c$BEfv-mICPy_UbE);`#I$+d@yP+}Ba-jt+`)9Mrxz)JRkQ%>rRm9^(6C<2tdj}VBo^%kOGgged&N09GQZ_YCFYr(t7A`)$Z}Hl>xN<|h>2{Zv^Qzm`vQ0xd%>_mJH}QzNZ`?;A zK!o1sm%T_#r};mI@KG+$=eY)${$Huz1t{am_?<^Z2vXyP@BJbX&!~nuCyKGR!Oc^7 zueVrI3md{G_d~x$>g`}=9&7F7If3Zb;1}3+xB7SvCo7G?XHgxG8cL!Q&m+*3?Mm~> zz?vi4^aIC7hY}-xK90|~JccWKJ537l2lhU-3XK>J5*U_ z$J)z8GyY-#*B$$Eyb6naE$|PEzT$Ku@p{~$Kl0n+j^?=gZqO88L1P{eFb$*EO(SP5 ze(7py&h7xV6r)FP+Zu<3m*$7ybP#P_^-<4oRe9a)U1*&uH0p9iJlnRDcaN{y4w#7^ zO2UPwC~?9J3Ju|9GkW*ktOn1M%7Kp(U!=OF23>^Kf?ZZpvR{ZPt3I?$Q9qGxI_yiE zv(x003n;+TnJ<0g3)JYvXz@<^(13g`zfeaKFL%ZyAjE|)^1pbDnW#OP|2S>BLoA+O Z4ZqxArtKpnsJ{XTY7fS{*6Z-uzX2siGmroP literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryMetric-members.html new file mode 100644 index 000000000..7428da35e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryMetric-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoUnaryMetric< A, R > Member List

This is the complete list of members for moeoUnaryMetric< A, R >, including all inherited members.

+ + + + +
functor_category()eoUF< A, R > [static]
operator()(A)=0eoUF< A, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryMetric.html new file mode 100644 index 000000000..f06c1e18b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryMetric.html @@ -0,0 +1,61 @@ + + +ParadisEO-MOEO: moeoUnaryMetric< A, R > Class Template Reference + + + + +
+
+ +

moeoUnaryMetric< A, R > Class Template Reference

Base class for unary metrics. +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoUnaryMetric< A, R >: +

+ +eoUF< A, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class A, class R>
+ class moeoUnaryMetric< A, R >

+ +Base class for unary metrics. +

+ +

+Definition at line 29 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoUnaryMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..faf9e9ecc158731c8ac2fe77ce2566f655940ca2 GIT binary patch literal 956 zcmeAS@N?(olHy`uVBq!ia0y~yVDtmBJ6M>3WYunYcOWGZ;1lBd|Nnm=^Z)+?^XDf_ z0J6aNz<~qRhyFhSav4j4{DK)Ap4~`eU|#7z^`_buuKex7 zyI@kRX*z#L>iMXw#vS)Ui^FQ=st<0SG)sAw^|c2bw`w#uNKW36`L?6%v~2Ow&Aqb} zto=Y#9t+>H>%eoHd z^JZD!&Mh~(xcAkcQ~EvW!e28~TOBV%C*A(F$4@u>8OuMH$seb_3>VV48uZ@u%E$Zt zS)Fe>y;J;Sl&T*IW!ik4pO87P`~0!%FO}D`*p-T$|ITkUsl}?}`SstuK1&w%J+kzX z-I)H~MM|sso8OX!n+P%O-gkv~!DYT$=p0C!#~# zrgX_U>8tZPCk1&+oxCidST!x_c<}CbOicc{jg9LRD|V@=-99`eH&vtZ*t6ajnU(vx zlRsYhdD8wv$O7?QoAL_l*PA|BqW(i~?G@uS=l8s5On(t_vf|y=TT^U$J&oo$X1u%F zy?w5z?MunoGpAhom?b(-Yum>k#d{}o?X60z-PZejOGVr2(8{!H&yQ`+tIc~>dn+&I z^Bip>+v0b%*(=MJZ@E&Pv935YB=G(3z&Dp{zOCt9JM-%+-0MU;xBDa@xOrLLVrry2e)ch|dyC)P2Jo?Pz!= zdF;rE9r@o@IsNFFa_NnQ|7LDA{g{7}{+!oBq*(u-UA5D9ak}uK`(3sQPyYTmwLsiv zb8_FypOfV0y{o!ZzjWTa2@8M$@RifNl4;32rYAZ1ag1W;4L++qwOuTG$7J66E0_D1 zb + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > Member List

This is the complete list of members for moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AtomType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >
className() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
ContainerType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >
Diversity typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
diversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
diversity(const Diversity &_diversityValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO()EO< MOEOObjectiveVector >
EO()EO< MOEOObjectiveVector >
Fitness typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
fitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
fitness(const Fitness &_fitnessValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::fitness(const Fitness &_fitness)EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::fitness(performance_type perf)EO< MOEOObjectiveVector >
fitness_traits typedefEO< MOEOObjectiveVector >
invalid() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate_worth(void)EO< MOEOObjectiveVector >
invalidateDiversity()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateFitness()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateObjectiveVector()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidDiversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidFitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidObjectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
moeoVector(unsigned int _size=0, GeneType _value=GeneType())moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > [inline]
ObjectiveVector typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
objectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
objectiveVector(const ObjectiveVector &_objectiveVectorValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > &_moeo) const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > [inline]
MOEO::operator<(const MOEO &_other) const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::operator<(const EO &_eo2) const EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::operator<(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
operator>(const EO &_eo2) const EO< MOEOObjectiveVector >
operator>(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
performance(performance_type perf)EO< MOEOObjectiveVector >
performance(void) const EO< MOEOObjectiveVector >
performance_type typedefEO< MOEOObjectiveVector >
printOn(std::ostream &_os) const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > [inline, virtual]
readFrom(std::istream &_is)moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > [inline, virtual]
storage_type typedefEO< MOEOObjectiveVector >
value(const std::vector< GeneType > &_v)moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > [inline]
worth(worth_type worth)EO< MOEOObjectiveVector >
worth(void) const EO< MOEOObjectiveVector >
worth_type typedefEO< MOEOObjectiveVector >
~EO()EO< MOEOObjectiveVector > [virtual]
~eoObject()eoObject [virtual]
~eoPersistent()eoPersistent [virtual]
~eoPrintable()eoPrintable [virtual]
~MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVector.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVector.html new file mode 100644 index 000000000..29bef36d3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVector.html @@ -0,0 +1,264 @@ + + +ParadisEO-MOEO: moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > Class Template Reference + + + + +
+
+ +

moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > Class Template Reference

Base class for fixed length chromosomes, just derives from MOEO and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). +More... +

+#include <moeoVector.h> +

+

Inheritance diagram for moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >: +

+ +MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > +EO< MOEOObjectiveVector > +eoObject +eoPersistent +eoPrintable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef GeneType AtomType
 the atomic type
+typedef std::vector< GeneType > ContainerType
 the container type

Public Member Functions

 moeoVector (unsigned int _size=0, GeneType _value=GeneType())
 Default ctor.
void value (const std::vector< GeneType > &_v)
 We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor.
bool operator< (const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > &_moeo) const
 To avoid conflicts between MOEO::operator< and std::vector<GeneType>::operator<.
virtual void printOn (std::ostream &_os) const
 Writing object.
virtual void readFrom (std::istream &_is)
 Reading object.
+

Detailed Description

+

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ class moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >

+ +Base class for fixed length chromosomes, just derives from MOEO and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). +

+GeneType must have the following methods: void ctor (needed for the std::vector<>), copy ctor. +

+ +

+Definition at line 25 of file moeoVector.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ + + + + + + + + + + + + + + + + + +
moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::moeoVector (unsigned int  _size = 0,
GeneType  _value = GeneType() 
) [inline]
+
+
+ +

+Default ctor. +

+

Parameters:
+ + + +
_size Length of vector (default is 0)
_value Initial value of all elements (default is default value of type GeneType)
+
+ +

+Definition at line 47 of file moeoVector.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ + + + + + + + + +
void moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::value (const std::vector< GeneType > &  _v  )  [inline]
+
+
+ +

+We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. +

+

Parameters:
+ + +
_v a vector of GeneType
+
+ +

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

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ + + + + + + + + +
bool moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::operator< (const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > &  _moeo  )  const [inline]
+
+
+ +

+To avoid conflicts between MOEO::operator< and std::vector<GeneType>::operator<. +

+

Parameters:
+ + +
_moeo the object to compare with
+
+ +

+Definition at line 79 of file moeoVector.h. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ + + + + + + + + +
virtual void moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::printOn (std::ostream &  _os  )  const [inline, virtual]
+
+
+ +

+Writing object. +

+

Parameters:
+ + +
_os output stream
+
+ +

+Reimplemented from MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >. +

+Reimplemented in moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >. +

+Definition at line 89 of file moeoVector.h. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ + + + + + + + + +
virtual void moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::readFrom (std::istream &  _is  )  [inline, virtual]
+
+
+ +

+Reading object. +

+

Parameters:
+ + +
_is input stream
+
+ +

+Reimplemented from MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >. +

+Reimplemented in moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >. +

+Definition at line 102 of file moeoVector.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVector.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVector.png new file mode 100644 index 0000000000000000000000000000000000000000..a40378e79e784bb17c3e67e6e11eb056761073fd GIT binary patch literal 2359 zcmb_eX;c$g8ZC*A;({Qp?TBnfK@ZBJKr1wYh(bhm1UnEAfwV{xRF*Wd1eHxu0n>_=eJqPQ~Jy%U@JrDZsQ!14zs8lwVmLADbp--c+ zu`%J1azs@wi1Bv!0USnO-~nJs2gYfS?@vWYaln=Gotpa$jmjS8#u?yI+B_d(UDq@ z3qB7;$a>&DslP`U3u`pf z5}C!qk)X&^wjWrQMq!2O5Z)0i$RU1)4$3++wV2W!t2!4f*}K682;pU$#VmZJ0pW+n zP0IFa;#;j(Yw4z#Z!AM;raQ#|k8(0K9M*pBc5zy4u>AZOkZSmUZW^NPSE6>Q^=aQ? z8!i%`_bItYm@@c-MWU+KA)~`0PpV4R;F;lhxYCE{nC@) zDt=yLvdM>UyL?AQq&+(59#FTi|W@38Y&NuRl|{meEGOkpTIKZw#yNco8D&O zhx>a>OrJ$SQ%BGl)xtAR<2P{FO!q;3Y-5|H1}J$VIdooUS6@Aae}x zRH*?R)86D&vQvyP-t19i?X~J7Q88zyn$b4EH(I*D*-Q;!pVQ(LgEEwZ)_=ZQqSE<) zcs-DnmpK`4oqS#8fInRPg`xin5(U9y%Amz>S3c+tnM>nXEdsuD9Vc_(eeYBG#!$m> zvP*FF_pSZ1u*DofcUW%8LC|c2t4$Y)9`I5^@a1d@nBw_0O=pM6sfmqo`FnnQL5lcZ zx)}b>-zS=WG0=+W)8Q=YqUJT@MCtxHNY)tP7REO9!>->DS&^Q+Tsk<;@#cwJ!sQzr zpWeUc=fx&U0_{OEZ~U3GXjlL)K_ujWq>eq@d;P8OA96l1LMdF!iE;3*+LW`SY9`5Y>O zv%hX+0)399lie<3=@@2+NO>kOI*{{@;4liC>(fQ_0f+>u)-lE`24@GcFgjZ_Sbq}T1GH^Pa)hoxz z^)6v@9a!IG%Bpe`E{pZ;6N|!&0S&~^USjF^RpbVuDP-MEilEh;+~#&8dj8;U(}a6k zZLz(~w4MSIl-wyzi{Nl-aTlJqzpY1NqdLivYEbgPobI(?ec^~deRiFw3+B|5R<@_d zMhzd{l32R;pejW5IQ@#>ErSO!+a7~a%aHf8Hwj4(aXq(p)F*^sOkvSG?9eT8*Isu1 zfdili03{pSJx{2(8MJvDoPWl3DlcCA*y!IG{)uo+c)zmV3^YAoI2bL9U`eLfuz|J5sfayffZ?<;e>YNvmh-K@}EvQQ4?sGNqAof7YXXfpJJ zP>G_IitRcVzcD0G+9&EtD=4vZf7(m9TsAnQ3kL`~Twl*K>?8Y_dY6B~CwR8cd5+zi z*vl>4A624zK@75Qa&t4>W-X9HIL8%T5$7=}Pi%a7d22r-H?H~0WkH5pRa*mvCaJ}a zLiE$`7tBt@L-95}hrQu|@pDw}C$ITHy)${1^G2u!bCg6{3>;Cdws zeU<-vf&4_w3q8@P=4Txv!z$~|rrm!ccO({IH@f1U*7@8XuZzz`NXPu(Zp*dsEs%w7 zb19TOkm$n1U+of-Vu=&Am?&Fi;3&uzm{VJ%AIz!wg2@N$3AS%QzrNC+f878<<8vT)b6WFtXsN;RB@X9ZC6^8)&c+G!0}tL&6B$*KiG_)(V( zu|KAQQOSqpk__wxqG(Nzc + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoVectorUnaryMetric< ObjectiveVector, R > Member List

This is the complete list of members for moeoVectorUnaryMetric< ObjectiveVector, R >, including all inherited members.

+ + + + +
functor_category()eoUF< const std::vector< ObjectiveVector > &, R > [static]
operator()(const std::vector< ObjectiveVector > &)=0eoUF< const std::vector< ObjectiveVector > &, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< const std::vector< ObjectiveVector > &, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.html new file mode 100644 index 000000000..640c5cc8c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoVectorUnaryMetric< ObjectiveVector, R > Class Template Reference + + + + +
+
+ +

moeoVectorUnaryMetric< ObjectiveVector, R > Class Template Reference

Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoVectorUnaryMetric< ObjectiveVector, R >: +

+ +moeoUnaryMetric< const std::vector< ObjectiveVector > &, R > +eoUF< const std::vector< ObjectiveVector > &, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class ObjectiveVector, class R>
+ class moeoVectorUnaryMetric< ObjectiveVector, R >

+ +Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). +

+ +

+Definition at line 50 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..7e9c163bf4aac2c37766be9f0ecc36f89a08a11d GIT binary patch literal 2011 zcmd5-Yc!kb7XHwgmbTK%6s@DtQD%BUX;q^niVkXohDOK)#m$-bsaUqKKjz2$c=vwZwfFmHKhJ*N zByY6qW}RI+003-ucXPo2faZ!CH>}fA$3!p5I(0Je{?_-TN~Kamm8yZkxR9nsYp0>1 z;dYa1M19q`fkFEKj$^%70APKjyUPh*Qm#DD@A0!^TTbq=WAPtF8Q;<}I&9cxIYZTs z$H0CP^g8UT)f4(S_!y+s+L^Z>YZ6W?!?K0(x_g*lP-vz!w0=_Kh*5xi*c)`~MsBOF zZ#3|+C&pB~Am@EJ2xjRPL@nXnvKG1W=NMrnbrLAO8{L)h)a*VC1xXRIMFUy1pG+{P zO-7sU?|0o)aGt~eYuKMc)03+8onD* zqX&wG)@0JV755Q6%aAYEI^T8gqzUF8haBLOunbTPdz*ppdgWQCBkkZ)djMfAJ|gol z`nG>9{w=<1r?|~Qgx9*d@`A+|zhWvLl~DGEz>_4dtTkx+15N3DH$j0qO|-Z{R24f< z0NXYgIqERAHY~*yY~K)k3-C-_JmL`765qM?vN{(DZcBCpOf9!PHvsJfUE{l*8hf|c z#eLzlKFx6gz^LD9{*#MB`EKYlO>H@>VA67sl(XBhYp4gQTTOG3n{YUkc6?jZ#*3U~ zajE~$r7Tuua=L$|P1a6{?~m?c`-AZ@cPNG`x^2j;M49fvza}j&{V#_odk&HN1lHO5 zy|#P|W&=^vYiiuuvk2{ju4+@CL;>f@!Hwc^40zih34in3oV$QVsFB=;-BwV z%?!UPG0|_FQy`cXt>-w#^6enU96DaqQWWBTbgY_U;g*?CMx04|d`j_TJ*)NWLo;88tcFdA z!kW87u}Tt7weLFB=E)V19fEKgOM?7!tPM5>GUQ-s2KhXDCXo0n)VgD^iEqVex^&Qb zyctW62;*mXiZ|6qFED~pJ0lP)Hx)0h>U+$aM+vd}!h)rG|5+SUp6wkE7^o#2ZoU%3 zp&8!ipoEH+50^lZ7^)(PWJrb;+{^4`OAi+=G7>QG^rei-;Guf*0ItHGo|5w~>D;mO z{N-1|+S!CGx1eS01Jlv|bv|#NzlUNYMZ=-UtZ{LG;b7i_J2;AHnAm;ftl_rilpKFW zz#{dh*uIgmnVSb@7Zo^EYmbti`yOUnLOJ-?6n>Rkz$*T@+=E^7fW)Gt*9Q4F>)ZZ( zV&~_mr|=tb72n8BPXA^gAI0`Zuw~VW>U^RBUS)4p--#1#E%>ysL=TY8Iv$SYt@8yS zUGO)+ON6kGJS>jsmEkyNPlVU}YRc7|aG0t{_Ae^UXI}0n^t97TfLkz-j=5f$!AwT= zmu4|eYs?2I^zlf_Y2j1^c45|ef81cZlGPEktKL&h-13_iUw}ua)P+<17G_P<#g>mm zV6a|>;<+HKsy+x zvE!!^kI<)Ja}nT=WzyX3=r+TxflHA{%0#l6j1bdbL&__O{8hquxX`DZ-7mN#^(M$A zROjgza#-y5Xxkp1c0G5sb5pGJ&{CeWy#yR?M8XxWb4Ca+aIym#^_rfqvQyNhaQOZF zNgnleck~<#b@`_KqNn{Xv=O)4Y#Ju|j2(W-85!Fh)-h_h+X7X?M$HfKp&w|}rq|?9 zHY%ao!P4cW6sdr!{DeEikO_plNWJADdf97vqBh9 zf^&KHl%wiQFYP+r=H@^ugoMKsb<yYUc{`k{?U(OAt6OQx7 z5zopN%M}E(YTWyK57np~Tdj(A=vgTIBuh1)ZyJy*fqOL3H7dCK=d7Hy72w~0Yo&`QUCw| literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric-members.html new file mode 100644 index 000000000..bec258a65 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoVectorVsVectorBinaryMetric< ObjectiveVector, R > Member List

This is the complete list of members for moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >, including all inherited members.

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


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.html new file mode 100644 index 000000000..e42c79320 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoVectorVsVectorBinaryMetric< ObjectiveVector, R > Class Template Reference + + + + +
+
+ +

moeoVectorVsVectorBinaryMetric< ObjectiveVector, R > Class Template Reference

Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >: +

+ +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class ObjectiveVector, class R>
+ class moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >

+ +Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). +

+ +

+Definition at line 64 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.png new file mode 100644 index 0000000000000000000000000000000000000000..f8617fb5cede52887576a1c73d8bbc563ff261b7 GIT binary patch literal 1856 zcmb7FdsNcd7N&%;>nk;()WWRP5z)$ghGtHhnn~spn+qAHsiCdsx=J9o`m^T#>+JNulo*IwVZ_c_`A zXfJIIBMlG;r0wJF5dZ?MZ&2Y5u$pSt8TN})nJxZDgFM&P)>Lq9t)r|g{GTfHaddQa zq&--Bsamch2A~5$2gRZ&5a^2`9}oAS)Z*FV*~AJbUC-Msh?5M&p35|ByTH=h zGv+^F1c#CC~G|?`3wrDD;|3T%1GY=VJ-c_6~gIPHg>d&6)+W39O5mFO@ zH+Hs_CW?lPaH6@>Gn87)*iqJSydz-Rlownp$B^LD`o^aRVSI$ciG1O)2`&7g=ulY! zCI({KN?G0ftqs1=b`;8jG3vJ89a{|@)3G|Q#MP3~+idV9A+i-V=6!dLVmCfLjc{kM zo?H4OpN^rO%y#w4kDJpFhlgHX;TYgw0j9jbacJe8=gMa_FY6DE25Y?9ngVg-rzyp9 zHGkxW9Edxx{Yw~_OSy&79q)v%+Ac=5u~%{@)DnZXlzDA#FwB80%1J~>@4{j-5mIy; zqh)e3{)mvw3{y9tQ8w?^{Wq!q9qBJPSqV$VM90b5Tt1oM0#=%Ue~(DjAwir=C$27i zCpNc2^w?KV?CLXnOI?2Z`j(o4%S*QLA=sMO!4X3-ic8tr&IUW&B!zk{z65Q?Pq43{ z=A?uJfb$8?Rd+ibkN!)Ej}G^Y&urSO8w zLipsAO<4B`^xDTS&wrLes-JBC%J#sdwvfxX8xCex^Beq9A8u;P55Blu}7<#Bcf*=`uotkUZyTfNk zSky?|ve!IzZ?2n+)Q>}*@(*{OzMf!^ouICveCv94^7xlk+an;&D zIu|s|FspShMr{=L5oJ?ji!BZA%;^q>{;L}Ae^J~l|INc z8Dc$SS!58tq+NdAqFQB3^*ZxYeF3+1 zADiSOH>sP_mKdW&i{`L(&l}dMUX_J=x~dM+GHDN}UO5PSnYy_Cv%dNhjz3rTKg54> zYTnm;(nl}t^kc_s*gqSP()~IA3*)8Rrg~$~8Q!#cBe+Ip;!GltY5b_0gx!Js+pZo- z4bs4&OgEdQXEG?N?pb$fTT0AO zSuqbYpE!+%+7x}CGiWI&%)8&Si)PFlW!^amd(Ak8>gxZFTRcp*;$EfOb8DV8XqKgi*$d0bd?V|lv@V%0nTB$=;gG18%HO{;Q5MnQ1c}2&S$8}x5)?*~EpHQX9 zT>pbBdnjLCezz-~kQBOS=EKE=BiO3?d5w$@sZY@)SE-PTTMJltZFx>-NsM>g8c$OU p=aCWrU#5@VNl9q4W2U~sEv$!htk?-eReg6LA5XML{a4|XUjdL-bCCc5 literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/doxygen.css b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/doxygen.css new file mode 100644 index 000000000..5d583694e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/doxygen.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/files.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/files.html new file mode 100644 index 000000000..2845bace0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/files.html @@ -0,0 +1,105 @@ + + +ParadisEO-MOEO: File Index + + + + +
+
+

ParadisEO-MOEO File List

Here is a list of all documented files with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
index.h [code]
make_checkpoint_moeo.h [code]
make_continue_moeo.h [code]
make_ea_moeo.h [code]
MOEO.h [code]
moeoAchievementFitnessAssignment.h [code]
moeoAdditiveEpsilonBinaryMetric.h [code]
moeoAggregativeComparator.h [code]
moeoAlgo.h [code]
moeoArchive.h [code]
moeoArchiveObjectiveVectorSavingUpdater.h [code]
moeoArchiveUpdater.h [code]
moeoBinaryIndicatorBasedFitnessAssignment.h [code]
moeoBinaryMetricSavingUpdater.h [code]
moeoBitVector.h [code]
moeoCombinedLS.h [code]
moeoComparator.h [code]
moeoContributionMetric.h [code]
moeoConvertPopToObjectiveVectors.h [code]
moeoCriterionBasedFitnessAssignment.h [code]
moeoCrowdingDiversityAssignment.h [code]
moeoDetTournamentSelect.h [code]
moeoDistance.h [code]
moeoDistanceMatrix.h [code]
moeoDiversityAssignment.h [code]
moeoDiversityThenFitnessComparator.h [code]
moeoDummyDiversityAssignment.h [code]
moeoDummyFitnessAssignment.h [code]
moeoEA.h [code]
moeoEasyEA.h [code]
moeoElitistReplacement.h [code]
moeoEntropyMetric.h [code]
moeoEnvironmentalReplacement.h [code]
moeoEuclideanDistance.h [code]
moeoEvalFunc.h [code]
moeoExpBinaryIndicatorBasedFitnessAssignment.h [code]
moeoFastNonDominatedSortingFitnessAssignment.h [code]
moeoFitnessAssignment.h [code]
moeoFitnessThenDiversityComparator.h [code]
moeoFrontByFrontCrowdingDiversityAssignment.h [code]
moeoFrontByFrontSharingDiversityAssignment.h [code]
moeoGDominanceObjectiveVectorComparator.h [code]
moeoGenerationalReplacement.h [code]
moeoHybridLS.h [code]
moeoHypervolumeBinaryMetric.h [code]
moeoIBEA.h [code]
moeoIndicatorBasedFitnessAssignment.h [code]
moeoLS.h [code]
moeoManhattanDistance.h [code]
moeoMetric.h [code]
moeoNormalizedDistance.h [code]
moeoNormalizedSolutionVsSolutionBinaryMetric.h [code]
moeoNSGA.h [code]
moeoNSGAII.h [code]
moeoObjectiveObjectiveVectorComparator.h [code]
moeoObjectiveVector.h [code]
moeoObjectiveVectorComparator.h [code]
moeoObjectiveVectorTraits.cpp [code]
moeoObjectiveVectorTraits.h [code]
moeoOneObjectiveComparator.h [code]
moeoParetoBasedFitnessAssignment.h [code]
moeoParetoObjectiveVectorComparator.h [code]
moeoRandomSelect.h [code]
moeoRealObjectiveVector.h [code]
moeoRealVector.h [code]
moeoReplacement.h [code]
moeoRouletteSelect.h [code]
moeoScalarFitnessAssignment.h [code]
moeoSelectFromPopAndArch.h [code]
moeoSelectOne.h [code]
moeoSelectors.h [code]
moeoSharingDiversityAssignment.h [code]
moeoStochTournamentSelect.h [code]
moeoUnaryIndicatorBasedFitnessAssignment.h [code]
moeoVector.h [code]
+
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2blank.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2doc.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2folderclosed.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2folderopen.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2lastnode.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2mlastnode.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2mnode.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2plastnode.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2pnode.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/ftv2vertline.png b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions.html new file mode 100644 index 000000000..754d72974 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions.html @@ -0,0 +1,294 @@ + + +ParadisEO-MOEO: Class Members + + + + +
+
+ + +
+ +
+ +

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

+

- a -

+

- b -

+

- c -

+

- d -

+

- e -

+

- f -

+

- g -

+

- h -

+

- i -

+

- k -

+

- l -

+

- m -

+

- n -

+

- o -

+

- p -

+

- r -

+

- s -

+

- t -

+

- u -

+

- v -

+

- w -

+

- ~ -

+
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_func.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_func.html new file mode 100644 index 000000000..6d17e1916 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_func.html @@ -0,0 +1,202 @@ + + +ParadisEO-MOEO: Class Members - Functions + + + + +
+
+ + +
+ +
+ +

+  +

+

- a -

+

- c -

+

- d -

+

- e -

+

- f -

+

- h -

+

- i -

+

- l -

+

- m -

+

- n -

+

- o -

+

- p -

+

- r -

+

- s -

+

- t -

+

- u -

+

- v -

+

- ~ -

+
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_type.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_type.html new file mode 100644 index 000000000..0bf32edeb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_type.html @@ -0,0 +1,54 @@ + + +ParadisEO-MOEO: Class Members - Typedefs + + + + +
+
+ + +  +

+

+
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_vars.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_vars.html new file mode 100644 index 000000000..5a16b35af --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/functions_vars.html @@ -0,0 +1,181 @@ + + +ParadisEO-MOEO: Class Members - Variables + + + + +
+
+ + +
+ +
+ +

+  +

+

- a -

+

- b -

+

- c -

+

- d -

+

- e -

+

- f -

+

- g -

+

- i -

+

- k -

+

- l -

+

- m -

+

- n -

+

- o -

+

- p -

+

- r -

+

- s -

+

- t -

+

- v -

+

- w -

+
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/hierarchy.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/hierarchy.html new file mode 100644 index 000000000..c2b22f76d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/hierarchy.html @@ -0,0 +1,296 @@ + + +ParadisEO-MOEO: Hierarchical Index + + + + +
+
+ +

ParadisEO-MOEO Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/index.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/index.html new file mode 100644 index 000000000..7e73d848d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/index.html @@ -0,0 +1,8 @@ + + +ParadisEO-MOEO + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/index_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/index_8h-source.html new file mode 100644 index 000000000..26439f45e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/index_8h-source.html @@ -0,0 +1,29 @@ + + +ParadisEO-MOEO: index.h Source File + + + + +
+
+

index.h

00001 
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/installdox b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/installdox new file mode 100755 index 000000000..1628445b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( "eo.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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/main.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/main.html new file mode 100644 index 000000000..682843ae4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/main.html @@ -0,0 +1,38 @@ + + +ParadisEO-MOEO: Welcome to ParadisEO-MOEO + + + + +
+
+

Welcome to ParadisEO-MOEO

+

+

1.0-beta

+intro

+ParadisEO-MOEO is a white-box object-oriented generic framework dedicated to the flexible design of evolutionary multi-objective algorithms. This paradigm-free software embeds some features and techniques for Pareto-based resolution and aims to provide a set of classes allowing to ease and speed up the development of computationally efficient programs. It is based on a clear conceptual distinction between the solution methods and the multi-objective problems they are intended to solve. This separation confers a maximum design and code reuse. ParadisEO-MOEO provides a broad range of archive-related features (such as elitism or performance metrics) and the most common Pareto-based fitness assignment strategies (MOGA, NSGA, SPEA, IBEA and more). Furthermore, parallel and distributed models as well as hybridization mechanisms can be applied to an algorithm designed within ParadisEO-MOEO using the whole version of ParadisEO.

+Tutorials

+Tutorials for ParadisEO-MOEO are available here.

+install

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

+design

+For an introduction to the design of ParadisEO-MOEO, you can look at the ParadisEO website.
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__checkpoint__moeo_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__checkpoint__moeo_8h-source.html new file mode 100644 index 000000000..7c1dccf94 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__checkpoint__moeo_8h-source.html @@ -0,0 +1,189 @@ + + +ParadisEO-MOEO: make_checkpoint_moeo.h Source File + + + + +
+
+

make_checkpoint_moeo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // make_checkpoint_moeo.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MAKE_CHECKPOINT_MOEO_H_
+00014 #define MAKE_CHECKPOINT_MOEO_H_
+00015 
+00016 #include <stdlib.h>
+00017 #include <sstream>
+00018 #include <eoContinue.h>
+00019 #include <eoEvalFuncCounter.h>
+00020 #include <utils/checkpointing>
+00021 #include <utils/selectors.h>
+00022 #include <utils/eoParser.h>
+00023 #include <utils/eoState.h>
+00024 #include <metric/moeoContributionMetric.h>
+00025 #include <metric/moeoEntropyMetric.h>
+00026 #include <utils/moeoArchiveUpdater.h>
+00027 #include <utils/moeoArchiveObjectiveVectorSavingUpdater.h>
+00028 #include <utils/moeoBinaryMetricSavingUpdater.h>
+00029 
+00030 bool testDirRes(std::string _dirName, bool _erase);
+00031 
+00041 template < class MOEOT >
+00042 eoCheckPoint < MOEOT > & do_make_checkpoint_moeo (eoParser & _parser, eoState & _state, eoEvalFuncCounter < MOEOT > & _eval, eoContinue < MOEOT > & _continue, eoPop < MOEOT > & _pop, moeoArchive < MOEOT > & _archive)
+00043 {
+00044     eoCheckPoint < MOEOT > & checkpoint = _state.storeFunctor(new eoCheckPoint < MOEOT > (_continue));
+00045     /* the objective vector type */
+00046     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00047     
+00049     // Counters
+00051     // is nb Eval to be used as counter?
+00052     //bool useEval = _parser.getORcreateParam(true, "useEval", "Use nb of eval. as counter (vs nb of gen.)", '\0', "Output").value();
+00053     // Create anyway a generation-counter parameter
+00054     eoValueParam<unsigned int> *generationCounter = new eoValueParam<unsigned int>(0, "Gen.");
+00055     // Create an incrementor (sub-class of eoUpdater).
+00056     eoIncrementor<unsigned int> & increment = _state.storeFunctor( new eoIncrementor<unsigned int>(generationCounter->value()) );
+00057     // Add it to the checkpoint
+00058     checkpoint.add(increment);
+00059     // dir for DISK output
+00060     std::string & dirName =  _parser.getORcreateParam(std::string("Res"), "resDir", "Directory to store DISK outputs", '\0', "Output").value();
+00061     // shoudl we empty it if exists
+00062     eoValueParam<bool>& eraseParam = _parser.getORcreateParam(true, "eraseDir", "erase files in dirName if any", '\0', "Output");
+00063     bool dirOK = false;            // not tested yet
+00064 
+00065     // Dump of the whole population
+00066     //-----------------------------
+00067     bool printPop = _parser.getORcreateParam(false, "printPop", "Print sorted pop. every gen.", '\0', "Output").value();
+00068     eoSortedPopStat<MOEOT> * popStat;
+00069     if ( printPop ) // we do want pop dump
+00070     {
+00071         popStat = & _state.storeFunctor(new eoSortedPopStat<MOEOT>);
+00072         checkpoint.add(*popStat);
+00073     }
+00074 
+00076     // State savers
+00078     // feed the state to state savers
+00079     // save state every N  generation
+00080     eoValueParam<unsigned int>& saveFrequencyParam = _parser.createParam((unsigned int)(0), "saveFrequency", "Save every F generation (0 = only final state, absent = never)", '\0', "Persistence" );
+00081     if (_parser.isItThere(saveFrequencyParam))
+00082     {
+00083         // first make sure dirName is OK
+00084         if (! dirOK )
+00085             dirOK = testDirRes(dirName, eraseParam.value()); // TRUE
+00086         unsigned int freq = (saveFrequencyParam.value()>0 ? saveFrequencyParam.value() : UINT_MAX );
+00087 #ifdef _MSVC
+00088         std::string stmp = dirName + "\generations";
+00089 #else
+00090         std::string stmp = dirName + "/generations";
+00091 #endif
+00092         eoCountedStateSaver *stateSaver1 = new eoCountedStateSaver(freq, _state, stmp);
+00093         _state.storeFunctor(stateSaver1);
+00094         checkpoint.add(*stateSaver1);
+00095     }
+00096     // save state every T seconds
+00097     eoValueParam<unsigned int>& saveTimeIntervalParam = _parser.getORcreateParam((unsigned int)(0), "saveTimeInterval", "Save every T seconds (0 or absent = never)", '\0',"Persistence" );
+00098     if (_parser.isItThere(saveTimeIntervalParam) && saveTimeIntervalParam.value()>0)
+00099     {
+00100         // first make sure dirName is OK
+00101         if (! dirOK )
+00102             dirOK = testDirRes(dirName, eraseParam.value()); // TRUE
+00103 #ifdef _MSVC
+00104         std::string stmp = dirName + "\time";
+00105 #else
+00106         std::string stmp = dirName + "/time";
+00107 #endif
+00108         eoTimedStateSaver *stateSaver2 = new eoTimedStateSaver(saveTimeIntervalParam.value(), _state, stmp);
+00109         _state.storeFunctor(stateSaver2);
+00110         checkpoint.add(*stateSaver2);
+00111     }
+00112 
+00114     // Archive
+00116     // update the archive every generation
+00117     bool updateArch = _parser.getORcreateParam(true, "updateArch", "Update the archive at each gen.", '\0', "Evolution Engine").value();
+00118     if (updateArch)
+00119     {
+00120         moeoArchiveUpdater < MOEOT > * updater = new moeoArchiveUpdater < MOEOT > (_archive, _pop);
+00121         _state.storeFunctor(updater);
+00122         checkpoint.add(*updater);
+00123     }
+00124     // store the objective vectors contained in the archive every generation
+00125     bool storeArch = _parser.getORcreateParam(false, "storeArch", "Store the archive's objective vectors at each gen.", '\0', "Output").value();
+00126     if (storeArch)
+00127     {
+00128         if (! dirOK )
+00129             dirOK = testDirRes(dirName, eraseParam.value()); // TRUE
+00130 #ifdef _MSVC
+00131         std::string stmp = dirName + "\arch";
+00132 #else
+00133         std::string stmp = dirName + "/arch";
+00134 #endif
+00135         moeoArchiveObjectiveVectorSavingUpdater < MOEOT > * save_updater = new moeoArchiveObjectiveVectorSavingUpdater < MOEOT > (_archive, stmp);
+00136         _state.storeFunctor(save_updater);
+00137         checkpoint.add(*save_updater);
+00138     }
+00139     // store the contribution of the non-dominated solutions
+00140     bool cont = _parser.getORcreateParam(false, "contribution", "Store the contribution of the archive at each gen.", '\0', "Output").value();
+00141     if (cont)
+00142     {
+00143         if (! dirOK )
+00144             dirOK = testDirRes(dirName, eraseParam.value()); // TRUE
+00145 #ifdef _MSVC
+00146         std::string stmp = dirName + "\contribution";
+00147 #else
+00148         std::string stmp = dirName + "/contribution";
+00149 #endif
+00150         moeoContributionMetric < ObjectiveVector > * contribution = new moeoContributionMetric < ObjectiveVector >;
+00151         moeoBinaryMetricSavingUpdater < MOEOT > * contribution_updater = new moeoBinaryMetricSavingUpdater < MOEOT > (*contribution, _archive, stmp);
+00152         _state.storeFunctor(contribution_updater);
+00153         checkpoint.add(*contribution_updater);
+00154     }
+00155     // store the entropy of the non-dominated solutions
+00156     bool ent = _parser.getORcreateParam(false, "entropy", "Store the entropy of the archive at each gen.", '\0', "Output").value();
+00157     if (ent)
+00158     {
+00159         if (! dirOK )
+00160             dirOK = testDirRes(dirName, eraseParam.value()); // TRUE
+00161 #ifdef _MSVC
+00162         std::string stmp = dirName + "\entropy";
+00163 #else
+00164         std::string stmp = dirName + "/entropy";
+00165 #endif
+00166         moeoEntropyMetric < ObjectiveVector > * entropy = new moeoEntropyMetric < ObjectiveVector >;
+00167         moeoBinaryMetricSavingUpdater < MOEOT > * entropy_updater = new moeoBinaryMetricSavingUpdater < MOEOT > (*entropy, _archive, stmp);
+00168         _state.storeFunctor(entropy_updater);
+00169         checkpoint.add(*entropy_updater);
+00170     }
+00171 
+00172     // and that's it for the (control and) output
+00173     return checkpoint;
+00174 }
+00175 
+00176 #endif /*MAKE_CHECKPOINT_MOEO_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__continue__moeo_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__continue__moeo_8h-source.html new file mode 100644 index 000000000..2460ada81 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__continue__moeo_8h-source.html @@ -0,0 +1,123 @@ + + +ParadisEO-MOEO: make_continue_moeo.h Source File + + + + +
+
+

make_continue_moeo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // make_continue_moeo.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MAKE_CONTINUE_MOEO_H_
+00014 #define MAKE_CONTINUE_MOEO_H_
+00015 
+00016 #include <eoCombinedContinue.h>
+00017 #include <eoGenContinue.h>
+00018 #include <eoEvalContinue.h>
+00019 #include <eoFitContinue.h>
+00020 #include <eoTimeContinue.h>
+00021 #ifndef _MSC_VER
+00022 #include <eoCtrlCContinue.h>
+00023 #endif
+00024 #include <utils/eoParser.h>
+00025 #include <utils/eoState.h>
+00026 
+00027 
+00033 template <class MOEOT>
+00034 eoCombinedContinue<MOEOT> * make_combinedContinue(eoCombinedContinue<MOEOT> *_combined, eoContinue<MOEOT> *_cont)
+00035 {
+00036     if (_combined)                 // already exists
+00037         _combined->add(*_cont);
+00038     else
+00039         _combined = new eoCombinedContinue<MOEOT>(*_cont);
+00040     return _combined;
+00041 }
+00042 
+00043 
+00050 template <class MOEOT>
+00051 eoContinue<MOEOT> & do_make_continue_moeo(eoParser& _parser, eoState& _state, eoEvalFuncCounter<MOEOT> & _eval)
+00052 {
+00053     // the combined continue - to be filled
+00054     eoCombinedContinue<MOEOT> *continuator = NULL;
+00055     // First the eoGenContinue - need a default value so you can run blind
+00056     // but we also need to be able to avoid it <--> 0
+00057     eoValueParam<unsigned int>& maxGenParam = _parser.createParam((unsigned int)(100), "maxGen", "Maximum number of generations (0 = none)",'G',"Stopping criterion");
+00058     if (maxGenParam.value()) // positive: -> define and store
+00059     {
+00060         eoGenContinue<MOEOT> *genCont = new eoGenContinue<MOEOT>(maxGenParam.value());
+00061         _state.storeFunctor(genCont);
+00062         // and "add" to combined
+00063         continuator = make_combinedContinue<MOEOT>(continuator, genCont);
+00064     }
+00065     // maxEval
+00066     eoValueParam<unsigned long>& maxEvalParam = _parser.getORcreateParam((unsigned long)(0), "maxEval", "Maximum number of evaluations (0 = none)", 'E', "Stopping criterion");
+00067     if (maxEvalParam.value())
+00068     {
+00069         eoEvalContinue<MOEOT> *evalCont = new eoEvalContinue<MOEOT>(_eval, maxEvalParam.value());
+00070         _state.storeFunctor(evalCont);
+00071         // and "add" to combined
+00072         continuator = make_combinedContinue<MOEOT>(continuator, evalCont);
+00073     }
+00074     // maxTime
+00075     eoValueParam<unsigned long>& maxTimeParam = _parser.getORcreateParam((unsigned long)(0), "maxTime", "Maximum running time in seconds (0 = none)", 'T', "Stopping criterion");
+00076     if (maxTimeParam.value()) // positive: -> define and store
+00077     {
+00078         eoTimeContinue<MOEOT> *timeCont = new eoTimeContinue<MOEOT>(maxTimeParam.value());
+00079         _state.storeFunctor(timeCont);
+00080         // and "add" to combined
+00081         continuator = make_combinedContinue<MOEOT>(continuator, timeCont);
+00082     }
+00083     // CtrlC
+00084 #ifndef _MSC_VER
+00085     // the CtrlC interception (Linux only I'm afraid)
+00086     eoCtrlCContinue<MOEOT> *ctrlCCont;
+00087     eoValueParam<bool>& ctrlCParam = _parser.createParam(true, "CtrlC", "Terminate current generation upon Ctrl C",'C', "Stopping criterion");
+00088     if (_parser.isItThere(ctrlCParam))
+00089     {
+00090         ctrlCCont = new eoCtrlCContinue<MOEOT>;
+00091         // store
+00092         _state.storeFunctor(ctrlCCont);
+00093         // add to combinedContinue
+00094         continuator = make_combinedContinue<MOEOT>(continuator, ctrlCCont);
+00095     }
+00096 #endif
+00097     // now check that there is at least one!
+00098     if (!continuator)
+00099         throw std::runtime_error("You MUST provide a stopping criterion");
+00100     // OK, it's there: store in the eoState
+00101     _state.storeFunctor(continuator);
+00102     // and return
+00103     return *continuator;
+00104 }
+00105 
+00106 #endif /*MAKE_CONTINUE_MOEO_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__ea__moeo_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__ea__moeo_8h-source.html new file mode 100644 index 000000000..1a424cf6b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/make__ea__moeo_8h-source.html @@ -0,0 +1,291 @@ + + +ParadisEO-MOEO: make_ea_moeo.h Source File + + + + +
+
+

make_ea_moeo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // make_ea_moeo.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MAKE_EA_MOEO_H_
+00014 #define MAKE_EA_MOEO_H_
+00015 
+00016 #include <stdlib.h>
+00017 #include <eoContinue.h>
+00018 #include <eoEvalFunc.h>
+00019 #include <eoGeneralBreeder.h>
+00020 #include <eoGenOp.h>
+00021 #include <utils/eoParser.h>
+00022 #include <utils/eoState.h>
+00023 
+00024 #include <algo/moeoEA.h>
+00025 #include <algo/moeoEasyEA.h>
+00026 #include <archive/moeoArchive.h>
+00027 #include <comparator/moeoAggregativeComparator.h>
+00028 #include <comparator/moeoComparator.h>
+00029 #include <comparator/moeoDiversityThenFitnessComparator.h>
+00030 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00031 #include <diversity/moeoDiversityAssignment.h>
+00032 #include <diversity/moeoDummyDiversityAssignment.h>
+00033 #include <diversity/moeoFrontByFrontCrowdingDiversityAssignment.h>
+00034 #include <diversity/moeoFrontByFrontSharingDiversityAssignment.h>
+00035 #include <fitness/moeoDummyFitnessAssignment.h>
+00036 #include <fitness/moeoExpBinaryIndicatorBasedFitnessAssignment.h>
+00037 #include <fitness/moeoFastNonDominatedSortingFitnessAssignment.h>
+00038 #include <fitness/moeoFitnessAssignment.h>
+00039 #include <metric/moeoAdditiveEpsilonBinaryMetric.h>
+00040 #include <metric/moeoHypervolumeBinaryMetric.h>
+00041 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h>
+00042 #include <replacement/moeoElitistReplacement.h>
+00043 #include <replacement/moeoEnvironmentalReplacement.h>
+00044 #include <replacement/moeoGenerationalReplacement.h>
+00045 #include <replacement/moeoReplacement.h>
+00046 #include <selection/moeoDetTournamentSelect.h>
+00047 #include <selection/moeoRandomSelect.h>
+00048 #include <selection/moeoStochTournamentSelect.h>
+00049 #include <selection/moeoSelectOne.h>
+00050 #include <selection/moeoSelectors.h>
+00051 
+00052 
+00062 template < class MOEOT >
+00063 moeoEA < MOEOT > & do_make_ea_moeo(eoParser & _parser, eoState & _state, eoEvalFunc < MOEOT > & _eval, eoContinue < MOEOT > & _continue, eoGenOp < MOEOT > & _op, moeoArchive < MOEOT > & _archive)
+00064 {
+00065 
+00066     /* the objective vector type */
+00067     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00068 
+00069 
+00070     /* the fitness assignment strategy */
+00071     std::string & fitnessParam = _parser.createParam(std::string("FastNonDominatedSorting"), "fitness",
+00072                             "Fitness assignment scheme: Dummy, FastNonDominatedSorting or IndicatorBased", 'F',
+00073                             "Evolution Engine").value();
+00074     std::string & indicatorParam = _parser.createParam(std::string("Epsilon"), "indicator",
+00075                               "Binary indicator for IndicatorBased: Epsilon, Hypervolume", 'i',
+00076                               "Evolution Engine").value();
+00077     double rho = _parser.createParam(1.1, "rho", "reference point for the hypervolume indicator", 'r',
+00078                                      "Evolution Engine").value();
+00079     double kappa = _parser.createParam(0.05, "kappa", "Scaling factor kappa for IndicatorBased", 'k',
+00080                                        "Evolution Engine").value();
+00081     moeoFitnessAssignment < MOEOT > * fitnessAssignment;
+00082     if (fitnessParam == std::string("Dummy"))
+00083     {
+00084         fitnessAssignment = new moeoDummyFitnessAssignment < MOEOT> ();
+00085     }
+00086     else if (fitnessParam == std::string("FastNonDominatedSorting"))
+00087     {
+00088         fitnessAssignment = new moeoFastNonDominatedSortingFitnessAssignment < MOEOT> ();
+00089     }
+00090     else if (fitnessParam == std::string("IndicatorBased"))
+00091     {
+00092         // metric
+00093         moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > *metric;
+00094         if (indicatorParam == std::string("Epsilon"))
+00095         {
+00096             metric = new moeoAdditiveEpsilonBinaryMetric < ObjectiveVector >;
+00097         }
+00098         else if (indicatorParam == std::string("Hypervolume"))
+00099         {
+00100             metric = new moeoHypervolumeBinaryMetric < ObjectiveVector > (rho);
+00101         }
+00102         else
+00103         {
+00104             std::string stmp = std::string("Invalid binary quality indicator: ") + indicatorParam;
+00105             throw std::runtime_error(stmp.c_str());
+00106         }
+00107         fitnessAssignment = new moeoExpBinaryIndicatorBasedFitnessAssignment < MOEOT > (*metric, kappa);
+00108     }
+00109     else
+00110     {
+00111         std::string stmp = std::string("Invalid fitness assignment strategy: ") + fitnessParam;
+00112         throw std::runtime_error(stmp.c_str());
+00113     }
+00114     _state.storeFunctor(fitnessAssignment);
+00115 
+00116 
+00117     /* the diversity assignment strategy */
+00118     eoValueParam<eoParamParamType> & diversityParam = _parser.createParam(eoParamParamType("Dummy"), "diversity",
+00119             "Diversity assignment scheme: Dummy, Sharing(nicheSize) or Crowding", 'D', "Evolution Engine");
+00120     eoParamParamType & diversityParamValue = diversityParam.value();
+00121     moeoDiversityAssignment < MOEOT > * diversityAssignment;
+00122     if (diversityParamValue.first == std::string("Dummy"))
+00123     {
+00124         diversityAssignment = new moeoDummyDiversityAssignment < MOEOT> ();
+00125     }
+00126     else if (diversityParamValue.first == std::string("Sharing"))
+00127     {
+00128         double nicheSize;
+00129         if (!diversityParamValue.second.size())   // no parameter added
+00130         {
+00131             std::cerr << "WARNING, no niche size given for Sharing, using 0.5" << std::endl;
+00132             nicheSize = 0.5;
+00133             diversityParamValue.second.push_back(std::string("0.5"));
+00134         }
+00135         else
+00136         {
+00137             nicheSize = atoi(diversityParamValue.second[0].c_str());
+00138         }
+00139         diversityAssignment = new moeoFrontByFrontSharingDiversityAssignment < MOEOT> (nicheSize);
+00140     }
+00141     else if (diversityParamValue.first == std::string("Crowding"))
+00142     {
+00143         diversityAssignment = new moeoFrontByFrontCrowdingDiversityAssignment < MOEOT> ();
+00144     }
+00145     else
+00146     {
+00147         std::string stmp = std::string("Invalid diversity assignment strategy: ") + diversityParamValue.first;
+00148         throw std::runtime_error(stmp.c_str());
+00149     }
+00150     _state.storeFunctor(diversityAssignment);
+00151 
+00152 
+00153     /* the comparator strategy */
+00154     std::string & comparatorParam = _parser.createParam(std::string("FitnessThenDiversity"), "comparator",
+00155                                "Comparator scheme: FitnessThenDiversity, DiversityThenFitness or Aggregative", 'C', "Evolution Engine").value();
+00156     moeoComparator < MOEOT > * comparator;
+00157     if (comparatorParam == std::string("FitnessThenDiversity"))
+00158     {
+00159         comparator = new moeoFitnessThenDiversityComparator < MOEOT> ();
+00160     }
+00161     else if (comparatorParam == std::string("DiversityThenFitness"))
+00162     {
+00163         comparator = new moeoDiversityThenFitnessComparator < MOEOT> ();
+00164     }
+00165     else if (comparatorParam == std::string("Aggregative"))
+00166     {
+00167         comparator = new moeoAggregativeComparator < MOEOT> ();
+00168     }
+00169     else
+00170     {
+00171         std::string stmp = std::string("Invalid comparator strategy: ") + comparatorParam;
+00172         throw std::runtime_error(stmp.c_str());
+00173     }
+00174     _state.storeFunctor(comparator);
+00175 
+00176 
+00177     /* the selection strategy */
+00178     eoValueParam < eoParamParamType > & selectionParam = _parser.createParam(eoParamParamType("DetTour(2)"), "selection",
+00179             "Selection scheme: DetTour(T), StochTour(t) or Random", 'S', "Evolution Engine");
+00180     eoParamParamType & ppSelect = selectionParam.value();
+00181     moeoSelectOne < MOEOT > * select;
+00182     if (ppSelect.first == std::string("DetTour"))
+00183     {
+00184         unsigned int tSize;
+00185         if (!ppSelect.second.size()) // no parameter added
+00186         {
+00187             std::cerr << "WARNING, no parameter passed to DetTour, using 2" << std::endl;
+00188             tSize = 2;
+00189             // put back 2 in parameter for consistency (and status file)
+00190             ppSelect.second.push_back(std::string("2"));
+00191         }
+00192         else // parameter passed by user as DetTour(T)
+00193         {
+00194             tSize = atoi(ppSelect.second[0].c_str());
+00195         }
+00196         select = new moeoDetTournamentSelect < MOEOT > (*comparator, tSize);
+00197     }
+00198     else if (ppSelect.first == std::string("StochTour"))
+00199     {
+00200         double tRate;
+00201         if (!ppSelect.second.size()) // no parameter added
+00202         {
+00203             std::cerr << "WARNING, no parameter passed to StochTour, using 1" << std::endl;
+00204             tRate = 1;
+00205             // put back 1 in parameter for consistency (and status file)
+00206             ppSelect.second.push_back(std::string("1"));
+00207         }
+00208         else // parameter passed by user as StochTour(T)
+00209         {
+00210             tRate = atof(ppSelect.second[0].c_str());
+00211         }
+00212         select = new moeoStochTournamentSelect < MOEOT > (*comparator, tRate);
+00213     }
+00214     /*
+00215     else if (ppSelect.first == string("Roulette"))
+00216     {
+00217         // TO DO !
+00218         // ...
+00219     }
+00220     */
+00221     else if (ppSelect.first == std::string("Random"))
+00222     {
+00223         select = new moeoRandomSelect <MOEOT > ();
+00224     }
+00225     else
+00226     {
+00227         std::string stmp = std::string("Invalid selection strategy: ") + ppSelect.first;
+00228         throw std::runtime_error(stmp.c_str());
+00229     }
+00230     _state.storeFunctor(select);
+00231 
+00232 
+00233     /* the replacement strategy */
+00234     std::string & replacementParam = _parser.createParam(std::string("Elitist"), "replacement",
+00235                                 "Replacement scheme: Elitist, Environmental or Generational", 'R', "Evolution Engine").value();
+00236     moeoReplacement < MOEOT > * replace;
+00237     if (replacementParam == std::string("Elitist"))
+00238     {
+00239         replace = new moeoElitistReplacement < MOEOT> (*fitnessAssignment, *diversityAssignment, *comparator);
+00240     }
+00241     else if (replacementParam == std::string("Environmental"))
+00242     {
+00243         replace = new moeoEnvironmentalReplacement < MOEOT> (*fitnessAssignment, *diversityAssignment, *comparator);
+00244     }
+00245     else if (replacementParam == std::string("Generational"))
+00246     {
+00247         replace = new moeoGenerationalReplacement < MOEOT> ();
+00248     }
+00249     else
+00250     {
+00251         std::string stmp = std::string("Invalid replacement strategy: ") + replacementParam;
+00252         throw std::runtime_error(stmp.c_str());
+00253     }
+00254     _state.storeFunctor(replace);
+00255 
+00256 
+00257     /* the number of offspring  */
+00258     eoValueParam < eoHowMany > & offspringRateParam = _parser.createParam(eoHowMany(1.0), "nbOffspring",
+00259             "Number of offspring (percentage or absolute)", 'O', "Evolution Engine");
+00260 
+00261 
+00262     // the general breeder
+00263     eoGeneralBreeder < MOEOT > * breed = new eoGeneralBreeder < MOEOT > (*select, _op, offspringRateParam.value());
+00264     _state.storeFunctor(breed);
+00265     // the eoEasyEA
+00266     moeoEA < MOEOT > * algo = new moeoEasyEA < MOEOT > (_continue, _eval, *breed, *replace, *fitnessAssignment, *diversityAssignment);
+00267     _state.storeFunctor(algo);
+00268     return *algo;
+00269 
+00270 }
+00271 
+00272 #endif /*MAKE_EA_MOEO_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAchievementFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAchievementFitnessAssignment_8h-source.html new file mode 100644 index 000000000..c34e2534e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAchievementFitnessAssignment_8h-source.html @@ -0,0 +1,135 @@ + + +ParadisEO-MOEO: moeoAchievementFitnessAssignment.h Source File + + + + +
+
+

moeoAchievementFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoAchievementFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOACHIEVEMENTFITNESSASSIGNMENT_H_
+00014 #define MOEOACHIEVEMENTFITNESSASSIGNMENT_H_
+00015 
+00016 #include <vector>
+00017 #include <eoPop.h>
+00018 #include <fitness/moeoScalarFitnessAssignment.h>
+00019 
+00023 template < class MOEOT >
+00024 class moeoAchievementFitnessAssignment : public moeoScalarFitnessAssignment < MOEOT >
+00025 {
+00026 public:
+00027 
+00029     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00030 
+00031 
+00038     moeoAchievementFitnessAssignment(ObjectiveVector & _reference, std::vector < double > & _lambdas, double _spn=0.0001) : reference(_reference), lambdas(_lambdas), spn(_spn)
+00039     {
+00040         // consistency check
+00041         if ((spn < 0.0) || (spn > 1.0))
+00042         {
+00043             std::cout << "Warning, the arbitrary small positive number should be > 0 and <<1, adjusted to 0.0001\n";
+00044             spn = 0.0001;
+00045         }
+00046     }
+00047 
+00048 
+00054     moeoAchievementFitnessAssignment(ObjectiveVector & _reference, double _spn=0.0001) : reference(_reference), spn(_spn)
+00055     {
+00056         // compute the default values for lambdas
+00057         lambdas  = std::vector < double > (ObjectiveVector::nObjectives());
+00058         for (unsigned int i=0 ; i<lambdas.size(); i++)
+00059         {
+00060             lambdas[i] = 1.0 / ObjectiveVector::nObjectives();
+00061         }
+00062         // consistency check
+00063         if ((spn < 0.0) || (spn > 1.0))
+00064         {
+00065             std::cout << "Warning, the arbitrary small positive number should be > 0 and <<1, adjusted to 0.0001\n";
+00066             spn = 0.0001;
+00067         }
+00068     }
+00069 
+00070 
+00075     virtual void operator()(eoPop < MOEOT > & _pop)
+00076     {
+00077         for (unsigned int i=0; i<_pop.size() ; i++)
+00078         {
+00079             compute(_pop[i]);
+00080         }
+00081     }
+00082 
+00083 
+00089     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00090     {
+00091         // nothing to do ;-)
+00092     }
+00093 
+00094 
+00099     void setReference(const ObjectiveVector & _reference)
+00100     {
+00101         reference = _reference;
+00102     }
+00103 
+00104 
+00105 private:
+00106 
+00108     ObjectiveVector reference;
+00110     std::vector < double > lambdas;
+00112     double spn;
+00113 
+00114 
+00118     double inf() const
+00119     {
+00120         return std::numeric_limits<double>::max();
+00121     }
+00122 
+00123 
+00128     void compute(MOEOT & _moeo)
+00129     {
+00130         unsigned int nobj = MOEOT::ObjectiveVector::nObjectives();
+00131         double temp;
+00132         double min = inf();
+00133         double sum = 0;
+00134         for (unsigned int obj=0; obj<nobj; obj++)
+00135         {
+00136             temp = lambdas[obj] * (reference[obj] - _moeo.objectiveVector()[obj]);
+00137             min = std::min(min, temp);
+00138             sum += temp;
+00139         }
+00140         _moeo.fitness(min + spn*sum);
+00141     }
+00142 
+00143 };
+00144 
+00145 #endif /*MOEOACHIEVEMENTFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAdditiveEpsilonBinaryMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAdditiveEpsilonBinaryMetric_8h-source.html new file mode 100644 index 000000000..8e9205d5d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAdditiveEpsilonBinaryMetric_8h-source.html @@ -0,0 +1,92 @@ + + +ParadisEO-MOEO: moeoAdditiveEpsilonBinaryMetric.h Source File + + + + +
+
+

moeoAdditiveEpsilonBinaryMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoAdditiveEpsilonBinaryMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOADDITIVEEPSILONBINARYMETRIC_H_
+00014 #define MOEOADDITIVEEPSILONBINARYMETRIC_H_
+00015 
+00016 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h>
+00017 
+00023 template < class ObjectiveVector >
+00024 class moeoAdditiveEpsilonBinaryMetric : public moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double >
+00025 {
+00026 public:
+00027 
+00035     double operator()(const ObjectiveVector & _o1, const ObjectiveVector & _o2)
+00036     {
+00037         // computation of the epsilon value for the first objective
+00038         double result = epsilon(_o1, _o2, 0);
+00039         // computation of the epsilon value for the other objectives
+00040         double tmp;
+00041         for (unsigned int i=1; i<ObjectiveVector::Traits::nObjectives(); i++)
+00042         {
+00043             tmp = epsilon(_o1, _o2, i);
+00044             result = std::max(result, tmp);
+00045         }
+00046         // returns the maximum epsilon value
+00047         return result;
+00048     }
+00049 
+00050 
+00051 private:
+00052 
+00054     using moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > :: bounds;
+00055 
+00056 
+00064     double epsilon(const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj)
+00065     {
+00066         double result;
+00067         // if the objective _obj have to be minimized
+00068         if (ObjectiveVector::Traits::minimizing(_obj))
+00069         {
+00070             // _o1[_obj] - _o2[_obj]
+00071             result = ( (_o1[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ) - ( (_o2[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() );
+00072         }
+00073         // if the objective _obj have to be maximized
+00074         else
+00075         {
+00076             // _o2[_obj] - _o1[_obj]
+00077             result = ( (_o2[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ) - ( (_o1[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() );
+00078         }
+00079         return result;
+00080     }
+00081 
+00082 };
+00083 
+00084 #endif /*MOEOADDITIVEEPSILONBINARYMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAggregativeComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAggregativeComparator_8h-source.html new file mode 100644 index 000000000..9048c4897 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAggregativeComparator_8h-source.html @@ -0,0 +1,68 @@ + + +ParadisEO-MOEO: moeoAggregativeComparator.h Source File + + + + +
+
+

moeoAggregativeComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoAggregativeComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOAGGREGATIVECOMPARATOR_H_
+00014 #define MOEOAGGREGATIVECOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoAggregativeComparator : public moeoComparator < MOEOT >
+00023 {
+00024 public:
+00025 
+00031     moeoAggregativeComparator(double _weightFitness = 1.0, double _weightDiversity = 1.0) : weightFitness(_weightFitness), weightDiversity(_weightDiversity)
+00032     {}
+00033 
+00034 
+00040     const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00041     {
+00042         return ( weightFitness * _moeo1.fitness() + weightDiversity * _moeo1.diversity() ) < ( weightFitness * _moeo2.fitness() + weightDiversity * _moeo2.diversity() );
+00043     }
+00044 
+00045 
+00046 private:
+00047 
+00049     double weightFitness;
+00051     double weightDiversity;
+00052 
+00053 };
+00054 
+00055 #endif /*MOEOAGGREGATIVECOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAlgo_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAlgo_8h-source.html new file mode 100644 index 000000000..fe3facd94 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoAlgo_8h-source.html @@ -0,0 +1,46 @@ + + +ParadisEO-MOEO: moeoAlgo.h Source File + + + + +
+
+

moeoAlgo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoAlgo.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOALGO_H_
+00014 #define MOEOALGO_H_
+00015 
+00019 class moeoAlgo {};
+00020 
+00021 #endif /*MOEOALGO_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchiveObjectiveVectorSavingUpdater_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchiveObjectiveVectorSavingUpdater_8h-source.html new file mode 100644 index 000000000..e33603700 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchiveObjectiveVectorSavingUpdater_8h-source.html @@ -0,0 +1,104 @@ + + +ParadisEO-MOEO: moeoArchiveObjectiveVectorSavingUpdater.h Source File + + + + +
+
+

moeoArchiveObjectiveVectorSavingUpdater.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoArchiveObjectiveVectorSavingUpdater.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_
+00014 #define MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_
+00015 
+00016 #include <fstream>
+00017 #include <string>
+00018 #include <eoPop.h>
+00019 #include <utils/eoUpdater.h>
+00020 #include <archive/moeoArchive.h>
+00021 
+00022 #define MAX_BUFFER_SIZE 1000
+00023 
+00027 template < class MOEOT >
+00028 class moeoArchiveObjectiveVectorSavingUpdater : public eoUpdater
+00029 {
+00030 public:
+00031 
+00039     moeoArchiveObjectiveVectorSavingUpdater (moeoArchive<MOEOT> & _arch, const std::string & _filename, bool _count = false, int _id = -1) :
+00040             arch(_arch), filename(_filename), count(_count), counter(0), id(_id)
+00041     {}
+00042 
+00043 
+00047     void operator()() {
+00048         char buff[MAX_BUFFER_SIZE];
+00049         if (count)
+00050         {
+00051             if (id == -1)
+00052             {
+00053                 sprintf (buff, "%s.%u", filename.c_str(), counter ++);
+00054             }
+00055             else
+00056             {
+00057                 sprintf (buff, "%s.%u.%u", filename.c_str(), id, counter ++);
+00058             }
+00059         }
+00060         else
+00061         {
+00062             if (id == -1)
+00063             {
+00064                 sprintf (buff, "%s", filename.c_str());
+00065             }
+00066             else
+00067             {
+00068                 sprintf (buff, "%s.%u", filename.c_str(), id);
+00069             }
+00070             counter ++;
+00071         }
+00072         std::ofstream f(buff);
+00073         for (unsigned int i = 0; i < arch.size (); i++)
+00074             f << arch[i].objectiveVector() << std::endl;
+00075         f.close ();
+00076     }
+00077 
+00078 
+00079 private:
+00080 
+00082     moeoArchive<MOEOT> & arch;
+00084     std::string filename;
+00086     bool count;
+00088     unsigned int counter;
+00090     int id;
+00091 
+00092 };
+00093 
+00094 #endif /*MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchiveUpdater_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchiveUpdater_8h-source.html new file mode 100644 index 000000000..0919e6b35 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchiveUpdater_8h-source.html @@ -0,0 +1,69 @@ + + +ParadisEO-MOEO: moeoArchiveUpdater.h Source File + + + + +
+
+

moeoArchiveUpdater.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoArchiveUpdater.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOARCHIVEUPDATER_H_
+00014 #define MOEOARCHIVEUPDATER_H_
+00015 
+00016 #include <eoPop.h>
+00017 #include <utils/eoUpdater.h>
+00018 #include <archive/moeoArchive.h>
+00019 
+00023 template < class MOEOT >
+00024 class moeoArchiveUpdater : public eoUpdater
+00025 {
+00026 public:
+00027 
+00033     moeoArchiveUpdater(moeoArchive < MOEOT > & _arch, const eoPop < MOEOT > & _pop) : arch(_arch), pop(_pop)
+00034     {}
+00035 
+00036 
+00040     void operator()() {
+00041         arch.update(pop);
+00042     }
+00043 
+00044 
+00045 private:
+00046 
+00048     moeoArchive < MOEOT > & arch;
+00050     const eoPop < MOEOT > & pop;
+00051 
+00052 };
+00053 
+00054 #endif /*MOEOARCHIVEUPDATER_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchive_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchive_8h-source.html new file mode 100644 index 000000000..8a2e2a597 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoArchive_8h-source.html @@ -0,0 +1,172 @@ + + +ParadisEO-MOEO: moeoArchive.h Source File + + + + +
+
+

moeoArchive.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoArchive.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOARCHIVE_H_
+00014 #define MOEOARCHIVE_H_
+00015 
+00016 #include <eoPop.h>
+00017 #include <comparator/moeoObjectiveVectorComparator.h>
+00018 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00019 
+00023 template < class MOEOT >
+00024 class moeoArchive : public eoPop < MOEOT >
+00025 {
+00026 public:
+00027 
+00028     using eoPop < MOEOT > :: size;
+00029     using eoPop < MOEOT > :: operator[];
+00030     using eoPop < MOEOT > :: back;
+00031     using eoPop < MOEOT > :: pop_back;
+00032 
+00033 
+00037     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00038 
+00039 
+00044     moeoArchive() : eoPop < MOEOT >(), comparator(paretoComparator)
+00045     {}
+00046 
+00047 
+00052     moeoArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator) : eoPop < MOEOT >(), comparator(_comparator)
+00053     {}
+00054 
+00055 
+00060     bool dominates (const ObjectiveVector & _objectiveVector) const
+00061     {
+00062         for (unsigned int i = 0; i<size(); i++)
+00063         {
+00064             // if _objectiveVector is dominated by the ith individual of the archive...
+00065             if ( comparator(_objectiveVector, operator[](i).objectiveVector()) )
+00066             {
+00067                 return true;
+00068             }
+00069         }
+00070         return false;
+00071     }
+00072 
+00073 
+00078     bool contains (const ObjectiveVector & _objectiveVector) const
+00079     {
+00080         for (unsigned int i = 0; i<size(); i++)
+00081         {
+00082             if (operator[](i).objectiveVector() == _objectiveVector)
+00083             {
+00084                 return true;
+00085             }
+00086         }
+00087         return false;
+00088     }
+00089 
+00090 
+00095     void update (const MOEOT & _moeo)
+00096     {
+00097         // first step: removing the dominated solutions from the archive
+00098         for (unsigned int j=0; j<size();)
+00099         {
+00100             // if the jth solution contained in the archive is dominated by _moeo
+00101             if ( comparator(operator[](j).objectiveVector(), _moeo.objectiveVector()) )
+00102             {
+00103                 operator[](j) = back();
+00104                 pop_back();
+00105             }
+00106             else if (_moeo.objectiveVector() == operator[](j).objectiveVector())
+00107             {
+00108                 operator[](j) = back();
+00109                 pop_back();
+00110             }
+00111             else
+00112             {
+00113                 j++;
+00114             }
+00115         }
+00116         // second step: is _moeo dominated?
+00117         bool dom = false;
+00118         for (unsigned int j=0; j<size(); j++)
+00119         {
+00120             // if _moeo is dominated by the jth solution contained in the archive
+00121             if ( comparator(_moeo.objectiveVector(), operator[](j).objectiveVector()) )
+00122             {
+00123                 dom = true;
+00124                 break;
+00125             }
+00126         }
+00127         if (!dom)
+00128         {
+00129             push_back(_moeo);
+00130         }
+00131     }
+00132 
+00133 
+00138     void update (const eoPop < MOEOT > & _pop)
+00139     {
+00140         for (unsigned int i=0; i<_pop.size(); i++)
+00141         {
+00142             update(_pop[i]);
+00143         }
+00144     }
+00145 
+00146 
+00151     bool equals (const moeoArchive < MOEOT > & _arch)
+00152     {
+00153         for (unsigned int i=0; i<size(); i++)
+00154         {
+00155             if (! _arch.contains(operator[](i).objectiveVector()))
+00156             {
+00157                 return false;
+00158             }
+00159         }
+00160         for (unsigned int i=0; i<_arch.size() ; i++)
+00161         {
+00162             if (! contains(_arch[i].objectiveVector()))
+00163             {
+00164                 return false;
+00165             }
+00166         }
+00167         return true;
+00168     }
+00169 
+00170 
+00171 private:
+00172 
+00174     moeoObjectiveVectorComparator < ObjectiveVector > & comparator;
+00176     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00177 
+00178 };
+00179 
+00180 #endif /*MOEOARCHIVE_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBinaryIndicatorBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBinaryIndicatorBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..19b8d4904 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBinaryIndicatorBasedFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoBinaryIndicatorBasedFitnessAssignment.h Source File + + + + +
+
+

moeoBinaryIndicatorBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoBinaryIndicatorBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOBINARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOBINARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoIndicatorBasedFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoBinaryIndicatorBasedFitnessAssignment : public moeoIndicatorBasedFitnessAssignment < MOEOT > {};
+00023 
+00024 #endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBinaryMetricSavingUpdater_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBinaryMetricSavingUpdater_8h-source.html new file mode 100644 index 000000000..7c86a27ff --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBinaryMetricSavingUpdater_8h-source.html @@ -0,0 +1,98 @@ + + +ParadisEO-MOEO: moeoBinaryMetricSavingUpdater.h Source File + + + + +
+
+

moeoBinaryMetricSavingUpdater.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoBinaryMetricSavingUpdater.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOBINARYMETRICSAVINGUPDATER_H_
+00014 #define MOEOBINARYMETRICSAVINGUPDATER_H_
+00015 
+00016 #include <fstream>
+00017 #include <string>
+00018 #include <vector>
+00019 #include <eoPop.h>
+00020 #include <utils/eoUpdater.h>
+00021 #include <metric/moeoMetric.h>
+00022 
+00027 template < class MOEOT >
+00028 class moeoBinaryMetricSavingUpdater : public eoUpdater
+00029 {
+00030 public:
+00031 
+00033     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00034 
+00035 
+00042     moeoBinaryMetricSavingUpdater (moeoVectorVsVectorBinaryMetric < ObjectiveVector, double > & _metric, const eoPop < MOEOT > & _pop, std::string _filename) :
+00043             metric(_metric), pop(_pop), filename(_filename), counter(1)
+00044     {}
+00045 
+00046 
+00050     void operator()() {
+00051         if (pop.size()) {
+00052             if (firstGen) {
+00053                 firstGen = false;
+00054             }
+00055             else {
+00056                 // creation of the two Pareto sets
+00057                 std::vector < ObjectiveVector > from;
+00058                 std::vector < ObjectiveVector > to;
+00059                 for (unsigned int i=0; i<pop.size(); i++)
+00060                     from.push_back(pop[i].objectiveVector());
+00061                 for (unsigned int i=0 ; i<oldPop.size(); i++)
+00062                     to.push_back(oldPop[i].objectiveVector());
+00063                 // writing the result into the file
+00064                 std::ofstream f (filename.c_str(), std::ios::app);
+00065                 f << counter++ << ' ' << metric(from,to) << std::endl;
+00066                 f.close();
+00067             }
+00068             oldPop = pop;
+00069         }
+00070     }
+00071 
+00072 
+00073 private:
+00074 
+00076     moeoVectorVsVectorBinaryMetric < ObjectiveVector, double > & metric;
+00078     const eoPop < MOEOT > & pop;
+00080     eoPop< MOEOT > oldPop;
+00082     std::string filename;
+00084     bool firstGen;
+00086     unsigned int counter;
+00087 
+00088 };
+00089 
+00090 #endif /*MOEOBINARYMETRICSAVINGUPDATER_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBitVector_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBitVector_8h-source.html new file mode 100644 index 000000000..de5e8b4bb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoBitVector_8h-source.html @@ -0,0 +1,92 @@ + + +ParadisEO-MOEO: moeoBitVector.h Source File + + + + +
+
+

moeoBitVector.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoBitVector.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOBITVECTOR_H_
+00014 #define MOEOBITVECTOR_H_
+00015 
+00016 #include <core/moeoVector.h>
+00017 
+00021 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity >
+00022 class moeoBitVector : public moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >
+00023 {
+00024 public:
+00025 
+00026     using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: begin;
+00027     using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: end;
+00028     using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: resize;
+00029     using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: size;
+00030 
+00031 
+00037     moeoBitVector(unsigned int _size = 0, bool _value = false) : moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >(_size, _value)
+00038     {}
+00039 
+00040 
+00044     virtual std::string className() const
+00045     {
+00046         return "moeoBitVector";
+00047     }
+00048     
+00049     
+00054     virtual void printOn(std::ostream & _os) const
+00055     {
+00056         MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn(_os);
+00057         _os << ' ';
+00058         _os << size() << ' ';
+00059         std::copy(begin(), end(), std::ostream_iterator<bool>(_os));
+00060     }
+00061 
+00062 
+00067     virtual void readFrom(std::istream & _is)
+00068     {
+00069         MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom(_is);
+00070         unsigned int s;
+00071         _is >> s;
+00072         std::string bits;
+00073         _is >> bits;
+00074         if (_is)
+00075         {
+00076             resize(bits.size());
+00077             std::transform(bits.begin(), bits.end(), begin(), std::bind2nd(std::equal_to<char>(), '1'));
+00078         }
+00079     }
+00080 
+00081 };
+00082 
+00083 #endif /*MOEOBITVECTOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCombinedLS_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCombinedLS_8h-source.html new file mode 100644 index 000000000..3593cea17 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCombinedLS_8h-source.html @@ -0,0 +1,76 @@ + + +ParadisEO-MOEO: moeoCombinedLS.h Source File + + + + +
+
+

moeoCombinedLS.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoCombinedLS.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOCOMBINEDLS_H_
+00014 #define MOEOCOMBINEDLS_H_
+00015 
+00016 #include <vector>
+00017 #include <algo/moeoLS.h>
+00018 #include <archive/moeoArchive.h>
+00019 
+00024 template < class MOEOT, class Type >
+00025 class moeoCombinedLS : public moeoLS < MOEOT, Type >
+00026 {
+00027 public:
+00028 
+00033     moeoCombinedLS(moeoLS < MOEOT, Type > & _first_mols)
+00034     {
+00035         combinedLS.push_back (& _first_mols);
+00036     }
+00037 
+00042     void add(moeoLS < MOEOT, Type > & _mols)
+00043     {
+00044         combinedLS.push_back(& _mols);
+00045     }
+00046 
+00053     void operator () (Type _type, moeoArchive < MOEOT > & _arch)
+00054     {
+00055         for (unsigned int i=0; i<combinedLS.size(); i++)
+00056             combinedLS[i] -> operator()(_type, _arch);
+00057     }
+00058 
+00059 
+00060 private:
+00061 
+00063     std::vector< moeoLS < MOEOT, Type > * >  combinedLS;
+00064 
+00065 };
+00066 
+00067 #endif /*MOEOCOMBINEDLS_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoComparator_8h-source.html new file mode 100644 index 000000000..c498cc6d7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoComparator_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoComparator.h Source File + + + + +
+
+

moeoComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOCOMPARATOR_H_
+00014 #define MOEOCOMPARATOR_H_
+00015 
+00016 #include <eoFunctor.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoComparator : public eoBF < const MOEOT &, const MOEOT &, const bool > {};
+00023 
+00024 #endif /*MOEOCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoContributionMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoContributionMetric_8h-source.html new file mode 100644 index 000000000..27eba87d0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoContributionMetric_8h-source.html @@ -0,0 +1,110 @@ + + +ParadisEO-MOEO: moeoContributionMetric.h Source File + + + + +
+
+

moeoContributionMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoContributionMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOCONTRIBUTIONMETRIC_H_
+00014 #define MOEOCONTRIBUTIONMETRIC_H_
+00015 
+00016 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00017 #include <metric/moeoMetric.h>
+00018 
+00023 template < class ObjectiveVector >
+00024 class moeoContributionMetric : public moeoVectorVsVectorBinaryMetric < ObjectiveVector, double >
+00025 {
+00026 public:
+00027 
+00033     double operator()(const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) {
+00034         unsigned int c  = card_C(_set1, _set2);
+00035         unsigned int w1 = card_W(_set1, _set2);
+00036         unsigned int n1 = card_N(_set1, _set2);
+00037         unsigned int w2 = card_W(_set2, _set1);
+00038         unsigned int n2 = card_N(_set2, _set1);
+00039         return (double) (c / 2.0 + w1 + n1) / (c + w1 + n1 + w2 + n2);
+00040     }
+00041 
+00042 
+00043 private:
+00044 
+00046     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00047     
+00048     
+00054     unsigned int card_C (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) {
+00055         unsigned int c=0;
+00056         for (unsigned int i=0; i<_set1.size(); i++)
+00057             for (unsigned int j=0; j<_set2.size(); j++)
+00058                 if (_set1[i] == _set2[j]) {
+00059                     c++;
+00060                     break;
+00061                 }
+00062         return c;
+00063     }
+00064 
+00065 
+00071     unsigned int card_W (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) {
+00072         unsigned int w=0;
+00073         for (unsigned int i=0; i<_set1.size(); i++)
+00074             for (unsigned int j=0; j<_set2.size(); j++)
+00075                 if (paretoComparator(_set2[j], _set1[i]))
+00076                 {
+00077                     w++;
+00078                     break;
+00079                 }
+00080         return w;
+00081     }
+00082 
+00083 
+00089     unsigned int card_N (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) {
+00090         unsigned int n=0;
+00091         for (unsigned int i=0; i<_set1.size(); i++) {
+00092             bool domin_rel = false;
+00093             for (unsigned int j=0; j<_set2.size(); j++)
+00094                 if ( (paretoComparator(_set2[j], _set1[i])) || (paretoComparator(_set1[i], _set2[j])) )
+00095                 {
+00096                     domin_rel = true;
+00097                     break;
+00098                 }
+00099             if (! domin_rel)
+00100                 n++;
+00101         }
+00102         return n;
+00103     }
+00104 
+00105 };
+00106 
+00107 #endif /*MOEOCONTRIBUTIONMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoConvertPopToObjectiveVectors_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoConvertPopToObjectiveVectors_8h-source.html new file mode 100644 index 000000000..414d5cde9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoConvertPopToObjectiveVectors_8h-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoConvertPopToObjectiveVectors.h Source File + + + + +
+
+

moeoConvertPopToObjectiveVectors.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoConvertPopToObjectiveVectors.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOPOPTOOBJECTIVEVECTORS_H_
+00014 #define MOEOPOPTOOBJECTIVEVECTORS_H_
+00015 
+00016 #include <vector>
+00017 #include <eoFunctor.h>
+00018 
+00022 template < class MOEOT, class ObjectiveVector = typename MOEOT::ObjectiveVector >
+00023 class moeoConvertPopToObjectiveVectors : public eoUF < const eoPop < MOEOT >, const std::vector < ObjectiveVector > >
+00024 {
+00025 public:
+00026 
+00031     const std::vector < ObjectiveVector > operator()(const eoPop < MOEOT > _pop)
+00032     {
+00033         std::vector < ObjectiveVector > result;
+00034         result.resize(_pop.size());
+00035         for (unsigned int i=0; i<_pop.size(); i++)
+00036         {
+00037             result.push_back(_pop[i].objectiveVector());
+00038         }
+00039         return result;
+00040     }
+00041 
+00042 };
+00043 
+00044 #endif /*MOEOPOPTOOBJECTIVEVECTORS_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCriterionBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCriterionBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..2f176243d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCriterionBasedFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoCriterionBasedFitnessAssignment.h Source File + + + + +
+
+

moeoCriterionBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoCriterionBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoCriterionBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {};
+00023 
+00024 #endif /*MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCrowdingDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCrowdingDiversityAssignment_8h-source.html new file mode 100644 index 000000000..bb20ab276 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoCrowdingDiversityAssignment_8h-source.html @@ -0,0 +1,124 @@ + + +ParadisEO-MOEO: moeoCrowdingDiversityAssignment.h Source File + + + + +
+
+

moeoCrowdingDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoCrowdingDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOCROWDINGDIVERSITYASSIGNMENT_H_
+00014 #define MOEOCROWDINGDIVERSITYASSIGNMENT_H_
+00015 
+00016 #include <eoPop.h>
+00017 #include <comparator/moeoOneObjectiveComparator.h>
+00018 #include <diversity/moeoDiversityAssignment.h>
+00019 
+00024 template < class MOEOT >
+00025 class moeoCrowdingDiversityAssignment : public moeoDiversityAssignment < MOEOT >
+00026 {
+00027 public:
+00028 
+00030     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00031 
+00032 
+00036     double inf() const
+00037     {
+00038         return std::numeric_limits<double>::max();
+00039     }
+00040 
+00041 
+00045     double tiny() const
+00046     {
+00047         return 1e-6;
+00048     }
+00049 
+00050 
+00055     void operator()(eoPop < MOEOT > & _pop)
+00056     {
+00057         if (_pop.size() <= 2)
+00058         {
+00059             for (unsigned int i=0; i<_pop.size(); i++)
+00060             {
+00061                 _pop[i].diversity(inf());
+00062             }
+00063         }
+00064         else
+00065         {
+00066             setDistances(_pop);
+00067         }
+00068     }
+00069 
+00070 
+00078     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00079     {
+00080         std::cout << "WARNING : updateByDeleting not implemented in moeoCrowdingDiversityAssignment" << std::endl;
+00081     }
+00082 
+00083 
+00084 protected:
+00085 
+00090     virtual void setDistances (eoPop < MOEOT > & _pop)
+00091     {
+00092         double min, max, distance;
+00093         unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives();
+00094         // set diversity to 0
+00095         for (unsigned int i=0; i<_pop.size(); i++)
+00096         {
+00097             _pop[i].diversity(0);
+00098         }
+00099         // for each objective
+00100         for (unsigned int obj=0; obj<nObjectives; obj++)
+00101         {
+00102             // comparator
+00103             moeoOneObjectiveComparator < MOEOT > objComp(obj);
+00104             // sort
+00105             std::sort(_pop.begin(), _pop.end(), objComp);
+00106             // min & max
+00107             min = _pop[0].objectiveVector()[obj];
+00108             max = _pop[_pop.size()-1].objectiveVector()[obj];
+00109             // set the diversity value to infiny for min and max
+00110             _pop[0].diversity(inf());
+00111             _pop[_pop.size()-1].diversity(inf());
+00112             for (unsigned int i=1; i<_pop.size()-1; i++)
+00113             {
+00114                 distance = (_pop[i+1].objectiveVector()[obj] - _pop[i-1].objectiveVector()[obj]) / (max-min);
+00115                 _pop[i].diversity(_pop[i].diversity() + distance);
+00116             }
+00117         }
+00118     }
+00119 
+00120 };
+00121 
+00122 #endif /*MOEOCROWDINGDIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDetTournamentSelect_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDetTournamentSelect_8h-source.html new file mode 100644 index 000000000..32ddd38f1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDetTournamentSelect_8h-source.html @@ -0,0 +1,92 @@ + + +ParadisEO-MOEO: moeoDetTournamentSelect.h Source File + + + + +
+
+

moeoDetTournamentSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDetTournamentSelect.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODETTOURNAMENTSELECT_H_
+00014 #define MOEODETTOURNAMENTSELECT_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00018 #include <selection/moeoSelectOne.h>
+00019 #include <selection/moeoSelectors.h>
+00020 
+00024 template < class MOEOT > class moeoDetTournamentSelect:public moeoSelectOne < MOEOT >
+00025 {
+00026 public:
+00027 
+00033     moeoDetTournamentSelect (moeoComparator < MOEOT > & _comparator, unsigned int _tSize = 2) : comparator (_comparator), tSize (_tSize)
+00034     {
+00035         // consistency check
+00036         if (tSize < 2)
+00037         {
+00038             std::
+00039             cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n";
+00040             tSize = 2;
+00041         }
+00042     }
+00043 
+00044 
+00049     moeoDetTournamentSelect (unsigned int _tSize = 2) : comparator (defaultComparator), tSize (_tSize)
+00050     {
+00051         // consistency check
+00052         if (tSize < 2)
+00053         {
+00054             std::
+00055             cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n";
+00056             tSize = 2;
+00057         }
+00058     }
+00059 
+00060 
+00065     const MOEOT & operator() (const eoPop < MOEOT > &_pop)
+00066     {
+00067         // use the selector
+00068         return mo_deterministic_tournament (_pop, tSize, comparator);
+00069     }
+00070 
+00071 
+00072 protected:
+00073 
+00075     moeoComparator < MOEOT > & comparator;
+00077     moeoFitnessThenDiversityComparator < MOEOT > defaultComparator;
+00079     unsigned int tSize;
+00080 
+00081 };
+00082 
+00083 #endif /*MOEODETTOURNAMENTSELECT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDistanceMatrix_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDistanceMatrix_8h-source.html new file mode 100644 index 000000000..4b704163f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDistanceMatrix_8h-source.html @@ -0,0 +1,91 @@ + + +ParadisEO-MOEO: moeoDistanceMatrix.h Source File + + + + +
+
+

moeoDistanceMatrix.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDistanceMatrix.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODISTANCEMATRIX_H_
+00014 #define MOEODISTANCEMATRIX_H_
+00015 
+00016 #include <vector>
+00017 #include <eoFunctor.h>
+00018 #include <distance/moeoDistance.h>
+00019 
+00023 template < class MOEOT , class Type >
+00024 class moeoDistanceMatrix : public eoUF < const eoPop < MOEOT > &, void > , public std::vector< std::vector < Type > >
+00025 {
+00026 public:
+00027 
+00028     using std::vector< std::vector < Type > > :: size;
+00029     using std::vector< std::vector < Type > > :: operator[];
+00030 
+00031 
+00037     moeoDistanceMatrix (unsigned int _size, moeoDistance < MOEOT , Type > & _distance) : distance(_distance)
+00038     {
+00039         this->resize(_size);
+00040         for (unsigned int i=0; i<_size; i++)
+00041         {
+00042             this->operator[](i).resize(_size);
+00043         }
+00044     }
+00045 
+00046 
+00051     void operator()(const eoPop < MOEOT > & _pop)
+00052     {
+00053         // 1 - setup the bounds (if necessary)
+00054         distance.setup(_pop);
+00055         // 2 - compute distances
+00056         this->operator[](0).operator[](0) = Type();
+00057         for (unsigned int i=0; i<size(); i++)
+00058         {
+00059             this->operator[](i).operator[](i) = Type();
+00060             for (unsigned int j=0; j<i; j++)
+00061             {
+00062                 this->operator[](i).operator[](j) = distance(_pop[i], _pop[j]);
+00063                 this->operator[](j).operator[](i) = this->operator[](i).operator[](j);
+00064             }
+00065         }
+00066     }
+00067 
+00068 
+00069 private:
+00070 
+00072     moeoDistance < MOEOT , Type > & distance;
+00073 
+00074 };
+00075 
+00076 #endif /*MOEODISTANCEMATRIX_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDistance_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDistance_8h-source.html new file mode 100644 index 000000000..528d31801 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDistance_8h-source.html @@ -0,0 +1,64 @@ + + +ParadisEO-MOEO: moeoDistance.h Source File + + + + +
+
+

moeoDistance.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDistance.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODISTANCE_H_
+00014 #define MOEODISTANCE_H_
+00015 
+00016 #include <eoFunctor.h>
+00017 
+00021 template < class MOEOT , class Type >
+00022 class moeoDistance : public eoBF < const MOEOT &, const MOEOT &, const Type >
+00023 {
+00024 public:
+00025 
+00030     virtual void setup(const eoPop < MOEOT > & _pop)
+00031     {}
+00032 
+00033 
+00040     virtual void setup(double _min, double _max, unsigned int _obj)
+00041     {}
+00042 
+00043 
+00049     virtual void setup(eoRealInterval _realInterval, unsigned int _obj)
+00050     {}
+00051 
+00052 };
+00053 
+00054 #endif /*MOEODISTANCE_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDiversityAssignment_8h-source.html new file mode 100644 index 000000000..a20621a4e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDiversityAssignment_8h-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoDiversityAssignment.h Source File + + + + +
+
+

moeoDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODIVERSITYASSIGNMENT_H_
+00014 #define MOEODIVERSITYASSIGNMENT_H_
+00015 
+00016 #include <eoFunctor.h>
+00017 #include <eoPop.h>
+00018 
+00022 template < class MOEOT >
+00023 class moeoDiversityAssignment : public eoUF < eoPop < MOEOT > &, void >
+00024 {
+00025 public:
+00026 
+00028     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00029 
+00030 
+00036     virtual void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) = 0;
+00037 
+00038 
+00044     void updateByDeleting(eoPop < MOEOT > & _pop, MOEOT & _moeo)
+00045     {
+00046         updateByDeleting(_pop, _moeo.objectiveVector());
+00047     }
+00048 
+00049 };
+00050 
+00051 #endif /*MOEODIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDiversityThenFitnessComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDiversityThenFitnessComparator_8h-source.html new file mode 100644 index 000000000..645c33ca7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDiversityThenFitnessComparator_8h-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoDiversityThenFitnessComparator.h Source File + + + + +
+
+

moeoDiversityThenFitnessComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDiversityThenFitnessComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODIVERSITYTHENFITNESSCOMPARATOR_H_
+00014 #define MOEODIVERSITYTHENFITNESSCOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoDiversityThenFitnessComparator : public moeoComparator < MOEOT >
+00023 {
+00024 public:
+00025 
+00031     const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00032     {
+00033         if (_moeo1.diversity() == _moeo2.diversity())
+00034         {
+00035             return _moeo1.fitness() < _moeo2.fitness();
+00036         }
+00037         else
+00038         {
+00039             return _moeo1.diversity() < _moeo2.diversity();
+00040         }
+00041     }
+00042 
+00043 };
+00044 
+00045 #endif /*MOEODIVERSITYTHENFITNESSCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDummyDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDummyDiversityAssignment_8h-source.html new file mode 100644 index 000000000..f0b3cb2b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDummyDiversityAssignment_8h-source.html @@ -0,0 +1,74 @@ + + +ParadisEO-MOEO: moeoDummyDiversityAssignment.h Source File + + + + +
+
+

moeoDummyDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDummyDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODUMMYDIVERSITYASSIGNMENT_H_
+00014 #define MOEODUMMYDIVERSITYASSIGNMENT_H_
+00015 
+00016 #include<diversity/moeoDiversityAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoDummyDiversityAssignment : public moeoDiversityAssignment < MOEOT >
+00023 {
+00024 public:
+00025 
+00027     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00028 
+00029 
+00034     void operator () (eoPop < MOEOT > & _pop)
+00035     {
+00036         for (unsigned int idx = 0; idx<_pop.size (); idx++)
+00037         {
+00038             if (_pop[idx].invalidDiversity())
+00039             {
+00040                 // set the diversity to 0
+00041                 _pop[idx].diversity(0.0);
+00042             }
+00043         }
+00044     }
+00045 
+00046 
+00052     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00053     {
+00054         // nothing to do...  ;-)
+00055     }
+00056 
+00057 };
+00058 
+00059 #endif /*MOEODUMMYDIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDummyFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDummyFitnessAssignment_8h-source.html new file mode 100644 index 000000000..ea85bf4e1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoDummyFitnessAssignment_8h-source.html @@ -0,0 +1,74 @@ + + +ParadisEO-MOEO: moeoDummyFitnessAssignment.h Source File + + + + +
+
+

moeoDummyFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDummyFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODUMMYFITNESSASSIGNMENT_H_
+00014 #define MOEODUMMYFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoDummyFitnessAssignment : public moeoFitnessAssignment < MOEOT >
+00023 {
+00024 public:
+00025 
+00027     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00028 
+00029 
+00034     void operator () (eoPop < MOEOT > & _pop)
+00035     {
+00036         for (unsigned int idx = 0; idx<_pop.size (); idx++)
+00037         {
+00038             if (_pop[idx].invalidFitness())
+00039             {
+00040                 // set the diversity to 0
+00041                 _pop[idx].fitness(0.0);
+00042             }
+00043         }
+00044     }
+00045 
+00046 
+00052     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00053     {
+00054         // nothing to do...  ;-)
+00055     }
+00056 
+00057 };
+00058 
+00059 #endif /*MOEODUMMYFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEA_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEA_8h-source.html new file mode 100644 index 000000000..1059080cd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEA_8h-source.html @@ -0,0 +1,50 @@ + + +ParadisEO-MOEO: moeoEA.h Source File + + + + +
+
+

moeoEA.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEA.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOEA_H_
+00014 #define MOEOEA_H_
+00015 
+00016 #include <eoAlgo.h>
+00017 #include <algo/moeoAlgo.h>
+00018 
+00022 template < class MOEOT >
+00023 class moeoEA : public moeoAlgo, public eoAlgo < MOEOT > {};
+00024 
+00025 #endif /*MOEOEA_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEasyEA_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEasyEA_8h-source.html new file mode 100644 index 000000000..e6408d9a9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEasyEA_8h-source.html @@ -0,0 +1,169 @@ + + +ParadisEO-MOEO: moeoEasyEA.h Source File + + + + +
+
+

moeoEasyEA.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEasyEA.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef _MOEOEASYEA_H
+00014 #define _MOEOEASYEA_H
+00015 
+00016 #include <apply.h>
+00017 #include <eoBreed.h>
+00018 #include <eoContinue.h>
+00019 #include <eoMergeReduce.h>
+00020 #include <eoPopEvalFunc.h>
+00021 #include <eoSelect.h>
+00022 #include <eoTransform.h>
+00023 #include <algo/moeoEA.h>
+00024 #include <diversity/moeoDiversityAssignment.h>
+00025 #include <diversity/moeoDummyDiversityAssignment.h>
+00026 #include <fitness/moeoFitnessAssignment.h>
+00027 #include <replacement/moeoReplacement.h>
+00028 
+00032 template < class MOEOT >
+00033 class moeoEasyEA: public moeoEA < MOEOT >
+00034 {
+00035 public:
+00036 
+00047     moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoBreed < MOEOT > & _breed, moeoReplacement < MOEOT > & _replace,
+00048                moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false)
+00049             :
+00050             continuator(_continuator), eval (_eval), loopEval(_eval), popEval(loopEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(dummyMerge, dummyReduce), replace(_replace),
+00051             fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection)
+00052     {}
+00053 
+00054 
+00065     moeoEasyEA(eoContinue < MOEOT > & _continuator, eoPopEvalFunc < MOEOT > & _popEval, eoBreed < MOEOT > & _breed, moeoReplacement < MOEOT > & _replace,
+00066                moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false)
+00067             :
+00068             continuator(_continuator), eval (dummyEval), loopEval(dummyEval), popEval(_popEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(dummyMerge, dummyReduce), replace(_replace),
+00069             fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection)
+00070     {}
+00071 
+00072 
+00084     moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoBreed < MOEOT > & _breed, eoMerge < MOEOT > & _merge, eoReduce< MOEOT > & _reduce,
+00085                moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false)
+00086             :
+00087             continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(_merge,_reduce), replace(mergeReduce),
+00088             fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection)
+00089     {}
+00090 
+00091 
+00103     moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoSelect < MOEOT > & _select, eoTransform < MOEOT > & _transform, moeoReplacement < MOEOT > & _replace,
+00104                moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false)
+00105             :
+00106             continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(_select, _transform), breed(selectTransform), mergeReduce(dummyMerge, dummyReduce), replace(_replace),
+00107             fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection)
+00108     {}
+00109 
+00110 
+00123     moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoSelect < MOEOT > & _select, eoTransform < MOEOT > & _transform, eoMerge < MOEOT > & _merge, eoReduce< MOEOT > & _reduce,
+00124                moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false)
+00125             :
+00126             continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(_select, _transform), breed(selectTransform), mergeReduce(_merge,_reduce), replace(mergeReduce),
+00127             fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection)
+00128     {}
+00129 
+00130 
+00135     virtual void operator()(eoPop < MOEOT > & _pop)
+00136     {
+00137         eoPop < MOEOT > offspring, empty_pop;
+00138         popEval(empty_pop, _pop); // A first eval of pop.
+00139         bool firstTime = true;
+00140         do
+00141         {
+00142             try
+00143             {
+00144                 unsigned int pSize = _pop.size();
+00145                 offspring.clear(); // new offspring
+00146                 // fitness and diversity assignment (if you want to or if it is the first generation)
+00147                 if (evalFitAndDivBeforeSelection || firstTime)
+00148                 {
+00149                     firstTime = false;
+00150                     fitnessEval(_pop);
+00151                     diversityEval(_pop);
+00152                 }
+00153                 breed(_pop, offspring);
+00154                 popEval(_pop, offspring); // eval of parents + offspring if necessary
+00155                 replace(_pop, offspring); // after replace, the new pop. is in _pop
+00156                 if (pSize > _pop.size())
+00157                 {
+00158                     throw std::runtime_error("Population shrinking!");
+00159                 }
+00160                 else if (pSize < _pop.size())
+00161                 {
+00162                     throw std::runtime_error("Population growing!");
+00163                 }
+00164             }
+00165             catch (std::exception& e)
+00166             {
+00167                 std::string s = e.what();
+00168                 s.append( " in moeoEasyEA");
+00169                 throw std::runtime_error( s );
+00170             }
+00171         } while (continuator(_pop));
+00172     }
+00173 
+00174 
+00175 protected:
+00176 
+00178     eoContinue < MOEOT > & continuator;
+00180     eoEvalFunc < MOEOT > & eval;
+00182     eoPopLoopEval < MOEOT > loopEval;
+00184     eoPopEvalFunc < MOEOT > & popEval;
+00186     eoSelectTransform < MOEOT > selectTransform;
+00188     eoBreed < MOEOT > & breed;
+00190     eoMergeReduce < MOEOT > mergeReduce;
+00192     moeoReplacement < MOEOT > & replace;
+00194     moeoFitnessAssignment < MOEOT > & fitnessEval;
+00196     moeoDiversityAssignment < MOEOT > & diversityEval;
+00198     bool evalFitAndDivBeforeSelection;
+00200     class eoDummyEval : public eoEvalFunc < MOEOT >
+00201     { public: 
+00202         void operator()(MOEOT &) {}} dummyEval;
+00204     class eoDummySelect : public eoSelect < MOEOT >
+00205     { public: 
+00206         void operator()(const eoPop < MOEOT > &, eoPop < MOEOT > &) {} } dummySelect;
+00208     class eoDummyTransform : public eoTransform < MOEOT >
+00209     { public: 
+00210         void operator()(eoPop < MOEOT > &) {} } dummyTransform;
+00212     eoNoElitism < MOEOT > dummyMerge;
+00214     eoTruncate < MOEOT > dummyReduce;
+00215 
+00216 };
+00217 
+00218 #endif /*MOEOEASYEA_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoElitistReplacement_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoElitistReplacement_8h-source.html new file mode 100644 index 000000000..4aafd6694 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoElitistReplacement_8h-source.html @@ -0,0 +1,114 @@ + + +ParadisEO-MOEO: moeoElitistReplacement.h Source File + + + + +
+
+

moeoElitistReplacement.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoElitistReplacement.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOELITISTREPLACEMENT_H_
+00014 #define MOEOELITISTREPLACEMENT_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00018 #include <diversity/moeoDiversityAssignment.h>
+00019 #include <diversity/moeoDummyDiversityAssignment.h>
+00020 #include <fitness/moeoFitnessAssignment.h>
+00021 #include <replacement/moeoReplacement.h>
+00022 
+00026 template < class MOEOT > class moeoElitistReplacement:public moeoReplacement < MOEOT >
+00027 {
+00028 public:
+00029 
+00036     moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment, moeoComparator < MOEOT > & _comparator) :
+00037             fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (_comparator)
+00038     {}
+00039 
+00040 
+00046     moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment) :
+00047             fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (defaultComparator)
+00048     {}
+00049 
+00050 
+00056     moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoComparator < MOEOT > & _comparator) :
+00057             fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (_comparator)
+00058     {}
+00059 
+00060 
+00066     moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment) :
+00067             fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (defaultComparator)
+00068     {}
+00069 
+00070 
+00076     void operator () (eoPop < MOEOT > &_parents, eoPop < MOEOT > &_offspring)
+00077     {
+00078         unsigned int sz = _parents.size ();
+00079         // merges offspring and parents into a global population
+00080         _parents.reserve (_parents.size () + _offspring.size ());
+00081         std::copy (_offspring.begin (), _offspring.end (), back_inserter (_parents));
+00082         // evaluates the fitness and the diversity of this global population
+00083         fitnessAssignment (_parents);
+00084         diversityAssignment (_parents);
+00085         // sorts the whole population according to the comparator
+00086         std::sort(_parents.begin(), _parents.end(), comparator);
+00087         // finally, resize this global population
+00088         _parents.resize (sz);
+00089         // and clear the offspring population
+00090         _offspring.clear ();
+00091     }
+00092 
+00093 
+00094 protected:
+00095 
+00097     moeoFitnessAssignment < MOEOT > & fitnessAssignment;
+00099     moeoDiversityAssignment < MOEOT > & diversityAssignment;
+00101     moeoDummyDiversityAssignment < MOEOT > defaultDiversity;
+00103     moeoFitnessThenDiversityComparator < MOEOT > defaultComparator;
+00105     class Cmp
+00106     {
+00107     public:
+00112         Cmp(moeoComparator < MOEOT > & _comp) : comp(_comp)
+00113         {}
+00119         bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00120         {
+00121             return comp(_moeo2,_moeo1);
+00122         }
+00123     private:
+00125         moeoComparator < MOEOT > & comp;
+00126     } comparator;
+00127 
+00128 };
+00129 
+00130 #endif /*MOEOELITISTREPLACEMENT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEntropyMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEntropyMetric_8h-source.html new file mode 100644 index 000000000..235811f6d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEntropyMetric_8h-source.html @@ -0,0 +1,174 @@ + + +ParadisEO-MOEO: moeoEntropyMetric.h Source File + + + + +
+
+

moeoEntropyMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEntropyMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOENTROPYMETRIC_H_
+00014 #define MOEOENTROPYMETRIC_H_
+00015 
+00016 #include <vector>
+00017 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00018 #include <metric/moeoMetric.h>
+00019 
+00024 template < class ObjectiveVector >
+00025 class moeoEntropyMetric : public moeoVectorVsVectorBinaryMetric < ObjectiveVector, double >
+00026 {
+00027 public:
+00028 
+00034     double operator()(const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) {
+00035         // normalization
+00036         std::vector< ObjectiveVector > set1 = _set1;
+00037         std::vector< ObjectiveVector > set2= _set2;
+00038         removeDominated (set1);
+00039         removeDominated (set2);
+00040         prenormalize (set1);
+00041         normalize (set1);
+00042         normalize (set2);
+00043 
+00044         // making of PO*
+00045         std::vector< ObjectiveVector > star; // rotf :-)
+00046         computeUnion (set1, set2, star);
+00047         removeDominated (star);
+00048 
+00049         // making of PO1 U PO*
+00050         std::vector< ObjectiveVector > union_set1_star; // rotf again ...
+00051         computeUnion (set1, star, union_set1_star);
+00052 
+00053         unsigned int C = union_set1_star.size();
+00054         float omega=0;
+00055         float entropy=0;
+00056 
+00057         for (unsigned int i=0 ; i<C ; i++) {
+00058             unsigned int N_i = howManyInNicheOf (union_set1_star, union_set1_star[i], star.size());
+00059             unsigned int n_i = howManyInNicheOf (set1, union_set1_star[i], star.size());
+00060             if (n_i > 0) {
+00061                 omega += 1.0 / N_i;
+00062                 entropy += (float) n_i / (N_i * C) * log (((float) n_i / C) / log (2.0));
+00063             }
+00064         }
+00065         entropy /= - log (omega);
+00066         entropy *= log (2.0);
+00067         return entropy;
+00068     }
+00069 
+00070 
+00071 private:
+00072 
+00074     std::vector<double> vect_min_val;
+00076     std::vector<double> vect_max_val;
+00078     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00079 
+00080 
+00085     void removeDominated(std::vector < ObjectiveVector > & _f) {
+00086         for (unsigned int i=0 ; i<_f.size(); i++) {
+00087             bool dom = false;
+00088             for (unsigned int j=0; j<_f.size(); j++)
+00089                 if (i != j && paretoComparator(_f[i],_f[j]))
+00090                 {
+00091                     dom = true;
+00092                     break;
+00093                 }
+00094             if (dom) {
+00095                 _f[i] = _f.back();
+00096                 _f.pop_back();
+00097                 i--;
+00098             }
+00099         }
+00100     }
+00101 
+00102 
+00107     void prenormalize (const std::vector< ObjectiveVector > & _f) {
+00108         vect_min_val.clear();
+00109         vect_max_val.clear();
+00110 
+00111         for (unsigned int i=0 ; i<ObjectiveVector::nObjectives(); i++) {
+00112             float min_val = _f.front()[i], max_val = min_val;
+00113             for (unsigned int j=1 ; j<_f.size(); j++) {
+00114                 if (_f[j][i] < min_val)
+00115                     min_val = _f[j][i];
+00116                 if (_f[j][i]>max_val)
+00117                     max_val = _f[j][i];
+00118             }
+00119             vect_min_val.push_back(min_val);
+00120             vect_max_val.push_back (max_val);
+00121         }
+00122     }
+00123 
+00124 
+00129     void normalize (std::vector< ObjectiveVector > & _f) {
+00130         for (unsigned int i=0 ; i<ObjectiveVector::nObjectives(); i++)
+00131             for (unsigned int j=0; j<_f.size(); j++)
+00132                 _f[j][i] = (_f[j][i] - vect_min_val[i]) / (vect_max_val[i] - vect_min_val[i]);
+00133     }
+00134 
+00135 
+00142     void computeUnion(const std::vector< ObjectiveVector > & _f1, const std::vector< ObjectiveVector > & _f2, std::vector< ObjectiveVector > & _f) {
+00143         _f = _f1 ;
+00144         for (unsigned int i=0; i<_f2.size(); i++) {
+00145             bool b = false;
+00146             for (unsigned int j=0; j<_f1.size(); j ++)
+00147                 if (_f1[j] == _f2[i]) {
+00148                     b = true;
+00149                     break;
+00150                 }
+00151             if (! b)
+00152                 _f.push_back(_f2[i]);
+00153         }
+00154     }
+00155 
+00156 
+00160     unsigned int howManyInNicheOf (const std::vector< ObjectiveVector > & _f, const ObjectiveVector & _s, unsigned int _size) {
+00161         unsigned int n=0;
+00162         for (unsigned int i=0 ; i<_f.size(); i++) {
+00163             if (euclidianDistance(_f[i], _s) < (_s.size() / (double) _size))
+00164                 n++;
+00165         }
+00166         return n;
+00167     }
+00168 
+00169 
+00173     double euclidianDistance (const ObjectiveVector & _set1, const ObjectiveVector & _to, unsigned int _deg = 2) {
+00174         double dist=0;
+00175         for (unsigned int i=0; i<_set1.size(); i++)
+00176             dist += pow(fabs(_set1[i] - _to[i]), (int)_deg);
+00177         return pow(dist, 1.0 / _deg);
+00178     }
+00179 
+00180 };
+00181 
+00182 #endif /*MOEOENTROPYMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEnvironmentalReplacement_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEnvironmentalReplacement_8h-source.html new file mode 100644 index 000000000..19fd00282 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEnvironmentalReplacement_8h-source.html @@ -0,0 +1,128 @@ + + +ParadisEO-MOEO: moeoEnvironmentalReplacement.h Source File + + + + +
+
+

moeoEnvironmentalReplacement.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEnvironmentalReplacement.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOENVIRONMENTALREPLACEMENT_H_
+00014 #define MOEOENVIRONMENTALREPLACEMENT_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00018 #include <diversity/moeoDiversityAssignment.h>
+00019 #include <fitness/moeoFitnessAssignment.h>
+00020 #include <replacement/moeoReplacement.h>
+00021 
+00026 template < class MOEOT > class moeoEnvironmentalReplacement:public moeoReplacement < MOEOT >
+00027 {
+00028 public:
+00029 
+00031     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00032 
+00033 
+00040     moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment, moeoComparator < MOEOT > & _comparator) :
+00041             fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (_comparator)
+00042     {}
+00043 
+00044 
+00050     moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment) :
+00051             fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (defaultComparator)
+00052     {}
+00053 
+00054 
+00060     moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoComparator < MOEOT > & _comparator) :
+00061             fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (_comparator)
+00062     {}
+00063 
+00064 
+00070     moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment) :
+00071             fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (defaultComparator)
+00072     {}
+00073 
+00074 
+00080     void operator () (eoPop < MOEOT > &_parents, eoPop < MOEOT > &_offspring)
+00081     {
+00082         unsigned int sz = _parents.size();
+00083         // merges offspring and parents into a global population
+00084         _parents.reserve (_parents.size() + _offspring.size());
+00085         std::copy (_offspring.begin(), _offspring.end(), back_inserter(_parents));
+00086         // evaluates the fitness and the diversity of this global population
+00087         fitnessAssignment (_parents);
+00088         diversityAssignment (_parents);
+00089         // remove individuals 1 by 1 and update the fitness values
+00090         unsigned int worstIdx;
+00091         ObjectiveVector worstObjVec;
+00092         while (_parents.size() > sz)
+00093         {
+00094             // the individual to delete
+00095             worstIdx = std::min_element(_parents.begin(), _parents.end(), comparator) - _parents.begin();
+00096             worstObjVec = _parents[worstIdx].objectiveVector();
+00097             // remove the woorst individual
+00098             _parents[worstIdx] = _parents.back();
+00099             _parents.pop_back();
+00100             // update of the fitness and diversity values
+00101             fitnessAssignment.updateByDeleting(_parents, worstObjVec);
+00102             diversityAssignment.updateByDeleting(_parents, worstObjVec);
+00103 
+00104         }
+00105         // clear the offspring population
+00106         _offspring.clear ();
+00107     }
+00108 
+00109 
+00110 protected:
+00111 
+00113     moeoFitnessAssignment < MOEOT > & fitnessAssignment;
+00115     moeoDiversityAssignment < MOEOT > & diversityAssignment;
+00117     moeoDummyDiversityAssignment < MOEOT > defaultDiversity;
+00119     moeoFitnessThenDiversityComparator < MOEOT > defaultComparator;
+00121     class Cmp
+00122     {
+00123     public:
+00128         Cmp(moeoComparator < MOEOT > & _comp) : comp(_comp)
+00129         {}
+00135         bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00136         {
+00137             return comp(_moeo1,_moeo2);
+00138         }
+00139     private:
+00141         moeoComparator < MOEOT > & comp;
+00142     } comparator;
+00143 
+00144 };
+00145 
+00146 #endif /*MOEOENVIRONMENTALREPLACEMENT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEuclideanDistance_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEuclideanDistance_8h-source.html new file mode 100644 index 000000000..f5768d6a8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEuclideanDistance_8h-source.html @@ -0,0 +1,75 @@ + + +ParadisEO-MOEO: moeoEuclideanDistance.h Source File + + + + +
+
+

moeoEuclideanDistance.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEuclideanDistance.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOEUCLIDEANDISTANCE_H_
+00014 #define MOEOEUCLIDEANDISTANCE_H_
+00015 
+00016 #include <math.h>
+00017 #include <distance/moeoNormalizedDistance.h>
+00018 
+00023 template < class MOEOT >
+00024 class moeoEuclideanDistance : public moeoNormalizedDistance < MOEOT >
+00025 {
+00026 public:
+00027 
+00029     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00030 
+00031 
+00037     const double operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00038     {
+00039         double result = 0.0;
+00040         double tmp1, tmp2;
+00041         for (unsigned int i=0; i<ObjectiveVector::nObjectives(); i++)
+00042         {
+00043             tmp1 = (_moeo1.objectiveVector()[i] - bounds[i].minimum()) / bounds[i].range();
+00044             tmp2 = (_moeo2.objectiveVector()[i] - bounds[i].minimum()) / bounds[i].range();
+00045             result += (tmp1-tmp2) * (tmp1-tmp2);
+00046         }
+00047         return sqrt(result);
+00048     }
+00049 
+00050 
+00051 private:
+00052 
+00054     using moeoNormalizedDistance < MOEOT > :: bounds;
+00055 
+00056 };
+00057 
+00058 #endif /*MOEOEUCLIDEANDISTANCE_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEvalFunc_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEvalFunc_8h-source.html new file mode 100644 index 000000000..9c6ff9ed4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoEvalFunc_8h-source.html @@ -0,0 +1,52 @@ + + +ParadisEO-MOEO: moeoEvalFunc.h Source File + + + + +
+
+

moeoEvalFunc.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEvalFunc.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOEVALFUNC_H_
+00014 #define MOEOEVALFUNC_H_
+00015 
+00016 #include <eoEvalFunc.h>
+00017 
+00018 /*
+00019  * Functor that evaluates one MOEO by setting all its objective values.
+00020  */
+00021 template < class MOEOT >
+00022 class moeoEvalFunc : public eoEvalFunc< MOEOT > {};
+00023 
+00024 #endif /*MOEOEVALFUNC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoExpBinaryIndicatorBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoExpBinaryIndicatorBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..7203ec9f8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoExpBinaryIndicatorBasedFitnessAssignment_8h-source.html @@ -0,0 +1,185 @@ + + +ParadisEO-MOEO: moeoExpBinaryIndicatorBasedFitnessAssignment.h Source File + + + + +
+
+

moeoExpBinaryIndicatorBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoIndicatorBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOEXPBINARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOEXPBINARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <math.h>
+00017 #include <vector>
+00018 #include <eoPop.h>
+00019 #include <fitness/moeoBinaryIndicatorBasedFitnessAssignment.h>
+00020 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h>
+00021 #include <utils/moeoConvertPopToObjectiveVectors.h>
+00022 
+00028 template < class MOEOT >
+00029 class moeoExpBinaryIndicatorBasedFitnessAssignment : public moeoBinaryIndicatorBasedFitnessAssignment < MOEOT >
+00030 {
+00031 public:
+00032 
+00034     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00035 
+00036 
+00042     moeoExpBinaryIndicatorBasedFitnessAssignment(moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa = 0.05) : metric(_metric), kappa(_kappa)
+00043     {}
+00044 
+00045 
+00050     void operator()(eoPop < MOEOT > & _pop)
+00051     {
+00052         // 1 - setting of the bounds
+00053         setup(_pop);
+00054         // 2 - computing every indicator values
+00055         computeValues(_pop);
+00056         // 3 - setting fitnesses
+00057         setFitnesses(_pop);
+00058     }
+00059 
+00060 
+00066     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00067     {
+00068         std::vector < double > v;
+00069         v.resize(_pop.size());
+00070         for (unsigned int i=0; i<_pop.size(); i++)
+00071         {
+00072             v[i] = metric(_objVec, _pop[i].objectiveVector());
+00073         }
+00074         for (unsigned int i=0; i<_pop.size(); i++)
+00075         {
+00076             _pop[i].fitness( _pop[i].fitness() + exp(-v[i]/kappa) );
+00077         }
+00078     }
+00079 
+00080 
+00087     double updateByAdding(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00088     {
+00089         std::vector < double > v;
+00090         // update every fitness values to take the new individual into account
+00091         v.resize(_pop.size());
+00092         for (unsigned int i=0; i<_pop.size(); i++)
+00093         {
+00094             v[i] = metric(_objVec, _pop[i].objectiveVector());
+00095         }
+00096         for (unsigned int i=0; i<_pop.size(); i++)
+00097         {
+00098             _pop[i].fitness( _pop[i].fitness() - exp(-v[i]/kappa) );
+00099         }
+00100         // compute the fitness of the new individual
+00101         v.clear();
+00102         v.resize(_pop.size());
+00103         for (unsigned int i=0; i<_pop.size(); i++)
+00104         {
+00105             v[i] = metric(_pop[i].objectiveVector(), _objVec);
+00106         }
+00107         double result = 0;
+00108         for (unsigned int i=0; i<v.size(); i++)
+00109         {
+00110             result -= exp(-v[i]/kappa);
+00111         }
+00112         return result;
+00113     }
+00114 
+00115 
+00116 protected:
+00117 
+00119     moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & metric;
+00121     double kappa;
+00123     std::vector < std::vector<double> > values;
+00124 
+00125 
+00130     void setup(const eoPop < MOEOT > & _pop)
+00131     {
+00132         double min, max;
+00133         for (unsigned int i=0; i<ObjectiveVector::Traits::nObjectives(); i++)
+00134         {
+00135             min = _pop[0].objectiveVector()[i];
+00136             max = _pop[0].objectiveVector()[i];
+00137             for (unsigned int j=1; j<_pop.size(); j++)
+00138             {
+00139                 min = std::min(min, _pop[j].objectiveVector()[i]);
+00140                 max = std::max(max, _pop[j].objectiveVector()[i]);
+00141             }
+00142             // setting of the bounds for the objective i
+00143             metric.setup(min, max, i);
+00144         }
+00145     }
+00146 
+00147 
+00152     void computeValues(const eoPop < MOEOT > & _pop)
+00153     {
+00154         values.clear();
+00155         values.resize(_pop.size());
+00156         for (unsigned int i=0; i<_pop.size(); i++)
+00157         {
+00158             values[i].resize(_pop.size());
+00159             for (unsigned int j=0; j<_pop.size(); j++)
+00160             {
+00161                 if (i != j)
+00162                 {
+00163                     values[i][j] = metric(_pop[i].objectiveVector(), _pop[j].objectiveVector());
+00164                 }
+00165             }
+00166         }
+00167     }
+00168 
+00169 
+00174     void setFitnesses(eoPop < MOEOT > & _pop)
+00175     {
+00176         for (unsigned int i=0; i<_pop.size(); i++)
+00177         {
+00178             _pop[i].fitness(computeFitness(i));
+00179         }
+00180     }
+00181 
+00182 
+00187     double computeFitness(const unsigned int _idx)
+00188     {
+00189         double result = 0;
+00190         for (unsigned int i=0; i<values.size(); i++)
+00191         {
+00192             if (i != _idx)
+00193             {
+00194                 result -= exp(-values[i][_idx]/kappa);
+00195             }
+00196         }
+00197         return result;
+00198     }
+00199 
+00200 };
+00201 
+00202 #endif /*MOEOEXPBINARYINDICATORBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFastNonDominatedSortingFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFastNonDominatedSortingFitnessAssignment_8h-source.html new file mode 100644 index 000000000..9a2e85e8b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFastNonDominatedSortingFitnessAssignment_8h-source.html @@ -0,0 +1,222 @@ + + +ParadisEO-MOEO: moeoFastNonDominatedSortingFitnessAssignment.h Source File + + + + +
+
+

moeoFastNonDominatedSortingFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoFastNonDominatedSortingFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOFASTNONDOMINATEDSORTINGFITNESSASSIGNMENT_H_
+00014 #define MOEOFASTNONDOMINATEDSORTINGFITNESSASSIGNMENT_H_
+00015 
+00016 #include <vector>
+00017 #include <eoPop.h>
+00018 #include <comparator/moeoObjectiveObjectiveVectorComparator.h>
+00019 #include <comparator/moeoObjectiveVectorComparator.h>
+00020 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00021 #include <fitness/moeoParetoBasedFitnessAssignment.h>
+00022 
+00023 
+00031 template < class MOEOT >
+00032 class moeoFastNonDominatedSortingFitnessAssignment : public moeoParetoBasedFitnessAssignment < MOEOT >
+00033 {
+00034 public:
+00035 
+00037     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00038 
+00039 
+00043     moeoFastNonDominatedSortingFitnessAssignment() : comparator(paretoComparator)
+00044     {}
+00045 
+00046 
+00051     moeoFastNonDominatedSortingFitnessAssignment(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator) : comparator(_comparator)
+00052     {}
+00053 
+00054 
+00059     void operator()(eoPop < MOEOT > & _pop)
+00060     {
+00061         // number of objectives for the problem under consideration
+00062         unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives();
+00063         if (nObjectives == 1)
+00064         {
+00065             // one objective
+00066             oneObjective(_pop);
+00067         }
+00068         else if (nObjectives == 2)
+00069         {
+00070             // two objectives (the two objectives function is still to implement)
+00071             mObjectives(_pop);
+00072         }
+00073         else if (nObjectives > 2)
+00074         {
+00075             // more than two objectives
+00076             mObjectives(_pop);
+00077         }
+00078         else
+00079         {
+00080             // problem with the number of objectives
+00081             throw std::runtime_error("Problem with the number of objectives in moeoNonDominatedSortingFitnessAssignment");
+00082         }
+00083         // a higher fitness is better, so the values need to be inverted
+00084         double max = _pop[0].fitness();
+00085         for (unsigned int i=1 ; i<_pop.size() ; i++)
+00086         {
+00087             max = std::max(max, _pop[i].fitness());
+00088         }
+00089         for (unsigned int i=0 ; i<_pop.size() ; i++)
+00090         {
+00091             _pop[i].fitness(max - _pop[i].fitness());
+00092         }
+00093     }
+00094 
+00095 
+00101     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00102     {
+00103         for (unsigned int i=0; i<_pop.size(); i++)
+00104         {
+00105             // if _pop[i] is dominated by _objVec
+00106             if ( comparator(_pop[i].objectiveVector(), _objVec) )
+00107             {
+00108                 _pop[i].fitness(_pop[i].fitness()+1);
+00109             }
+00110         }
+00111     }
+00112 
+00113 
+00114 private:
+00115 
+00117     moeoObjectiveVectorComparator < ObjectiveVector > & comparator;
+00119     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00121     class ObjectiveComparator : public moeoComparator < MOEOT >
+00122     {
+00123     public:
+00129          const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00130          {
+00131                 return cmp(_moeo1.objectiveVector(), _moeo2.objectiveVector());
+00132          }
+00133     private:
+00135         moeoObjectiveObjectiveVectorComparator < ObjectiveVector > cmp;
+00136     } objComparator;
+00137 
+00138 
+00143     void oneObjective (eoPop < MOEOT > & _pop)
+00144     {
+00145         // sorts the population in the ascending order
+00146         std::sort(_pop.begin(), _pop.end(), objComparator);
+00147         // assign fitness values
+00148         unsigned int rank = 1;
+00149         _pop[_pop.size()-1].fitness(rank);
+00150         for (unsigned int i=_pop.size()-2; i>=0; i--)
+00151         {
+00152             if (_pop[i].objectiveVector() != _pop[i+1].objectiveVector())
+00153             {
+00154                 rank++;
+00155             }
+00156             _pop[i].fitness(rank);
+00157         }
+00158     }
+00159 
+00160 
+00165     void twoObjectives (eoPop < MOEOT > & _pop)
+00166     {
+00167         //... TO DO !
+00168     }
+00169 
+00170 
+00175     void mObjectives (eoPop < MOEOT > & _pop)
+00176     {
+00177         // S[i] = indexes of the individuals dominated by _pop[i]
+00178         std::vector < std::vector<unsigned int> > S(_pop.size());
+00179         // n[i] = number of individuals that dominate the individual _pop[i]
+00180         std::vector < unsigned int > n(_pop.size(), 0);
+00181         // fronts: F[i] = indexes of the individuals contained in the ith front
+00182         std::vector < std::vector<unsigned int> > F(_pop.size()+2);
+00183         // used to store the number of the first front
+00184         F[1].reserve(_pop.size());
+00185         for (unsigned int p=0; p<_pop.size(); p++)
+00186         {
+00187             for (unsigned int q=0; q<_pop.size(); q++)
+00188             {
+00189                 // if q is dominated by p
+00190                 if ( comparator(_pop[q].objectiveVector(), _pop[p].objectiveVector()) )
+00191                 {
+00192                     // add q to the set of solutions dominated by p
+00193                     S[p].push_back(q);
+00194                 }
+00195                 // if p is dominated by q
+00196                 else if  ( comparator(_pop[p].objectiveVector(), _pop[q].objectiveVector()) )
+00197                 {
+00198                     // increment the domination counter of p
+00199                     n[p]++;
+00200                 }
+00201             }
+00202             // if no individual dominates p
+00203             if (n[p] == 0)
+00204             {
+00205                 // p belongs to the first front
+00206                 _pop[p].fitness(1);
+00207                 F[1].push_back(p);
+00208             }
+00209         }
+00210         // front counter
+00211         unsigned int counter=1;
+00212         unsigned int p,q;
+00213         while (! F[counter].empty())
+00214         {
+00215             // used to store the number of the next front
+00216             F[counter+1].reserve(_pop.size());
+00217             for (unsigned int i=0; i<F[counter].size(); i++)
+00218             {
+00219                 p = F[counter][i];
+00220                 for (unsigned int j=0; j<S[p].size(); j++)
+00221                 {
+00222                     q = S[p][j];
+00223                     n[q]--;
+00224                     // if no individual dominates q anymore
+00225                     if (n[q] == 0)
+00226                     {
+00227                         // q belongs to the next front
+00228                         _pop[q].fitness(counter+1);
+00229                         F[counter+1].push_back(q);
+00230                     }
+00231                 }
+00232             }
+00233             counter++;
+00234         }
+00235     }
+00236 
+00237 };
+00238 
+00239 #endif /*MOEOFASTNONDOMINATEDSORTINGFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFitnessAssignment_8h-source.html new file mode 100644 index 000000000..5e507a743 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFitnessAssignment_8h-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoFitnessAssignment.h Source File + + + + +
+
+

moeoFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOFITNESSASSIGNMENT_H_
+00014 #define MOEOFITNESSASSIGNMENT_H_
+00015 
+00016 #include <eoFunctor.h>
+00017 #include <eoPop.h>
+00018 
+00022 template < class MOEOT >
+00023 class moeoFitnessAssignment : public eoUF < eoPop < MOEOT > &, void >
+00024 {
+00025 public:
+00026 
+00028     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00029 
+00030 
+00036     virtual void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) = 0;
+00037 
+00038 
+00044     void updateByDeleting(eoPop < MOEOT > & _pop, MOEOT & _moeo)
+00045     {
+00046         updateByDeleting(_pop, _moeo.objectiveVector());
+00047     }
+00048 
+00049 };
+00050 
+00051 #endif /*MOEOFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFitnessThenDiversityComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFitnessThenDiversityComparator_8h-source.html new file mode 100644 index 000000000..61432d431 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFitnessThenDiversityComparator_8h-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoFitnessThenDiversityComparator.h Source File + + + + +
+
+

moeoFitnessThenDiversityComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoFitnessThenDiversityComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_
+00014 #define MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoFitnessThenDiversityComparator : public moeoComparator < MOEOT >
+00023 {
+00024 public:
+00025 
+00031     const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00032     {
+00033         if (_moeo1.fitness() == _moeo2.fitness())
+00034         {
+00035             return _moeo1.diversity() < _moeo2.diversity();
+00036         }
+00037         else
+00038         {
+00039             return _moeo1.fitness() < _moeo2.fitness();
+00040         }
+00041     }
+00042 
+00043 };
+00044 
+00045 #endif /*MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFrontByFrontCrowdingDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFrontByFrontCrowdingDiversityAssignment_8h-source.html new file mode 100644 index 000000000..79ccd805e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFrontByFrontCrowdingDiversityAssignment_8h-source.html @@ -0,0 +1,139 @@ + + +ParadisEO-MOEO: moeoFrontByFrontCrowdingDiversityAssignment.h Source File + + + + +
+
+

moeoFrontByFrontCrowdingDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoFrontByFrontCrowdingDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_
+00014 #define MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_
+00015 
+00016 #include <diversity/moeoCrowdingDiversityAssignment.h>
+00017 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00018 
+00024 template < class MOEOT >
+00025 class moeoFrontByFrontCrowdingDiversityAssignment : public moeoCrowdingDiversityAssignment < MOEOT >
+00026 {
+00027 public:
+00028 
+00030     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00031 
+00032 
+00040     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00041     {
+00042         std::cout << "WARNING : updateByDeleting not implemented in moeoFrontByFrontCrowdingDistanceDiversityAssignment" << std::endl;
+00043     }
+00044 
+00045 
+00046 private:
+00047 
+00048     using moeoCrowdingDiversityAssignment < MOEOT >::inf;
+00049     using moeoCrowdingDiversityAssignment < MOEOT >::tiny;
+00050 
+00055     void setDistances (eoPop < MOEOT > & _pop)
+00056     {
+00057         unsigned int a,b;
+00058         double min, max, distance;
+00059         unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives();
+00060         // set diversity to 0 for every individual
+00061         for (unsigned int i=0; i<_pop.size(); i++)
+00062         {
+00063             _pop[i].diversity(0.0);
+00064         }
+00065         // sort the whole pop according to fitness values
+00066         moeoFitnessThenDiversityComparator < MOEOT > fitnessComparator;
+00067         std::sort(_pop.begin(), _pop.end(), fitnessComparator);
+00068         // compute the crowding distance values for every individual "front" by "front" (front : from a to b)
+00069         a = 0;                                  // the front starts at a
+00070         while (a < _pop.size())
+00071         {
+00072             b = lastIndex(_pop,a);      // the front ends at b
+00073             // if there is less than 2 individuals in the front...
+00074             if ((b-a) < 2)
+00075             {
+00076                 for (unsigned int i=a; i<=b; i++)
+00077                 {
+00078                     _pop[i].diversity(inf());
+00079                 }
+00080             }
+00081             // else...
+00082             else
+00083             {
+00084                 // for each objective
+00085                 for (unsigned int obj=0; obj<nObjectives; obj++)
+00086                 {
+00087                     // sort in the descending order using the values of the objective 'obj'
+00088                     moeoOneObjectiveComparator < MOEOT > objComp(obj);
+00089                     std::sort(_pop.begin()+a, _pop.begin()+b+1, objComp);
+00090                     // min & max
+00091                     min = _pop[b].objectiveVector()[obj];
+00092                     max = _pop[a].objectiveVector()[obj];
+00093                     // avoid extreme case
+00094                     if (min == max)
+00095                     {
+00096                         min -= tiny();
+00097                         max += tiny();
+00098                     }
+00099                     // set the diversity value to infiny for min and max
+00100                     _pop[a].diversity(inf());
+00101                     _pop[b].diversity(inf());
+00102                     // set the diversity values for the other individuals
+00103                     for (unsigned int i=a+1; i<b; i++)
+00104                     {
+00105                         distance = (_pop[i-1].objectiveVector()[obj] - _pop[i+1].objectiveVector()[obj]) / (max-min);
+00106                         _pop[i].diversity(_pop[i].diversity() + distance);
+00107                     }
+00108                 }
+00109             }
+00110             // go to the next front
+00111             a = b+1;
+00112         }
+00113     }
+00114 
+00115 
+00121     unsigned int lastIndex (eoPop < MOEOT > & _pop, unsigned int _start)
+00122     {
+00123         unsigned int i=_start;
+00124         while ( (i<_pop.size()-1) && (_pop[i].fitness()==_pop[i+1].fitness()) )
+00125         {
+00126             i++;
+00127         }
+00128         return i;
+00129     }
+00130 
+00131 };
+00132 
+00133 #endif /*MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFrontByFrontSharingDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFrontByFrontSharingDiversityAssignment_8h-source.html new file mode 100644 index 000000000..07217d89e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoFrontByFrontSharingDiversityAssignment_8h-source.html @@ -0,0 +1,108 @@ + + +ParadisEO-MOEO: moeoFrontByFrontSharingDiversityAssignment.h Source File + + + + +
+
+

moeoFrontByFrontSharingDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoFrontByFrontSharingDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOFRONTBYFRONTSHARINGDIVERSITYASSIGNMENT_H_
+00014 #define MOEOFRONTBYFRONTSHARINGDIVERSITYASSIGNMENT_H_
+00015 
+00016 #include <diversity/moeoSharingDiversityAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoFrontByFrontSharingDiversityAssignment : public moeoSharingDiversityAssignment < MOEOT >
+00023 {
+00024 public:
+00025 
+00027     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00028 
+00029 
+00036     moeoFrontByFrontSharingDiversityAssignment(moeoDistance<MOEOT,double> & _distance, double _nicheSize = 0.5, double _alpha = 2.0) : moeoSharingDiversityAssignment < MOEOT >(_distance, _nicheSize, _alpha)
+00037     {}
+00038 
+00039 
+00045     moeoFrontByFrontSharingDiversityAssignment(double _nicheSize = 0.5, double _alpha = 2.0) : moeoSharingDiversityAssignment < MOEOT >(_nicheSize, _alpha)
+00046     {}
+00047 
+00048 
+00056     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00057     {
+00058         std::cout << "WARNING : updateByDeleting not implemented in moeoSharingDiversityAssignment" << std::endl;
+00059     }
+00060 
+00061 
+00062 private:
+00063 
+00064     using moeoSharingDiversityAssignment < MOEOT >::distance;
+00065     using moeoSharingDiversityAssignment < MOEOT >::nicheSize;
+00066     using moeoSharingDiversityAssignment < MOEOT >::sh;
+00067     using moeoSharingDiversityAssignment < MOEOT >::operator();
+00068 
+00069 
+00074     void setSimilarities(eoPop < MOEOT > & _pop)
+00075     {
+00076         // compute distances between every individuals
+00077         moeoDistanceMatrix < MOEOT , double > dMatrix (_pop.size(), distance);
+00078         dMatrix(_pop);
+00079         // sets the distance to bigger than the niche size for every couple of solutions that do not belong to the same front
+00080         for (unsigned int i=0; i<_pop.size(); i++)
+00081         {
+00082             for (unsigned int j=0; j<i; j++)
+00083             {
+00084                 if (_pop[i].fitness() != _pop[j].fitness())
+00085                 {
+00086                     dMatrix[i][j] = nicheSize;
+00087                     dMatrix[j][i] = nicheSize;
+00088                 }
+00089             }
+00090         }
+00091         // compute similarities
+00092         double sum;
+00093         for (unsigned int i=0; i<_pop.size(); i++)
+00094         {
+00095             sum = 0.0;
+00096             for (unsigned int j=0; j<_pop.size(); j++)
+00097             {
+00098                 sum += sh(dMatrix[i][j]);
+00099             }
+00100             _pop[i].diversity(sum);
+00101         }
+00102     }
+00103 
+00104 };
+00105 
+00106 #endif /*MOEOFRONTBYFRONTSHARINGDIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoGDominanceObjectiveVectorComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoGDominanceObjectiveVectorComparator_8h-source.html new file mode 100644 index 000000000..b6fe9a584 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoGDominanceObjectiveVectorComparator_8h-source.html @@ -0,0 +1,109 @@ + + +ParadisEO-MOEO: moeoGDominanceObjectiveVectorComparator.h Source File + + + + +
+
+

moeoGDominanceObjectiveVectorComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoGDominanceObjectiveVectorComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOGDOMINANCEOBJECTIVEVECTORCOMPARATOR_H_
+00014 #define MOEOGDOMINANCEOBJECTIVEVECTORCOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoObjectiveVectorComparator.h>
+00017 
+00024 template < class ObjectiveVector >
+00025 class moeoGDominanceObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector >
+00026 {
+00027 public:
+00028 
+00033     moeoGDominanceObjectiveVectorComparator(ObjectiveVector & _ref) : ref(_ref)
+00034     {}
+00035 
+00036 
+00042     const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)
+00043     {
+00044         unsigned int flag1 = flag(_objectiveVector1);
+00045         unsigned int flag2 = flag(_objectiveVector2);
+00046         if (flag2==0)
+00047         {
+00048             // cannot dominate
+00049             return false;
+00050         }
+00051         else if ( (flag2==1) && (flag1==0) )
+00052         {
+00053             // is dominated
+00054             return true;
+00055         }
+00056         else // (flag1==1) && (flag2==1)
+00057         {
+00058             // both are on the good region, so let's use the classical Pareto dominance
+00059             return paretoComparator(_objectiveVector1, _objectiveVector2);
+00060         }
+00061     }
+00062 
+00063 
+00064 private:
+00065 
+00067     ObjectiveVector & ref;
+00069     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00070 
+00071 
+00076     unsigned int flag(const ObjectiveVector & _objectiveVector)
+00077     {
+00078         unsigned int result=1;
+00079         for (unsigned int i=0; i<ref.nObjectives(); i++)
+00080         {
+00081             if (_objectiveVector[i] > ref[i])
+00082             {
+00083                 result=0;
+00084             }
+00085         }
+00086         if (result==0)
+00087         {
+00088             result=1;
+00089             for (unsigned int i=0; i<ref.nObjectives(); i++)
+00090             {
+00091                 if (_objectiveVector[i] < ref[i])
+00092                 {
+00093                     result=0;
+00094                 }
+00095             }
+00096         }
+00097         return result;
+00098     }
+00099 
+00100 };
+00101 
+00102 #endif /*MOEOGDOMINANCEOBJECTIVEVECTORCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoGenerationalReplacement_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoGenerationalReplacement_8h-source.html new file mode 100644 index 000000000..dfd29840f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoGenerationalReplacement_8h-source.html @@ -0,0 +1,59 @@ + + +ParadisEO-MOEO: moeoGenerationalReplacement.h Source File + + + + +
+
+

moeoGenerationalReplacement.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoGenerationalReplacement.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOGENERATIONALREPLACEMENT_H_
+00014 #define MOEOGENERATIONALREPLACEMENT_H_
+00015 
+00016 #include <eoReplacement.h>
+00017 #include <replacement/moeoReplacement.h>
+00018 
+00022 template < class MOEOT >
+00023 class moeoGenerationalReplacement : public moeoReplacement < MOEOT >, public eoGenerationalReplacement < MOEOT >
+00024 {
+00025 public:
+00026 
+00032     void operator()(eoPop < MOEOT > & _parents, eoPop < MOEOT > & _offspring)
+00033     {
+00034         eoGenerationalReplacement < MOEOT >::operator ()(_parents, _offspring);
+00035     }
+00036 
+00037 };
+00038 
+00039 #endif /*MOEOGENERATIONALREPLACEMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoHybridLS_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoHybridLS_8h-source.html new file mode 100644 index 000000000..7c4dc21d9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoHybridLS_8h-source.html @@ -0,0 +1,86 @@ + + +ParadisEO-MOEO: moeoHybridLS.h Source File + + + + +
+
+

moeoHybridLS.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoHybridLS.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOHYBRIDLS_H_
+00014 #define MOEOHYBRIDLS_H_
+00015 
+00016 #include <eoContinue.h>
+00017 #include <eoPop.h>
+00018 #include <eoSelect.h>
+00019 #include <utils/eoUpdater.h>
+00020 #include <algo/moeoLS.h>
+00021 #include <archive/moeoArchive.h>
+00022 
+00027 template < class MOEOT >
+00028 class moeoHybridLS : public eoUpdater
+00029 {
+00030 public:
+00031 
+00039     moeoHybridLS (eoContinue < MOEOT > & _term, eoSelect < MOEOT > & _select, moeoLS < MOEOT, MOEOT > & _mols, moeoArchive < MOEOT > & _arch) :
+00040             term(_term), select(_select), mols(_mols), arch(_arch)
+00041     {}
+00042 
+00043 
+00047     void operator () ()
+00048     {
+00049         if (! term (arch))
+00050         {
+00051             // selection of solutions
+00052             eoPop < MOEOT > selectedSolutions;
+00053             select(arch, selectedSolutions);
+00054             // apply the local search to every selected solution
+00055             for (unsigned int i=0; i<selectedSolutions.size(); i++)
+00056             {
+00057                 mols(selectedSolutions[i], arch);
+00058             }
+00059         }
+00060     }
+00061 
+00062 
+00063 private:
+00064 
+00066     eoContinue < MOEOT > & term;
+00068     eoSelect < MOEOT > & select;
+00070     moeoLS < MOEOT, MOEOT > & mols;
+00072     moeoArchive < MOEOT > & arch;
+00073 
+00074 };
+00075 
+00076 #endif /*MOEOHYBRIDLS_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoHypervolumeBinaryMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoHypervolumeBinaryMetric_8h-source.html new file mode 100644 index 000000000..e6f47b14c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoHypervolumeBinaryMetric_8h-source.html @@ -0,0 +1,141 @@ + + +ParadisEO-MOEO: moeoHypervolumeBinaryMetric.h Source File + + + + +
+
+

moeoHypervolumeBinaryMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoHypervolumeBinaryMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOHYPERVOLUMEBINARYMETRIC_H_
+00014 #define MOEOHYPERVOLUMEBINARYMETRIC_H_
+00015 
+00016 #include <stdexcept>
+00017 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00018 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h>
+00019 
+00028 template < class ObjectiveVector >
+00029 class moeoHypervolumeBinaryMetric : public moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double >
+00030 {
+00031 public:
+00032 
+00037     moeoHypervolumeBinaryMetric(double _rho = 1.1) : rho(_rho)
+00038     {
+00039         // not-a-maximization problem check
+00040         for (unsigned int i=0; i<ObjectiveVector::Traits::nObjectives(); i++)
+00041         {
+00042             if (ObjectiveVector::Traits::maximizing(i))
+00043             {
+00044                 throw std::runtime_error("Hypervolume binary metric not yet implemented for a maximization problem in moeoHypervolumeBinaryMetric");
+00045             }
+00046         }
+00047         // consistency check
+00048         if (rho < 1)
+00049         {
+00050             std::cout << "Warning, value used to compute the reference point rho for the hypervolume calculation must not be smaller than 1" << std::endl;
+00051             std::cout << "Adjusted to 1" << std::endl;
+00052             rho = 1;
+00053         }
+00054     }
+00055 
+00056 
+00063     double operator()(const ObjectiveVector & _o1, const ObjectiveVector & _o2)
+00064     {
+00065         double result;
+00066         // if _o2 is dominated by _o1
+00067         if ( paretoComparator(_o2,_o1) )
+00068         {
+00069             result = - hypervolume(_o1, _o2, ObjectiveVector::Traits::nObjectives()-1);
+00070         }
+00071         else
+00072         {
+00073             result = hypervolume(_o2, _o1, ObjectiveVector::Traits::nObjectives()-1);
+00074         }
+00075         return result;
+00076     }
+00077 
+00078 
+00079 private:
+00080 
+00082     double rho;
+00084     using moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > :: bounds;
+00086     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00087 
+00088 
+00096     double hypervolume(const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj, const bool _flag = false)
+00097     {
+00098         double result;
+00099         double range = rho * bounds[_obj].range();
+00100         double max = bounds[_obj].minimum() + range;
+00101         // value of _1 for the objective _obj
+00102         double v1 = _o1[_obj];
+00103         // value of _2 for the objective _obj (if _flag=true, v2=max)
+00104         double v2;
+00105         if (_flag)
+00106         {
+00107             v2 = max;
+00108         }
+00109         else
+00110         {
+00111             v2 = _o2[_obj];
+00112         }
+00113         // computation of the volume
+00114         if (_obj == 0)
+00115         {
+00116             if (v1 < v2)
+00117             {
+00118                 result = (v2 - v1) / range;
+00119             }
+00120             else
+00121             {
+00122                 result = 0;
+00123             }
+00124         }
+00125         else
+00126         {
+00127             if (v1 < v2)
+00128             {
+00129                 result = ( hypervolume(_o1, _o2, _obj-1, true) * (v2 - v1) / range ) + ( hypervolume(_o1, _o2, _obj-1) * (max - v2) / range );
+00130             }
+00131             else
+00132             {
+00133                 result = hypervolume(_o1, _o2, _obj-1) * (max - v2) / range;
+00134             }
+00135         }
+00136         return result;
+00137     }
+00138 
+00139 };
+00140 
+00141 #endif /*MOEOHYPERVOLUMEBINARYMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoIBEA_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoIBEA_8h-source.html new file mode 100644 index 000000000..15efffd13 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoIBEA_8h-source.html @@ -0,0 +1,133 @@ + + +ParadisEO-MOEO: moeoIBEA.h Source File + + + + +
+
+

moeoIBEA.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoIBEA.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOIBEA_H_
+00014 #define MOEOIBEA_H_
+00015 
+00016 
+00017 #include <eoBreed.h>
+00018 #include <eoContinue.h>
+00019 #include <eoEvalFunc.h>
+00020 #include <eoGenContinue.h>
+00021 #include <eoGeneralBreeder.h>
+00022 #include <eoGenOp.h>
+00023 #include <eoPopEvalFunc.h>
+00024 #include <eoSGAGenOp.h>
+00025 #include <algo/moeoEA.h>
+00026 #include <diversity/moeoDummyDiversityAssignment.h>
+00027 #include <fitness/moeoIndicatorBasedFitnessAssignment.h>
+00028 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h>
+00029 #include <replacement/moeoEnvironmentalReplacement.h>
+00030 #include <selection/moeoDetTournamentSelect.h>
+00031 
+00037 template < class MOEOT >
+00038 class moeoIBEA : public moeoEA < MOEOT >
+00039 {
+00040 public:
+00041 
+00043     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00044 
+00045 
+00054     moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
+00055             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00056             fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
+00057     {}
+00058 
+00059 
+00068     moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
+00069             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00070             fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
+00071     {}
+00072 
+00073 
+00085     moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
+00086             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2),
+00087             fitnessAssignment(_metric, _kappa), replace (fitnessAssignment, dummyDiversityAssignment), defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut),
+00088             genBreed (select, defaultSGAGenOp), breed (genBreed)
+00089     {}
+00090 
+00091 
+00100     moeoIBEA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
+00101             continuator(_continuator), popEval(_eval), select(2),
+00102             fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
+00103     {}
+00104 
+00105 
+00114     moeoIBEA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
+00115             continuator(_continuator), popEval(_eval), select(2),
+00116             fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
+00117     {}
+00118 
+00119 
+00124     virtual void operator () (eoPop < MOEOT > &_pop)
+00125     {
+00126         eoPop < MOEOT > offspring, empty_pop;
+00127         popEval (empty_pop, _pop);      // a first eval of _pop
+00128         // evaluate fitness and diversity
+00129         fitnessAssignment(_pop);
+00130         dummyDiversityAssignment(_pop);
+00131         do
+00132         {
+00133             // generate offspring, worths are recalculated if necessary
+00134             breed (_pop, offspring);
+00135             // eval of offspring
+00136             popEval (_pop, offspring);
+00137             // after replace, the new pop is in _pop. Worths are recalculated if necessary
+00138             replace (_pop, offspring);
+00139         } while (continuator (_pop));
+00140     }
+00141 
+00142 
+00143 protected:
+00144 
+00146     eoGenContinue < MOEOT > defaultGenContinuator;
+00148     eoContinue < MOEOT > & continuator;
+00150     eoPopLoopEval < MOEOT > popEval;
+00152     moeoDetTournamentSelect < MOEOT > select;
+00154     moeoIndicatorBasedFitnessAssignment < MOEOT > fitnessAssignment;
+00156     moeoDummyDiversityAssignment < MOEOT > dummyDiversityAssignment;
+00158     moeoEnvironmentalReplacement < MOEOT > replace;
+00160     eoSGAGenOp < MOEOT > defaultSGAGenOp;
+00162     eoGeneralBreeder < MOEOT > genBreed;
+00164     eoBreed < MOEOT > & breed;
+00165 
+00166 };
+00167 
+00168 #endif /*MOEOIBEA_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoIndicatorBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoIndicatorBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..69f600b2d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoIndicatorBasedFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoIndicatorBasedFitnessAssignment.h Source File + + + + +
+
+

moeoIndicatorBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoIndicatorBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOINDICATORBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOINDICATORBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoIndicatorBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {};
+00023 
+00024 #endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoLS_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoLS_8h-source.html new file mode 100644 index 000000000..ef0877ea8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoLS_8h-source.html @@ -0,0 +1,51 @@ + + +ParadisEO-MOEO: moeoLS.h Source File + + + + +
+
+

moeoLS.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoLS.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOLS_H_
+00014 #define MOEOLS_H_
+00015 
+00016 #include <eoFunctor.h>
+00017 #include <algo/moeoAlgo.h>
+00018 #include <archive/moeoArchive.h>
+00019 
+00024 template < class MOEOT, class Type >
+00025 class moeoLS: public moeoAlgo, public eoBF < Type, moeoArchive < MOEOT > &, void > {};
+00026 
+00027 #endif /*MOEOLS_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoManhattanDistance_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoManhattanDistance_8h-source.html new file mode 100644 index 000000000..cd4145ca3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoManhattanDistance_8h-source.html @@ -0,0 +1,75 @@ + + +ParadisEO-MOEO: moeoManhattanDistance.h Source File + + + + +
+
+

moeoManhattanDistance.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoManhattanDistance.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOMANHATTANDISTANCE_H_
+00014 #define MOEOMANHATTANDISTANCE_H_
+00015 
+00016 #include <math.h>
+00017 #include <distance/moeoNormalizedDistance.h>
+00018 
+00023 template < class MOEOT >
+00024 class moeoManhattanDistance : public moeoNormalizedDistance < MOEOT >
+00025 {
+00026 public:
+00027 
+00029     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00030 
+00031 
+00037     const double operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00038     {
+00039         double result = 0.0;
+00040         double tmp1, tmp2;
+00041         for (unsigned int i=0; i<ObjectiveVector::nObjectives(); i++)
+00042         {
+00043             tmp1 = (_moeo1.objectiveVector()[i] - bounds[i].minimum()) / bounds[i].range();
+00044             tmp2 = (_moeo2.objectiveVector()[i] - bounds[i].minimum()) / bounds[i].range();
+00045             result += fabs(tmp1-tmp2);
+00046         }
+00047         return result;
+00048     }
+00049 
+00050 
+00051 private:
+00052 
+00054     using moeoNormalizedDistance < MOEOT > :: bounds;
+00055 
+00056 };
+00057 
+00058 #endif /*MOEOMANHATTANDISTANCE_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoMetric_8h-source.html new file mode 100644 index 000000000..7777b1e72 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoMetric_8h-source.html @@ -0,0 +1,74 @@ + + +ParadisEO-MOEO: moeoMetric.h Source File + + + + +
+
+

moeoMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOMETRIC_H_
+00014 #define MOEOMETRIC_H_
+00015 
+00016 #include <vector>
+00017 #include <eoFunctor.h>
+00018 
+00022 class moeoMetric : public eoFunctorBase {};
+00023 
+00024 
+00028 template < class A, class R >
+00029 class moeoUnaryMetric : public eoUF < A, R >, public moeoMetric {};
+00030 
+00031 
+00035 template < class A1, class A2, class R >
+00036 class moeoBinaryMetric : public eoBF < A1, A2, R >, public moeoMetric {};
+00037 
+00038 
+00042 template < class ObjectiveVector, class R >
+00043 class moeoSolutionUnaryMetric : public moeoUnaryMetric < const ObjectiveVector &, R > {};
+00044 
+00045 
+00049 template < class ObjectiveVector, class R >
+00050 class moeoVectorUnaryMetric : public moeoUnaryMetric < const std::vector < ObjectiveVector > &, R > {};
+00051 
+00052 
+00056 template < class ObjectiveVector, class R >
+00057 class moeoSolutionVsSolutionBinaryMetric : public moeoBinaryMetric < const ObjectiveVector &, const ObjectiveVector &, R > {};
+00058 
+00059 
+00063 template < class ObjectiveVector, class R >
+00064 class moeoVectorVsVectorBinaryMetric : public moeoBinaryMetric < const std::vector < ObjectiveVector > &, const std::vector < ObjectiveVector > &, R > {};
+00065 
+00066 
+00067 #endif /*MOEOMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNSGAII_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNSGAII_8h-source.html new file mode 100644 index 000000000..049369962 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNSGAII_8h-source.html @@ -0,0 +1,128 @@ + + +ParadisEO-MOEO: moeoNSGAII.h Source File + + + + +
+
+

moeoNSGAII.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoNSGAII.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEONSGAII_H_
+00014 #define MOEONSGAII_H_
+00015 
+00016 #include <eoBreed.h>
+00017 #include <eoContinue.h>
+00018 #include <eoEvalFunc.h>
+00019 #include <eoGenContinue.h>
+00020 #include <eoGeneralBreeder.h>
+00021 #include <eoGenOp.h>
+00022 #include <eoPopEvalFunc.h>
+00023 #include <eoSGAGenOp.h>
+00024 #include <algo/moeoEA.h>
+00025 #include <diversity/moeoFrontByFrontCrowdingDiversityAssignment.h>
+00026 #include <fitness/moeoFastNonDominatedSortingFitnessAssignment.h>
+00027 #include <replacement/moeoElitistReplacement.h>
+00028 #include <selection/moeoDetTournamentSelect.h>
+00029 
+00036 template < class MOEOT >
+00037 class moeoNSGAII: public moeoEA < MOEOT >
+00038 {
+00039 public:
+00040 
+00047     moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op) :
+00048             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00049             replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00050     {}
+00051 
+00052 
+00059     moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op) :
+00060             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00061             replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00062     {}
+00063 
+00064 
+00074     moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut) :
+00075             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2),
+00076             replace (fitnessAssignment, diversityAssignment), defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut),
+00077             genBreed (select, defaultSGAGenOp), breed (genBreed)
+00078     {}
+00079 
+00080 
+00087     moeoNSGAII (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op) :
+00088             continuator(_continuator), popEval(_eval), select(2),
+00089             replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00090     {}
+00091 
+00092 
+00099     moeoNSGAII (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op) :
+00100             continuator(_continuator), popEval(_eval), select(2),
+00101             replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00102     {}
+00103 
+00104 
+00109     virtual void operator () (eoPop < MOEOT > &_pop)
+00110     {
+00111         eoPop < MOEOT > offspring, empty_pop;
+00112         popEval (empty_pop, _pop);      // a first eval of _pop
+00113         // evaluate fitness and diversity
+00114         fitnessAssignment(_pop);
+00115         diversityAssignment(_pop);
+00116         do
+00117         {
+00118             // generate offspring, worths are recalculated if necessary
+00119             breed (_pop, offspring);
+00120             // eval of offspring
+00121             popEval (_pop, offspring);
+00122             // after replace, the new pop is in _pop. Worths are recalculated if necessary
+00123             replace (_pop, offspring);
+00124         } while (continuator (_pop));
+00125     }
+00126 
+00127 
+00128 protected:
+00129 
+00131     eoGenContinue < MOEOT > defaultGenContinuator;
+00133     eoContinue < MOEOT > & continuator;
+00135     eoPopLoopEval < MOEOT > popEval;
+00137     moeoDetTournamentSelect < MOEOT > select;
+00139     moeoFastNonDominatedSortingFitnessAssignment < MOEOT > fitnessAssignment;
+00141     moeoFrontByFrontCrowdingDiversityAssignment  < MOEOT > diversityAssignment;
+00143     moeoElitistReplacement < MOEOT > replace;
+00145     eoSGAGenOp < MOEOT > defaultSGAGenOp;
+00147     eoGeneralBreeder < MOEOT > genBreed;
+00149     eoBreed < MOEOT > & breed;
+00150 
+00151 };
+00152 
+00153 #endif /*MOEONSGAII_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNSGA_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNSGA_8h-source.html new file mode 100644 index 000000000..d1d9112d0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNSGA_8h-source.html @@ -0,0 +1,128 @@ + + +ParadisEO-MOEO: moeoNSGA.h Source File + + + + +
+
+

moeoNSGA.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoNSGA.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEONSGA_H_
+00014 #define MOEONSGA_H_
+00015 
+00016 #include <eoBreed.h>
+00017 #include <eoContinue.h>
+00018 #include <eoEvalFunc.h>
+00019 #include <eoGenContinue.h>
+00020 #include <eoGeneralBreeder.h>
+00021 #include <eoGenOp.h>
+00022 #include <eoPopEvalFunc.h>
+00023 #include <eoSGAGenOp.h>
+00024 #include <algo/moeoEA.h>
+00025 #include <diversity/moeoFrontByFrontSharingDiversityAssignment.h>
+00026 #include <fitness/moeoFastNonDominatedSortingFitnessAssignment.h>
+00027 #include <replacement/moeoElitistReplacement.h>
+00028 #include <selection/moeoDetTournamentSelect.h>
+00029 
+00036 template < class MOEOT >
+00037 class moeoNSGA: public moeoEA < MOEOT >
+00038 {
+00039 public:
+00040 
+00048     moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, double _nicheSize = 0.5) :
+00049             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00050             diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00051     {}
+00052 
+00053 
+00061     moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, double _nicheSize = 0.5) :
+00062             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00063             diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00064     {}
+00065 
+00066 
+00077     moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut, double _nicheSize = 0.5) :
+00078             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2),
+00079             diversityAssignment(_nicheSize), replace (fitnessAssignment, diversityAssignment),
+00080             defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut), genBreed (select, defaultSGAGenOp), breed (genBreed)
+00081     {}
+00082 
+00083 
+00091     moeoNSGA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, double _nicheSize = 0.5) :
+00092             continuator(_continuator), popEval(_eval), select(2),
+00093             diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00094     {}
+00095 
+00096 
+00104     moeoNSGA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, double _nicheSize = 0.5) :
+00105             continuator(_continuator), popEval(_eval), select(2),
+00106             diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00107     {}
+00108 
+00109 
+00114     virtual void operator () (eoPop < MOEOT > &_pop)
+00115     {
+00116         eoPop < MOEOT > offspring, empty_pop;
+00117         popEval (empty_pop, _pop);      // a first eval of _pop
+00118         // evaluate fitness and diversity
+00119         fitnessAssignment(_pop);
+00120         diversityAssignment(_pop);
+00121         do
+00122         {
+00123             // generate offspring, worths are recalculated if necessary
+00124             breed (_pop, offspring);
+00125             // eval of offspring
+00126             popEval (_pop, offspring);
+00127             // after replace, the new pop is in _pop. Worths are recalculated if necessary
+00128             replace (_pop, offspring);
+00129         } while (continuator (_pop));
+00130     }
+00131 
+00132 
+00133 protected:
+00134 
+00136     eoGenContinue < MOEOT > defaultGenContinuator;
+00138     eoContinue < MOEOT > & continuator;
+00140     eoPopLoopEval < MOEOT > popEval;
+00142     moeoDetTournamentSelect < MOEOT > select;
+00144     moeoFastNonDominatedSortingFitnessAssignment < MOEOT > fitnessAssignment;
+00146     moeoFrontByFrontSharingDiversityAssignment  < MOEOT > diversityAssignment;
+00148     moeoElitistReplacement < MOEOT > replace;
+00150     eoSGAGenOp < MOEOT > defaultSGAGenOp;
+00152     eoGeneralBreeder < MOEOT > genBreed;
+00154     eoBreed < MOEOT > & breed;
+00155 
+00156 };
+00157 
+00158 #endif /*MOEONSGAII_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNormalizedDistance_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNormalizedDistance_8h-source.html new file mode 100644 index 000000000..8b7af33f7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNormalizedDistance_8h-source.html @@ -0,0 +1,114 @@ + + +ParadisEO-MOEO: moeoNormalizedDistance.h Source File + + + + +
+
+

moeoNormalizedDistance.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoNormalizedDistance.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEONORMALIZEDDISTANCE_H_
+00014 #define MOEONORMALIZEDDISTANCE_H_
+00015 
+00016 #include <vector>
+00017 #include <utils/eoRealBounds.h>
+00018 #include <distance/moeoDistance.h>
+00019 
+00023 template < class MOEOT , class Type = double >
+00024 class moeoNormalizedDistance : public moeoDistance < MOEOT , Type >
+00025 {
+00026 public:
+00027 
+00029     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00030 
+00031 
+00035     moeoNormalizedDistance()
+00036     {
+00037         bounds.resize(ObjectiveVector::Traits::nObjectives());
+00038         // initialize bounds in case someone does not want to use them
+00039         for (unsigned int i=0; i<ObjectiveVector::Traits::nObjectives(); i++)
+00040         {
+00041             bounds[i] = eoRealInterval(0,1);
+00042         }
+00043     }
+00044 
+00045 
+00049     static double tiny()
+00050     {
+00051         return 1e-6;
+00052     }
+00053 
+00054 
+00059     virtual void setup(const eoPop < MOEOT > & _pop)
+00060     {
+00061         double min, max;
+00062         for (unsigned int i=0; i<ObjectiveVector::Traits::nObjectives(); i++)
+00063         {
+00064             min = _pop[0].objectiveVector()[i];
+00065             max = _pop[0].objectiveVector()[i];
+00066             for (unsigned int j=1; j<_pop.size(); j++)
+00067             {
+00068                 min = std::min(min, _pop[j].objectiveVector()[i]);
+00069                 max = std::max(max, _pop[j].objectiveVector()[i]);
+00070             }
+00071             // setting of the bounds for the objective i
+00072             setup(min, max, i);
+00073         }
+00074     }
+00075 
+00076 
+00083     virtual void setup(double _min, double _max, unsigned int _obj)
+00084     {
+00085         if (_min == _max)
+00086         {
+00087             _min -= tiny();
+00088             _max += tiny();
+00089         }
+00090         bounds[_obj] = eoRealInterval(_min, _max);
+00091     }
+00092 
+00093 
+00099     virtual void setup(eoRealInterval _realInterval, unsigned int _obj)
+00100     {
+00101         bounds[_obj] = _realInterval;
+00102     }
+00103 
+00104 
+00105 protected:
+00106 
+00108     std::vector < eoRealInterval > bounds;
+00109 
+00110 };
+00111 
+00112 #endif /*MOEONORMALIZEDDISTANCE_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNormalizedSolutionVsSolutionBinaryMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNormalizedSolutionVsSolutionBinaryMetric_8h-source.html new file mode 100644 index 000000000..b1db4319a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoNormalizedSolutionVsSolutionBinaryMetric_8h-source.html @@ -0,0 +1,93 @@ + + +ParadisEO-MOEO: moeoNormalizedSolutionVsSolutionBinaryMetric.h Source File + + + + +
+
+

moeoNormalizedSolutionVsSolutionBinaryMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoNormalizedSolutionVsSolutionBinaryMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_
+00014 #define MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_
+00015 
+00016 #include <vector>
+00017 #include <utils/eoRealBounds.h>
+00018 #include <metric/moeoMetric.h>
+00019 
+00025 template < class ObjectiveVector, class R >
+00026 class moeoNormalizedSolutionVsSolutionBinaryMetric : public moeoSolutionVsSolutionBinaryMetric < ObjectiveVector, R >
+00027 {
+00028 public:
+00029 
+00033     moeoNormalizedSolutionVsSolutionBinaryMetric()
+00034     {
+00035         bounds.resize(ObjectiveVector::Traits::nObjectives());
+00036         // initialize bounds in case someone does not want to use them
+00037         for (unsigned int i=0; i<ObjectiveVector::Traits::nObjectives(); i++)
+00038         {
+00039             bounds[i] = eoRealInterval(0,1);
+00040         }
+00041     }
+00042 
+00043 
+00050     void setup(double _min, double _max, unsigned int _obj)
+00051     {
+00052         if (_min == _max)
+00053         {
+00054             _min -= tiny();
+00055             _max += tiny();
+00056         }
+00057         bounds[_obj] = eoRealInterval(_min, _max);
+00058     }
+00059 
+00060 
+00066     virtual void setup(eoRealInterval _realInterval, unsigned int _obj)
+00067     {
+00068         bounds[_obj] = _realInterval;
+00069     }
+00070 
+00071 
+00075     static double tiny()
+00076     {
+00077         return 1e-6;
+00078     }
+00079 
+00080 
+00081 protected:
+00082 
+00084     std::vector < eoRealInterval > bounds;
+00085 
+00086 };
+00087 
+00088 #endif /*MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveObjectiveVectorComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveObjectiveVectorComparator_8h-source.html new file mode 100644 index 000000000..dbd2944d6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveObjectiveVectorComparator_8h-source.html @@ -0,0 +1,72 @@ + + +ParadisEO-MOEO: moeoObjectiveObjectiveVectorComparator.h Source File + + + + +
+
+

moeoObjectiveObjectiveVectorComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoObjectiveObjectiveVectorComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOOBJECTIVEOBJECTIVEVECTORCOMPARATOR_H_
+00014 #define MOEOOBJECTIVEOBJECTIVEVECTORCOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoObjectiveVectorComparator.h>
+00017 
+00021 template < class ObjectiveVector >
+00022 class moeoObjectiveObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector >
+00023 {
+00024 public:
+00025 
+00031     const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)
+00032     {
+00033         for (unsigned int i=0; i<ObjectiveVector::nObjectives(); i++)
+00034         {
+00035             if ( fabs(_objectiveVector1[i] - _objectiveVector2[i]) > ObjectiveVector::Traits::tolerance() )
+00036             {
+00037                 if (_objectiveVector1[i] < _objectiveVector2[i])
+00038                 {
+00039                     return true;
+00040                 }
+00041                 else
+00042                 {
+00043                     return false;
+00044                 }
+00045             }
+00046         }
+00047         return false;
+00048     }
+00049 
+00050 };
+00051 
+00052 #endif /*MOEOOBJECTIVEOBJECTIVEVECTORCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorComparator_8h-source.html new file mode 100644 index 000000000..1d8b36eba --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorComparator_8h-source.html @@ -0,0 +1,50 @@ + + +ParadisEO-MOEO: moeoObjectiveVectorComparator.h Source File + + + + +
+
+

moeoObjectiveVectorComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoObjectiveVectorComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOOBJECTIVEVECTORCOMPARATOR_H_
+00014 #define MOEOOBJECTIVEVECTORCOMPARATOR_H_
+00015 
+00016 #include <math.h>
+00017 #include <eoFunctor.h>
+00018 
+00023 template < class ObjectiveVector >
+00024 class moeoObjectiveVectorComparator : public eoBF < const ObjectiveVector &, const ObjectiveVector &, const bool > {};
+00025 
+00026 #endif /*MOEOOBJECTIVEVECTORCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8cpp-source.html new file mode 100644 index 000000000..274429815 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8cpp-source.html @@ -0,0 +1,45 @@ + + +ParadisEO-MOEO: moeoObjectiveVectorTraits.cpp Source File + + + + +
+
+

moeoObjectiveVectorTraits.cpp

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoObjectiveVectorTraits.cpp
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #include <core/moeoObjectiveVectorTraits.h>
+00014 
+00015 // The static variables of the moeoObjectiveVectorTraits class need to be allocated
+00016 unsigned int moeoObjectiveVectorTraits::nObj;
+00017 std::vector < bool > moeoObjectiveVectorTraits::bObj;
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8h-source.html new file mode 100644 index 000000000..0c767fbd2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8h-source.html @@ -0,0 +1,107 @@ + + +ParadisEO-MOEO: moeoObjectiveVectorTraits.h Source File + + + + +
+
+

moeoObjectiveVectorTraits.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoObjectiveVectorTraits.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOOBJECTIVEVECTORTRAITS_H_
+00014 #define MOEOOBJECTIVEVECTORTRAITS_H_
+00015 
+00016 #include <iostream>
+00017 #include <stdexcept>
+00018 #include <vector>
+00019 
+00023 class moeoObjectiveVectorTraits
+00024 {
+00025 public:
+00026 
+00032     static void setup(unsigned int _nObjectives, std::vector < bool > & _bObjectives)
+00033     {
+00034         // in case the number of objectives was already set to a different value
+00035         if ( nObj && (nObj != _nObjectives) ) {
+00036             std::cout << "WARNING\n";
+00037             std::cout << "WARNING : the number of objectives are changing\n";
+00038             std::cout << "WARNING : Make sure all existing objects are destroyed\n";
+00039             std::cout << "WARNING\n";
+00040         }
+00041         // number of objectives
+00042         nObj = _nObjectives;
+00043         // min/max vector
+00044         bObj = _bObjectives;
+00045         // in case the number of objectives and the min/max vector size don't match
+00046         if (nObj != bObj.size())
+00047             throw std::runtime_error("Number of objectives and min/max size don't match in moeoObjectiveVectorTraits::setup");
+00048     }
+00049 
+00050 
+00054     static unsigned int nObjectives()
+00055     {
+00056         // in case the number of objectives would not be assigned yet
+00057         if (! nObj)
+00058             throw std::runtime_error("Number of objectives not assigned in moeoObjectiveVectorTraits");
+00059         return nObj;
+00060     }
+00061 
+00062 
+00067     static bool minimizing(unsigned int _i)
+00068     {
+00069         // in case there would be a wrong index
+00070         if (_i >= bObj.size())
+00071             throw std::runtime_error("Wrong index in moeoObjectiveVectorTraits");
+00072         return bObj[_i];
+00073     }
+00074 
+00075 
+00080     static bool maximizing(unsigned int _i) {
+00081         return (! minimizing(_i));
+00082     }
+00083 
+00084 
+00088     static double tolerance()
+00089     {
+00090         return 1e-6;
+00091     }
+00092 
+00093 
+00094 private:
+00095 
+00097     static unsigned int nObj;
+00099     static std::vector < bool > bObj;
+00100 
+00101 };
+00102 
+00103 #endif /*MOEOOBJECTIVEVECTORTRAITS_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVector_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVector_8h-source.html new file mode 100644 index 000000000..eb176bfb1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoObjectiveVector_8h-source.html @@ -0,0 +1,88 @@ + + +ParadisEO-MOEO: moeoObjectiveVector.h Source File + + + + +
+
+

moeoObjectiveVector.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoObjectiveVector.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOOBJECTIVEVECTOR_H_
+00014 #define MOEOOBJECTIVEVECTOR_H_
+00015 
+00016 #include <vector>
+00017 
+00024 template < class ObjectiveVectorTraits, class ObjectiveVectorType >
+00025 class moeoObjectiveVector : public std::vector < ObjectiveVectorType >
+00026 {
+00027 public:
+00028 
+00030     typedef ObjectiveVectorTraits Traits;
+00032     typedef ObjectiveVectorType Type;
+00033 
+00034 
+00038     moeoObjectiveVector(Type _value = Type()) : std::vector < Type > (ObjectiveVectorTraits::nObjectives(), _value)
+00039     {}
+00040 
+00041 
+00046     moeoObjectiveVector(std::vector < Type > & _v) : std::vector < Type > (_v)
+00047     {}
+00048 
+00049 
+00055     static void setup(unsigned int _nObjectives, std::vector < bool > & _bObjectives)
+00056     {
+00057         ObjectiveVectorTraits::setup(_nObjectives, _bObjectives);
+00058     }
+00059 
+00060 
+00064     static unsigned int nObjectives()
+00065     {
+00066         return ObjectiveVectorTraits::nObjectives();
+00067     }
+00068 
+00069 
+00074     static bool minimizing(unsigned int _i)
+00075     {
+00076         return ObjectiveVectorTraits::minimizing(_i);
+00077     }
+00078 
+00079 
+00084     static bool maximizing(unsigned int _i)
+00085     {
+00086         return ObjectiveVectorTraits::maximizing(_i);
+00087     }
+00088 
+00089 };
+00090 
+00091 #endif /*MOEOOBJECTIVEVECTOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoOneObjectiveComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoOneObjectiveComparator_8h-source.html new file mode 100644 index 000000000..c8e676e7a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoOneObjectiveComparator_8h-source.html @@ -0,0 +1,72 @@ + + +ParadisEO-MOEO: moeoOneObjectiveComparator.h Source File + + + + +
+
+

moeoOneObjectiveComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoOneObjectiveComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOONEOBJECTIVECOMPARATOR_H_
+00014 #define MOEOONEOBJECTIVECOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoOneObjectiveComparator : public moeoComparator < MOEOT >
+00023 {
+00024 public:
+00025 
+00030     moeoOneObjectiveComparator(unsigned int _obj) : obj(_obj)
+00031     {
+00032         if (obj > MOEOT::ObjectiveVector::nObjectives())
+00033         {
+00034             throw std::runtime_error("Problem with the index of objective in moeoOneObjectiveComparator");
+00035         }
+00036     }
+00037 
+00038 
+00044     const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00045     {
+00046         return _moeo1.objectiveVector()[obj] < _moeo2.objectiveVector()[obj];
+00047     }
+00048 
+00049 
+00050 private:
+00051 
+00053     unsigned int obj;
+00054 
+00055 };
+00056 
+00057 #endif /*MOEOONEOBJECTIVECOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoParetoBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoParetoBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..4a3e88ba1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoParetoBasedFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoParetoBasedFitnessAssignment.h Source File + + + + +
+
+

moeoParetoBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoParetoBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOPARETOBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOPARETOBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoParetoBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {};
+00023     
+00024 #endif /*MOEOPARETOBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoParetoObjectiveVectorComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoParetoObjectiveVectorComparator_8h-source.html new file mode 100644 index 000000000..c19ab5dc7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoParetoObjectiveVectorComparator_8h-source.html @@ -0,0 +1,90 @@ + + +ParadisEO-MOEO: moeoParetoObjectiveVectorComparator.h Source File + + + + +
+
+

moeoParetoObjectiveVectorComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoParetoObjectiveVectorComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_
+00014 #define MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoObjectiveVectorComparator.h>
+00017 
+00021 template < class ObjectiveVector >
+00022 class moeoParetoObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector >
+00023 {
+00024 public:
+00025 
+00031     const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)
+00032     {
+00033         bool dom = false;
+00034         for (unsigned int i=0; i<ObjectiveVector::nObjectives(); i++)
+00035         {
+00036             // first, we have to check if the 2 objective values are not equal for the ith objective
+00037             if ( fabs(_objectiveVector1[i] - _objectiveVector2[i]) > ObjectiveVector::Traits::tolerance() )
+00038             {
+00039                 // if the ith objective have to be minimized...
+00040                 if (ObjectiveVector::minimizing(i))
+00041                 {
+00042                     if (_objectiveVector1[i] > _objectiveVector2[i])
+00043                     {
+00044                         dom = true;             //_objectiveVector1[i] is not better than _objectiveVector2[i]
+00045                     }
+00046                     else
+00047                     {
+00048                         return false;   //_objectiveVector2 cannot dominate _objectiveVector1
+00049                     }
+00050                 }
+00051                 // if the ith objective have to be maximized...
+00052                 else if (ObjectiveVector::maximizing(i))
+00053                 {
+00054                     if (_objectiveVector1[i] > _objectiveVector2[i])
+00055                     {
+00056                         dom = true;             //_objectiveVector1[i] is not better than _objectiveVector2[i]
+00057                     }
+00058                     else
+00059                     {
+00060                         return false;   //_objectiveVector2 cannot dominate _objectiveVector1
+00061                     }
+00062                 }
+00063             }
+00064         }
+00065         return dom;
+00066     }
+00067 
+00068 };
+00069 
+00070 #endif /*MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRandomSelect_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRandomSelect_8h-source.html new file mode 100644 index 000000000..b241126fe --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRandomSelect_8h-source.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoRandomSelect.h Source File + + + + +
+
+

moeoRandomSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoRandomSelect.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEORANDOMSELECT_H_
+00014 #define MOEORANDOMSELECT_H_
+00015 
+00016 #include <eoRandomSelect.h>
+00017 #include <selection/moeoSelectOne.h>
+00018 
+00019 
+00023 template < class MOEOT > class moeoRandomSelect:public moeoSelectOne < MOEOT >, public eoRandomSelect <MOEOT >
+00024 {
+00025 public:
+00026 
+00030     moeoRandomSelect(){}
+00031 
+00032 
+00036     const MOEOT & operator () (const eoPop < MOEOT > &_pop)
+00037     {
+00038         return eoRandomSelect < MOEOT >::operator ()(_pop);
+00039     }
+00040 
+00041 };
+00042 
+00043 #endif /*MOEORANDOMSELECT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRealObjectiveVector_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRealObjectiveVector_8h-source.html new file mode 100644 index 000000000..b99c4410d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRealObjectiveVector_8h-source.html @@ -0,0 +1,140 @@ + + +ParadisEO-MOEO: moeoRealObjectiveVector.h Source File + + + + +
+
+

moeoRealObjectiveVector.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoRealObjectiveVector.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOREALOBJECTIVEVECTOR_H_
+00014 #define MOEOREALOBJECTIVEVECTOR_H_
+00015 
+00016 #include <iostream>
+00017 #include <math.h>
+00018 #include <comparator/moeoObjectiveObjectiveVectorComparator.h>
+00019 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00020 #include <core/moeoObjectiveVector.h>
+00021 
+00026 template < class ObjectiveVectorTraits >
+00027 class moeoRealObjectiveVector : public moeoObjectiveVector < ObjectiveVectorTraits, double >
+00028 {
+00029 public:
+00030 
+00031     using moeoObjectiveVector < ObjectiveVectorTraits, double >::size;
+00032     using moeoObjectiveVector < ObjectiveVectorTraits, double >::operator[];
+00033 
+00037     moeoRealObjectiveVector(double _value = 0.0) : moeoObjectiveVector < ObjectiveVectorTraits, double > (_value)
+00038     {}
+00039 
+00040 
+00045     moeoRealObjectiveVector(std::vector < double > & _v) : moeoObjectiveVector < ObjectiveVectorTraits, double > (_v)
+00046     {}
+00047 
+00048 
+00054     bool dominates(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00055     {
+00056         moeoParetoObjectiveVectorComparator < moeoRealObjectiveVector<ObjectiveVectorTraits> > comparator;
+00057         return comparator(_other, *this);
+00058     }
+00059 
+00060 
+00065     bool operator==(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00066     {
+00067         for (unsigned int i=0; i < size(); i++)
+00068         {
+00069             if ( fabs(operator[](i) - _other[i]) > ObjectiveVectorTraits::tolerance() )
+00070             {
+00071                 return false;
+00072             }
+00073         }
+00074         return true;
+00075     }
+00076 
+00077 
+00082     bool operator!=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00083     {
+00084         return ! operator==(_other);
+00085     }
+00086 
+00087 
+00093     bool operator<(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00094     {
+00095         moeoObjectiveObjectiveVectorComparator < moeoRealObjectiveVector < ObjectiveVectorTraits > > cmp;
+00096         return cmp(*this, _other);
+00097     }
+00098 
+00099 
+00105     bool operator>(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00106     {
+00107         return _other < *this;
+00108     }
+00109 
+00110 
+00116     bool operator<=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00117     {
+00118         return operator==(_other) || operator<(_other);
+00119     }
+00120 
+00121 
+00127     bool operator>=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00128     {
+00129         return operator==(_other) || operator>(_other);
+00130     }
+00131 
+00132 };
+00133 
+00134 
+00140 template < class ObjectiveVectorTraits >
+00141 std::ostream & operator<<(std::ostream & _os, const moeoRealObjectiveVector < ObjectiveVectorTraits > & _objectiveVector)
+00142 {
+00143     for (unsigned int i=0; i<_objectiveVector.size(); i++)
+00144     {
+00145         _os << _objectiveVector[i] << '\t';
+00146     }
+00147     return _os;
+00148 }
+00149 
+00155 template < class ObjectiveVectorTraits >
+00156 std::istream & operator>>(std::istream & _is, moeoRealObjectiveVector < ObjectiveVectorTraits > & _objectiveVector)
+00157 {
+00158     _objectiveVector = moeoRealObjectiveVector < ObjectiveVectorTraits > ();
+00159     for (unsigned int i=0; i<_objectiveVector.size(); i++)
+00160     {
+00161         _is >> _objectiveVector[i];
+00162     }
+00163     return _is;
+00164 }
+00165 
+00166 #endif /*MOEOREALOBJECTIVEVECTOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRealVector_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRealVector_8h-source.html new file mode 100644 index 000000000..7cdc9f41b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRealVector_8h-source.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoRealVector.h Source File + + + + +
+
+

moeoRealVector.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoRealVector.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOREALVECTOR_H_
+00014 #define MOEOREALVECTOR_H_
+00015 
+00016 #include <core/moeoVector.h>
+00017 
+00021 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity >
+00022 class moeoRealVector : public moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >
+00023 {
+00024 public:
+00025 
+00031     moeoRealVector(unsigned int _size = 0, double _value = 0.0) : moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >(_size, _value)
+00032     {}
+00033     
+00034     
+00038     virtual std::string className() const
+00039     {
+00040         return "moeoRealVector";
+00041     }
+00042     
+00043 };
+00044 
+00045 #endif /*MOEOREALVECTOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoReplacement_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoReplacement_8h-source.html new file mode 100644 index 000000000..e88aacc57 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoReplacement_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoReplacement.h Source File + + + + +
+
+

moeoReplacement.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoReplacement.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOREPLACEMENT_H_
+00014 #define MOEOREPLACEMENT_H_
+00015 
+00016 #include <eoReplacement.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoReplacement : public eoReplacement < MOEOT > {};
+00023 
+00024 #endif /*MOEOREPLACEMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRouletteSelect_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRouletteSelect_8h-source.html new file mode 100644 index 000000000..4b959bc30 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoRouletteSelect_8h-source.html @@ -0,0 +1,77 @@ + + +ParadisEO-MOEO: moeoRouletteSelect.h Source File + + + + +
+
+

moeoRouletteSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoRouletteSelect.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOROULETTESELECT_H_
+00014 #define MOEOROULETTESELECT_H_
+00015 
+00016 #include <selection/moeoSelectOne.h>
+00017 #include <selection/moeoSelectors.h>
+00018 
+00023 template < class MOEOT >
+00024 class moeoRouletteSelect:public moeoSelectOne < MOEOT >
+00025 {
+00026 public:
+00027 
+00032     moeoRouletteSelect (unsigned int _tSize = 2) : tSize (_tSize)
+00033     {
+00034         // consistency check
+00035         if (tSize < 2)
+00036         {
+00037             std::
+00038             cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n";
+00039             tSize = 2;
+00040         }
+00041     }
+00042 
+00043 
+00048     const MOEOT & operator  () (const eoPop < MOEOT > & _pop)
+00049     {
+00050         // use the selector
+00051         return mo_roulette_wheel(_pop,tSize);
+00052     }
+00053 
+00054 
+00055 protected:
+00056 
+00058     double & tSize;
+00059 
+00060 };
+00061 
+00062 #endif /*MOEOROULETTESELECT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoScalarFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoScalarFitnessAssignment_8h-source.html new file mode 100644 index 000000000..f58151216 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoScalarFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoScalarFitnessAssignment.h Source File + + + + +
+
+

moeoScalarFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoScalarFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSCALARFITNESSASSIGNMENT_H_
+00014 #define MOEOSCALARFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoScalarFitnessAssignment : public moeoFitnessAssignment < MOEOT > {};
+00023     
+00024 #endif /*MOEOSCALARFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectFromPopAndArch_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectFromPopAndArch_8h-source.html new file mode 100644 index 000000000..2ad91cf24 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectFromPopAndArch_8h-source.html @@ -0,0 +1,93 @@ + + +ParadisEO-MOEO: moeoSelectFromPopAndArch.h Source File + + + + +
+
+

moeoSelectFromPopAndArch.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoSelectFormPopAndArch.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSELECTONEFROMPOPANDARCH_H_
+00014 #define MOEOSELECTONEFROMPOPANDARCH_H_
+00015 
+00016 #include <eoPop.h>
+00017 #include <utils/eoRNG.h>
+00018 #include <archive/moeoArchive.h>
+00019 #include <selection/moeoSelectOne.h>
+00020 #include <selection/moeoRandomSelect.h>
+00021 
+00025 template < class MOEOT >
+00026 class moeoSelectFromPopAndArch : public moeoSelectOne < MOEOT >
+00027 {
+00028 public:
+00029 
+00037     moeoSelectFromPopAndArch (moeoSelectOne < MOEOT > & _popSelectOne, moeoSelectOne < MOEOT > _archSelectOne, moeoArchive < MOEOT > & _arch, double _ratioFromPop=0.5)
+00038             : popSelectOne(_popSelectOne), archSelectOne(_archSelectOne), arch(_arch), ratioFromPop(_ratioFromPop)
+00039     {}
+00040 
+00041 
+00048     moeoSelectFromPopAndArch (moeoSelectOne < MOEOT > & _popSelectOne, moeoArchive < MOEOT > & _arch, double _ratioFromPop=0.5)
+00049             : popSelectOne(_popSelectOne), archSelectOne(randomSelectOne), arch(_arch), ratioFromPop(_ratioFromPop)
+00050     {}
+00051 
+00052 
+00056     virtual const MOEOT & operator () (const eoPop < MOEOT > & pop)
+00057     {
+00058         if (arch.size() > 0)
+00059             if (rng.flip(ratioFromPop))
+00060                 return popSelectOne(pop);
+00061             else
+00062                 return archSelectOne(arch);
+00063         else
+00064             return popSelectOne(pop);
+00065     }
+00066 
+00067 
+00071     virtual void setup (const eoPop < MOEOT > & _pop)
+00072     {
+00073         popSelectOne.setup(_pop);
+00074     }
+00075 
+00076 
+00077 private:
+00078 
+00080     moeoSelectOne < MOEOT > & popSelectOne;
+00082     moeoSelectOne < MOEOT > & archSelectOne;
+00084     moeoArchive < MOEOT > & arch;
+00086     double ratioFromPop;
+00088     moeoRandomSelect < MOEOT > randomSelectOne;
+00089 
+00090 };
+00091 
+00092 #endif /*MOEOSELECTONEFROMPOPANDARCH_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectOne_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectOne_8h-source.html new file mode 100644 index 000000000..465c5089b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectOne_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoSelectOne.h Source File + + + + +
+
+

moeoSelectOne.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoSelectOne.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSELECTONE_H_
+00014 #define MOEOSELECTONE_H_
+00015 
+00016 #include <eoSelectOne.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoSelectOne : public eoSelectOne < MOEOT > {};
+00023 
+00024 #endif /*MOEOSELECTONE_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectors_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectors_8h-source.html new file mode 100644 index 000000000..d1ef69835 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSelectors_8h-source.html @@ -0,0 +1,186 @@ + + +ParadisEO-MOEO: moeoSelectors.h Source File + + + + +
+
+

moeoSelectors.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoSelectors.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSELECTORS_H_
+00014 #define MOEOSELECTORS_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 
+00018 
+00019 template <class It,class MOEOT>
+00020 It mo_deterministic_tournament(It _begin, It _end, unsigned int _t_size,moeoComparator<MOEOT>& _comparator ,eoRng& _gen = rng)
+00021 {
+00022     It best = _begin + _gen.random(_end - _begin);
+00023 
+00024     for (unsigned int i = 0; i < _t_size - 1; ++i)
+00025     {
+00026         It competitor = _begin + _gen.random(_end - _begin);
+00027         // compare the two individuals by using the comparator
+00028         if (_comparator(*best, *competitor))
+00029             // best "better" than competitor
+00030             best=competitor;
+00031     }
+00032     return best;
+00033 }
+00034 
+00035 
+00036 template <class MOEOT>
+00037 const MOEOT& mo_deterministic_tournament(const eoPop<MOEOT>& _pop, unsigned int _t_size,moeoComparator<MOEOT>& _comparator, eoRng& _gen = rng)
+00038 {
+00039     return *mo_deterministic_tournament(_pop.begin(), _pop.end(),_t_size,_comparator, _gen);
+00040 }
+00041 
+00042 
+00043 template <class MOEOT>
+00044 MOEOT& mo_deterministic_tournament(eoPop<MOEOT>& _pop, unsigned int _t_size,moeoComparator<MOEOT>& _comparator,eoRng& _gen = rng)
+00045 {
+00046     return *mo_deterministic_tournament(_pop.begin(), _pop.end(), _t_size,_comparator, _gen);
+00047 }
+00048 
+00049 
+00050 template <class It,class MOEOT>
+00051 It mo_stochastic_tournament(It _begin, It _end, double _t_rate,moeoComparator<MOEOT>& _comparator ,eoRng& _gen = rng)
+00052 {
+00053     It i1 = _begin + _gen.random(_end - _begin);
+00054     It i2 = _begin + _gen.random(_end - _begin);
+00055 
+00056     bool return_better = _gen.flip(_t_rate);
+00057 
+00058     if (_comparator(*i1, *i2))
+00059     {
+00060         if (return_better) return i2;
+00061         // else
+00062 
+00063         return i1;
+00064     }
+00065     else
+00066     {
+00067         if (return_better) return i1;
+00068         // else
+00069     }
+00070     // else
+00071 
+00072     return i2;
+00073 }
+00074 
+00075 
+00076 template <class MOEOT>
+00077 const MOEOT& mo_stochastic_tournament(const eoPop<MOEOT>& _pop, double _t_rate,moeoComparator<MOEOT>& _comparator, eoRng& _gen = rng)
+00078 {
+00079     return *mo_stochastic_tournament(_pop.begin(), _pop.end(), _t_rate,_comparator, _gen);
+00080 }
+00081 
+00082 
+00083 template <class MOEOT>
+00084 MOEOT& mo_stochastic_tournament(eoPop<MOEOT>& _pop, double _t_rate, eoRng& _gen = rng)
+00085 {
+00086     return *mo_stochastic_tournament(_pop.begin(), _pop.end(), _t_rate, _gen);
+00087 }
+00088 
+00089 
+00090 template <class It>
+00091 It mo_roulette_wheel(It _begin, It _end, double total, eoRng& _gen = rng)
+00092 {
+00093 
+00094     float roulette = _gen.uniform(total);
+00095 
+00096     if (roulette == 0.0)           // covers the case where total==0.0
+00097         return _begin + _gen.random(_end - _begin); // uniform choice
+00098 
+00099     It i = _begin;
+00100 
+00101     while (roulette > 0.0)
+00102     {
+00103         roulette -= static_cast<double>(*(i++));
+00104     }
+00105 
+00106     return --i;
+00107 }
+00108 
+00109 
+00110 template <class MOEOT>
+00111 const MOEOT& mo_roulette_wheel(const eoPop<MOEOT>& _pop, double total, eoRng& _gen = rng)
+00112 {
+00113     float roulette = _gen.uniform(total);
+00114 
+00115     if (roulette == 0.0)           // covers the case where total==0.0
+00116         return _pop[_gen.random(_pop.size())]; // uniform choice
+00117 
+00118     typename eoPop<MOEOT>::const_iterator i = _pop.begin();
+00119 
+00120     while (roulette > 0.0)
+00121     {
+00122         roulette -= static_cast<double>((i++)->fitness());
+00123     }
+00124 
+00125     return *--i;
+00126 }
+00127 
+00128 
+00129 template <class MOEOT>
+00130 MOEOT& mo_roulette_wheel(eoPop<MOEOT>& _pop, double total, eoRng& _gen = rng)
+00131 {
+00132     float roulette = _gen.uniform(total);
+00133 
+00134     if (roulette == 0.0)           // covers the case where total==0.0
+00135         return _pop[_gen.random(_pop.size())]; // uniform choice
+00136 
+00137     typename eoPop<MOEOT>::iterator i = _pop.begin();
+00138 
+00139     while (roulette > 0.0)
+00140     {
+00141         // fitness only
+00142         roulette -= static_cast<double>((i++)->fitness());
+00143     }
+00144 
+00145     return *--i;
+00146 }
+00147 
+00148 
+00149 #endif /*MOEOSELECTORS_H_*/
+00150 
+00151 
+00152 
+00153 
+00154 
+00155 
+00156 
+00157 
+00158 
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSharingDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSharingDiversityAssignment_8h-source.html new file mode 100644 index 000000000..efcc51acf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoSharingDiversityAssignment_8h-source.html @@ -0,0 +1,131 @@ + + +ParadisEO-MOEO: moeoSharingDiversityAssignment.h Source File + + + + +
+
+

moeoSharingDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoSharingDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSHARINGDIVERSITYASSIGNMENT_H_
+00014 #define MOEOSHARINGDIVERSITYASSIGNMENT_H_
+00015 
+00016 #include <eoPop.h>
+00017 #include <comparator/moeoDiversityThenFitnessComparator.h>
+00018 #include <distance/moeoDistance.h>
+00019 #include <distance/moeoDistanceMatrix.h>
+00020 #include <distance/moeoEuclideanDistance.h>
+00021 #include <diversity/moeoDiversityAssignment.h>
+00022 
+00027 template < class MOEOT >
+00028 class moeoSharingDiversityAssignment : public moeoDiversityAssignment < MOEOT >
+00029 {
+00030 public:
+00031 
+00033     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00034 
+00035 
+00042     moeoSharingDiversityAssignment(moeoDistance<MOEOT,double> & _distance, double _nicheSize = 0.5, double _alpha = 1.0) : distance(_distance), nicheSize(_nicheSize), alpha(_alpha)
+00043     {}
+00044 
+00045 
+00051     moeoSharingDiversityAssignment(double _nicheSize = 0.5, double _alpha = 1.0) : distance(defaultDistance), nicheSize(_nicheSize), alpha(_alpha)
+00052     {}
+00053 
+00054 
+00059     void operator()(eoPop < MOEOT > & _pop)
+00060     {
+00061         // 1 - set simuilarities
+00062         setSimilarities(_pop);
+00063         // 2 - a higher diversity is better, so the values need to be inverted
+00064         moeoDiversityThenFitnessComparator < MOEOT > divComparator;
+00065         double max = std::max_element(_pop.begin(), _pop.end(), divComparator)->diversity();
+00066         for (unsigned int i=0 ; i<_pop.size() ; i++)
+00067         {
+00068             _pop[i].diversity(max - _pop[i].diversity());
+00069         }
+00070     }
+00071 
+00072 
+00080     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00081     {
+00082         std::cout << "WARNING : updateByDeleting not implemented in moeoSharingDiversityAssignment" << std::endl;
+00083     }
+00084 
+00085 
+00086 protected:
+00087 
+00089     moeoDistance < MOEOT , double > & distance;
+00091     moeoEuclideanDistance < MOEOT > defaultDistance;
+00093     double nicheSize;
+00095     double alpha;
+00096 
+00097 
+00102     virtual void setSimilarities(eoPop < MOEOT > & _pop)
+00103     {
+00104         // compute distances between every individuals
+00105         moeoDistanceMatrix < MOEOT , double > dMatrix (_pop.size(), distance);
+00106         dMatrix(_pop);
+00107         // compute similarities
+00108         double sum;
+00109         for (unsigned int i=0; i<_pop.size(); i++)
+00110         {
+00111             sum = 0.0;
+00112             for (unsigned int j=0; j<_pop.size(); j++)
+00113             {
+00114                 sum += sh(dMatrix[i][j]);
+00115             }
+00116             _pop[i].diversity(sum);
+00117         }
+00118     }
+00119 
+00120 
+00125     double sh(double _dist)
+00126     {
+00127         double result;
+00128         if (_dist < nicheSize)
+00129         {
+00130             result = 1.0 - pow(_dist / nicheSize, alpha);
+00131         }
+00132         else
+00133         {
+00134             result = 0.0;
+00135         }
+00136         return result;
+00137     }
+00138 
+00139 };
+00140 
+00141 
+00142 #endif /*MOEOSHARINGDIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoStochTournamentSelect_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoStochTournamentSelect_8h-source.html new file mode 100644 index 000000000..4bf4ffa16 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoStochTournamentSelect_8h-source.html @@ -0,0 +1,100 @@ + + +ParadisEO-MOEO: moeoStochTournamentSelect.h Source File + + + + +
+
+

moeoStochTournamentSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoStochTournamentSelect.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSTOCHTOURNAMENTSELECT_H_
+00014 #define MOEOSTOCHTOURNAMENTSELECT_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00018 #include <selection/moeoSelectOne.h>
+00019 #include <selection/moeoSelectors.h>
+00020 
+00024 template < class MOEOT > class moeoStochTournamentSelect:public moeoSelectOne <MOEOT>
+00025 {
+00026 public:
+00027 
+00033     moeoStochTournamentSelect (moeoComparator < MOEOT > & _comparator, double _tRate = 1.0) : comparator (_comparator), tRate (_tRate)
+00034     {
+00035         // consistency checks
+00036         if (tRate < 0.5)
+00037         {
+00038             std::cerr << "Warning, Tournament rate should be > 0.5\nAdjusted to 0.55\n";
+00039             tRate = 0.55;
+00040         }
+00041         if (tRate > 1)
+00042         {
+00043             std::cerr << "Warning, Tournament rate should be < 1\nAdjusted to 1\n";
+00044             tRate = 1;
+00045         }
+00046     }
+00047     
+00048 
+00053     moeoStochTournamentSelect (double _tRate = 1.0) : comparator (defaultComparator), tRate (_tRate)
+00054     {
+00055         // consistency checks
+00056         if (tRate < 0.5)
+00057         {
+00058             std::cerr << "Warning, Tournament rate should be > 0.5\nAdjusted to 0.55\n";
+00059             tRate = 0.55;
+00060         }
+00061         if (tRate > 1)
+00062         {
+00063             std::cerr << "Warning, Tournament rate should be < 1\nAdjusted to 1\n";
+00064             tRate = 1;
+00065         }
+00066     }
+00067 
+00068 
+00073     const MOEOT & operator() (const eoPop < MOEOT > &_pop)
+00074     {
+00075         // use the selector
+00076         return mo_stochastic_tournament(_pop,tRate,comparator);
+00077     }
+00078 
+00079 
+00080 protected:
+00081 
+00083     moeoComparator < MOEOT > & comparator;
+00085     moeoFitnessThenDiversityComparator < MOEOT > defaultComparator;
+00087     double tRate;
+00088 
+00089 };
+00090 
+00091 #endif /*MOEOSTOCHTOURNAMENTSELECT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoUnaryIndicatorBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoUnaryIndicatorBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..153a136c8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoUnaryIndicatorBasedFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoUnaryIndicatorBasedFitnessAssignment.h Source File + + + + +
+
+

moeoUnaryIndicatorBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoUnaryIndicatorBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOUNARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOUNARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoIndicatorBasedFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoUnaryIndicatorBasedFitnessAssignment : public moeoIndicatorBasedFitnessAssignment < MOEOT > {};
+00023 
+00024 #endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoVector_8h-source.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoVector_8h-source.html new file mode 100644 index 000000000..ffe2d3a50 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/moeoVector_8h-source.html @@ -0,0 +1,134 @@ + + +ParadisEO-MOEO: moeoVector.h Source File + + + + +
+
+

moeoVector.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoVector.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOVECTOR_H_
+00014 #define MOEOVECTOR_H_
+00015 
+00016 #include <iterator>
+00017 #include <vector>
+00018 #include <core/MOEO.h>
+00019 
+00024 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType >
+00025 class moeoVector : public MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >, public std::vector < GeneType >
+00026 {
+00027 public:
+00028 
+00029     using MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity > :: invalidate;
+00030     using std::vector < GeneType > :: operator[];
+00031     using std::vector < GeneType > :: begin;
+00032     using std::vector < GeneType > :: end;
+00033     using std::vector < GeneType > :: resize;
+00034     using std::vector < GeneType > :: size;
+00035 
+00037     typedef GeneType AtomType;
+00039     typedef std::vector < GeneType > ContainerType;
+00040 
+00041 
+00047     moeoVector(unsigned int _size = 0, GeneType _value = GeneType()) :
+00048             MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >(), std::vector<GeneType>(_size, _value)
+00049     {}
+00050      
+00051     
+00056     void value(const std::vector < GeneType > & _v)
+00057     {
+00058         if (_v.size() != size())           // safety check
+00059         {
+00060             if (size())            // NOT an initial empty std::vector
+00061             {
+00062                 std::cout << "Warning: Changing size in moeoVector assignation"<<std::endl;
+00063                 resize(_v.size());
+00064             }
+00065             else
+00066             {
+00067                 throw std::runtime_error("Size not initialized in moeoVector");
+00068             }
+00069         }
+00070         std::copy(_v.begin(), _v.end(), begin());
+00071         invalidate();
+00072     }
+00073 
+00074 
+00079     bool operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo) const
+00080     {
+00081         return MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::operator<(_moeo);
+00082     }
+00083 
+00084 
+00089     virtual void printOn(std::ostream & _os) const
+00090     {
+00091         MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn(_os);
+00092         _os << ' ';
+00093         _os << size() << ' ';
+00094         std::copy(begin(), end(), std::ostream_iterator<AtomType>(_os, " "));
+00095     }
+00096 
+00097 
+00102     virtual void readFrom(std::istream & _is)
+00103     {
+00104         MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom(_is);
+00105         unsigned int sz;
+00106         _is >> sz;
+00107         resize(sz);
+00108         unsigned int i;
+00109         for (i = 0; i < sz; ++i)
+00110         {
+00111             AtomType atom;
+00112             _is >> atom;
+00113             operator[](i) = atom;
+00114         }
+00115     }
+00116 
+00117 };
+00118 
+00119 
+00125 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType >
+00126 bool operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo1, const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo2)
+00127 {
+00128     return _moeo1.operator<(_moeo2);
+00129 }
+00130 
+00131 
+00137 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType >
+00138 bool operator>(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo1, const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo2)
+00139 {
+00140     return _moeo1.operator>(_moeo2);
+00141 }
+00142 
+00143 #endif /*MOEOVECTOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/search.idx b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/search.idx new file mode 100644 index 0000000000000000000000000000000000000000..4927c4c6c7218807af49b9d374e6cb8ef8bff0a3 GIT binary patch literal 530774 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

or}vz5!frVBBF9J+^+CE1^Az87 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 literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/search.php b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/search.php new file mode 100644 index 000000000..13fa755ef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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 Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tab_b.gif b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tab_l.gif b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tab_r.gif b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tabs.css b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tabs.css new file mode 100644 index 000000000..a61552a67 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tree.html b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tree.html new file mode 100644 index 000000000..69d9d5aff --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/html/tree.html @@ -0,0 +1,495 @@ + + + + + + + TreeView + + + + +
+

ParadisEO-MOEO

+
+

o*Welcome to ParadisEO-MOEO

+

o+Class List

+
+

|o*MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+

|o*moeoAchievementFitnessAssignment< MOEOT >

+

|o*moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >

+

|o*moeoAggregativeComparator< MOEOT >

+

|o*moeoAlgo

+

|o*moeoArchive< MOEOT >

+

|o*moeoArchiveObjectiveVectorSavingUpdater< MOEOT >

+

|o*moeoArchiveUpdater< MOEOT >

+

|o*moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >

+

|o*moeoBinaryMetric< A1, A2, R >

+

|o*moeoBinaryMetricSavingUpdater< MOEOT >

+

|o*moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+

|o*moeoCombinedLS< MOEOT, Type >

+

|o*moeoComparator< MOEOT >

+

|o*moeoContributionMetric< ObjectiveVector >

+

|o*moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >

+

|o*moeoCriterionBasedFitnessAssignment< MOEOT >

+

|o*moeoCrowdingDiversityAssignment< MOEOT >

+

|o*moeoDetTournamentSelect< MOEOT >

+

|o*moeoDistance< MOEOT, Type >

+

|o*moeoDistanceMatrix< MOEOT, Type >

+

|o*moeoDiversityAssignment< MOEOT >

+

|o*moeoDiversityThenFitnessComparator< MOEOT >

+

|o*moeoDummyDiversityAssignment< MOEOT >

+

|o*moeoDummyFitnessAssignment< MOEOT >

+

|o*moeoEA< MOEOT >

+

|o*moeoEasyEA< MOEOT >

+

|o*moeoEasyEA< MOEOT >::eoDummyEval

+

|o*moeoEasyEA< MOEOT >::eoDummySelect

+

|o*moeoEasyEA< MOEOT >::eoDummyTransform

+

|o*moeoElitistReplacement< MOEOT >

+

|o*moeoElitistReplacement< MOEOT >::Cmp

+

|o*moeoEntropyMetric< ObjectiveVector >

+

|o*moeoEnvironmentalReplacement< MOEOT >

+

|o*moeoEnvironmentalReplacement< MOEOT >::Cmp

+

|o*moeoEuclideanDistance< MOEOT >

+

|o*moeoEvalFunc< MOEOT >

+

|o*moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >

+

|o*moeoFastNonDominatedSortingFitnessAssignment< MOEOT >

+

|o*moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator

+

|o*moeoFitnessAssignment< MOEOT >

+

|o*moeoFitnessThenDiversityComparator< MOEOT >

+

|o*moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >

+

|o*moeoFrontByFrontSharingDiversityAssignment< MOEOT >

+

|o*moeoGDominanceObjectiveVectorComparator< ObjectiveVector >

+

|o*moeoGenerationalReplacement< MOEOT >

+

|o*moeoHybridLS< MOEOT >

+

|o*moeoHypervolumeBinaryMetric< ObjectiveVector >

+

|o*moeoIBEA< MOEOT >

+

|o*moeoIndicatorBasedFitnessAssignment< MOEOT >

+

|o*moeoLS< MOEOT, Type >

+

|o*moeoManhattanDistance< MOEOT >

+

|o*moeoMetric

+

|o*moeoNormalizedDistance< MOEOT, Type >

+

|o*moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >

+

|o*moeoNSGA< MOEOT >

+

|o*moeoNSGAII< MOEOT >

+

|o*moeoObjectiveObjectiveVectorComparator< ObjectiveVector >

+

|o*moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >

+

|o*moeoObjectiveVectorComparator< ObjectiveVector >

+

|o*moeoObjectiveVectorTraits

+

|o*moeoOneObjectiveComparator< MOEOT >

+

|o*moeoParetoBasedFitnessAssignment< MOEOT >

+

|o*moeoParetoObjectiveVectorComparator< ObjectiveVector >

+

|o*moeoRandomSelect< MOEOT >

+

|o*moeoRealObjectiveVector< ObjectiveVectorTraits >

+

|o*moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+

|o*moeoReplacement< MOEOT >

+

|o*moeoRouletteSelect< MOEOT >

+

|o*moeoScalarFitnessAssignment< MOEOT >

+

|o*moeoSelectFromPopAndArch< MOEOT >

+

|o*moeoSelectOne< MOEOT >

+

|o*moeoSharingDiversityAssignment< MOEOT >

+

|o*moeoSolutionUnaryMetric< ObjectiveVector, R >

+

|o*moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >

+

|o*moeoStochTournamentSelect< MOEOT >

+

|o*moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >

+

|o*moeoUnaryMetric< A, R >

+

|o*moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >

+

|o*moeoVectorUnaryMetric< ObjectiveVector, R >

+

|\*moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >

+
+

o+Class Hierarchy

+
+

|o+eoFunctorBase [external]

+
+

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

+
+

|||o+eoReplacement< EOT > [external]

+ +

|||o+eoReplacement< MOEOT > [external]

+ +

|||o+eoSelect< MOEOT > [external]

+ +

|||o+moeoBinaryMetric< A1, A2, R >

+ +

|||o+moeoComparator< MOEOT >

+ +

|||o+moeoDistance< MOEOT, Type >

+ +

|||o+moeoDistance< MOEOT, double >

+ +

|||\+moeoObjectiveVectorComparator< ObjectiveVector >

+ +
+

||o+eoBF< const const ObjectiveVector &, ObjectiveVector &, double > [external]

+ +

||o+eoBF< const const ObjectiveVector &, ObjectiveVector &, R > [external]

+ +

||o+eoBF< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, double > [external]

+ +

||o+eoBF< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R > [external]

+ +

||o+eoBF< Type, moeoArchive< MOEOT > &, void > [external]

+ +

||o+eoF< void > [external]

+ +

||o+eoUF< A1, R > [external]

+ +

||o+eoUF< A, R > [external]

+ +

||o+eoUF< const eoPop< MOEOT > &, void > [external]

+ +

||o+eoUF< const ObjectiveVector &, R > [external]

+ +

||o+eoUF< const std::vector< ObjectiveVector > &, R > [external]

+ +

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

+ +

||\+moeoMetric

+ +
+

|o+eoObject [external]

+ +

|o+eoPrintable [external]

+
+

||\+eoPersistent [external]

+
+

|| o*EO< MOEOObjectiveVector > [external]

+

|| \*eoPop< MOEOT > [external]

+
+
+

|o+moeoAlgo

+ +

|o*moeoElitistReplacement< MOEOT >::Cmp

+

|o*moeoEnvironmentalReplacement< MOEOT >::Cmp

+

|o*moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >

+

|o+moeoObjectiveVector< ObjectiveVectorTraits, double >

+ +

|\*moeoObjectiveVectorTraits

+
+

o*Class Members

+

\+File List

+
+

 o*index.h

+

 o*make_checkpoint_moeo.h

+

 o*make_continue_moeo.h

+

 o*make_ea_moeo.h

+

 o*MOEO.h

+

 o*moeoAchievementFitnessAssignment.h

+

 o*moeoAdditiveEpsilonBinaryMetric.h

+

 o*moeoAggregativeComparator.h

+

 o*moeoAlgo.h

+

 o*moeoArchive.h

+

 o*moeoArchiveObjectiveVectorSavingUpdater.h

+

 o*moeoArchiveUpdater.h

+

 o*moeoBinaryIndicatorBasedFitnessAssignment.h

+

 o*moeoBinaryMetricSavingUpdater.h

+

 o*moeoBitVector.h

+

 o*moeoCombinedLS.h

+

 o*moeoComparator.h

+

 o*moeoContributionMetric.h

+

 o*moeoConvertPopToObjectiveVectors.h

+

 o*moeoCriterionBasedFitnessAssignment.h

+

 o*moeoCrowdingDiversityAssignment.h

+

 o*moeoDetTournamentSelect.h

+

 o*moeoDistance.h

+

 o*moeoDistanceMatrix.h

+

 o*moeoDiversityAssignment.h

+

 o*moeoDiversityThenFitnessComparator.h

+

 o*moeoDummyDiversityAssignment.h

+

 o*moeoDummyFitnessAssignment.h

+

 o*moeoEA.h

+

 o*moeoEasyEA.h

+

 o*moeoElitistReplacement.h

+

 o*moeoEntropyMetric.h

+

 o*moeoEnvironmentalReplacement.h

+

 o*moeoEuclideanDistance.h

+

 o*moeoEvalFunc.h

+

 o*moeoExpBinaryIndicatorBasedFitnessAssignment.h

+

 o*moeoFastNonDominatedSortingFitnessAssignment.h

+

 o*moeoFitnessAssignment.h

+

 o*moeoFitnessThenDiversityComparator.h

+

 o*moeoFrontByFrontCrowdingDiversityAssignment.h

+

 o*moeoFrontByFrontSharingDiversityAssignment.h

+

 o*moeoGDominanceObjectiveVectorComparator.h

+

 o*moeoGenerationalReplacement.h

+

 o*moeoHybridLS.h

+

 o*moeoHypervolumeBinaryMetric.h

+

 o*moeoIBEA.h

+

 o*moeoIndicatorBasedFitnessAssignment.h

+

 o*moeoLS.h

+

 o*moeoManhattanDistance.h

+

 o*moeoMetric.h

+

 o*moeoNormalizedDistance.h

+

 o*moeoNormalizedSolutionVsSolutionBinaryMetric.h

+

 o*moeoNSGA.h

+

 o*moeoNSGAII.h

+

 o*moeoObjectiveObjectiveVectorComparator.h

+

 o*moeoObjectiveVector.h

+

 o*moeoObjectiveVectorComparator.h

+

 o*moeoObjectiveVectorTraits.cpp

+

 o*moeoObjectiveVectorTraits.h

+

 o*moeoOneObjectiveComparator.h

+

 o*moeoParetoBasedFitnessAssignment.h

+

 o*moeoParetoObjectiveVectorComparator.h

+

 o*moeoRandomSelect.h

+

 o*moeoRealObjectiveVector.h

+

 o*moeoRealVector.h

+

 o*moeoReplacement.h

+

 o*moeoRouletteSelect.h

+

 o*moeoScalarFitnessAssignment.h

+

 o*moeoSelectFromPopAndArch.h

+

 o*moeoSelectOne.h

+

 o*moeoSelectors.h

+

 o*moeoSharingDiversityAssignment.h

+

 o*moeoStochTournamentSelect.h

+

 o*moeoUnaryIndicatorBasedFitnessAssignment.h

+

 \*moeoVector.h

+
+
+
+ + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/index.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/index.h new file mode 100644 index 000000000..72ba706bb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/index.h @@ -0,0 +1,44 @@ +/** @mainpage Welcome to ParadisEO-MOEO + +@section intro Introduction + +ParadisEO-MOEO is a white-box object-oriented generic framework dedicated to the flexible design of evolutionary multi-objective algorithms. +This paradigm-free software embeds some features and techniques for Pareto-based resolution and +aims to provide a set of classes allowing to ease and speed up the development of computationally efficient programs. +It is based on a clear conceptual distinction between the solution methods and the multi-objective problems they are intended to solve. +This separation confers a maximum design and code reuse. +ParadisEO-MOEO provides a broad range of archive-related features (such as elitism or performance metrics) +and the most common Pareto-based fitness assignment strategies (MOGA, NSGA, SPEA, IBEA and more). +Furthermore, parallel and distributed models as well as hybridization mechanisms can be applied to an algorithm designed within ParadisEO-MOEO +using the whole version of ParadisEO. + + + +@section tutorials Tutorials + +Tutorials for ParadisEO-MOEO are available here. + + + +@section install Installation + +The installation procedure of the package is detailed in the README file in the top-directory of the source-tree. + + + +@section design Overall Design + +For an introduction to the design of ParadisEO-MOEO, +you can look at the ParadisEO website. +*/ + + + +/** @page webpages Related webpages + +- ParadisEO homepage +- INRIA GForge project page +- README +- NEWS +*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/FreeSans.ttf b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/Makefile b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/Makefile new file mode 100644 index 000000000..776fcf968 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/Makefile @@ -0,0 +1,39 @@ +all: clean refman.dvi + +ps: refman.ps + +pdf: refman.pdf + +ps_2on1: refman_2on1.ps + +pdf_2on1: refman_2on1.pdf + +refman.ps: refman.dvi + dvips -o refman.ps refman.dvi + +refman.pdf: refman.ps + ps2pdf refman.ps refman.pdf + +refman.dvi: refman.tex doxygen.sty + echo "Running latex..." + latex refman.tex + echo "Running makeindex..." + makeindex refman.idx + echo "Rerunning latex...." + latex refman.tex + latex_count=5 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + latex refman.tex ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + +refman_2on1.ps: refman.ps + psnup -2 refman.ps >refman_2on1.ps + +refman_2on1.pdf: refman_2on1.ps + ps2pdf refman_2on1.ps refman_2on1.pdf + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/annotated.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/annotated.tex new file mode 100644 index 000000000..72ddd57a4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/annotated.tex @@ -0,0 +1,84 @@ +\section{Paradis\-EO-MOEO Class List} +Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList} +\item\contentsline{section}{\bf{MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} (Base class allowing to represent a solution (an individual) for multi-objective optimization )}{\pageref{classMOEO}}{} +\item\contentsline{section}{\bf{moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$} (Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980) )}{\pageref{classmoeoAchievementFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$} (Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C )}{\pageref{classmoeoAdditiveEpsilonBinaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Aggregative\-Comparator$<$ MOEOT $>$} (Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value )}{\pageref{classmoeoAggregativeComparator}}{} +\item\contentsline{section}{\bf{moeo\-Algo} (Abstract class for multi-objective algorithms )}{\pageref{classmoeoAlgo}}{} +\item\contentsline{section}{\bf{moeo\-Archive$<$ MOEOT $>$} (An archive is a secondary population that stores non-dominated solutions )}{\pageref{classmoeoArchive}}{} +\item\contentsline{section}{\bf{moeo\-Archive\-Objective\-Vector\-Saving\-Updater$<$ MOEOT $>$} (This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation )}{\pageref{classmoeoArchiveObjectiveVectorSavingUpdater}}{} +\item\contentsline{section}{\bf{moeo\-Archive\-Updater$<$ MOEOT $>$} (This class allows to update the archive at each generation with newly found non-dominated solutions )}{\pageref{classmoeoArchiveUpdater}}{} +\item\contentsline{section}{\bf{moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Indicator\-Based\-Fitness\-Assignment for binary indicators )}{\pageref{classmoeoBinaryIndicatorBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Binary\-Metric$<$ A1, A2, R $>$} (Base class for binary metrics )}{\pageref{classmoeoBinaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Binary\-Metric\-Saving\-Updater$<$ MOEOT $>$} (This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file )}{\pageref{classmoeoBinaryMetricSavingUpdater}}{} +\item\contentsline{section}{\bf{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} (This class is an implementationeo of a simple bit-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector} )}{\pageref{classmoeoBitVector}}{} +\item\contentsline{section}{\bf{moeo\-Combined\-LS$<$ MOEOT, Type $>$} (This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions )}{\pageref{classmoeoCombinedLS}}{} +\item\contentsline{section}{\bf{moeo\-Comparator$<$ MOEOT $>$} (Functor allowing to compare two solutions )}{\pageref{classmoeoComparator}}{} +\item\contentsline{section}{\bf{moeo\-Contribution\-Metric$<$ Objective\-Vector $>$} (The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc )}{\pageref{classmoeoContributionMetric}}{} +\item\contentsline{section}{\bf{moeo\-Convert\-Pop\-To\-Objective\-Vectors$<$ MOEOT, Objective\-Vector $>$} (Functor allowing to get a vector of objective vectors from a population )}{\pageref{classmoeoConvertPopToObjectiveVectors}}{} +\item\contentsline{section}{\bf{moeo\-Criterion\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Criterion\-Based\-Fitness\-Assignment is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for criterion-based strategies )}{\pageref{classmoeoCriterionBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} (Diversity assignment sheme based on crowding proposed in: K )}{\pageref{classmoeoCrowdingDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Det\-Tournament\-Select$<$ MOEOT $>$} (Selection strategy that selects ONE individual by deterministic tournament )}{\pageref{classmoeoDetTournamentSelect}}{} +\item\contentsline{section}{\bf{moeo\-Distance$<$ MOEOT, Type $>$} (The base class for distance computation )}{\pageref{classmoeoDistance}}{} +\item\contentsline{section}{\bf{moeo\-Distance\-Matrix$<$ MOEOT, Type $>$} (A matrix to compute distances between every pair of individuals contained in a population )}{\pageref{classmoeoDistanceMatrix}}{} +\item\contentsline{section}{\bf{moeo\-Diversity\-Assignment$<$ MOEOT $>$} (Functor that sets the diversity values of a whole population )}{\pageref{classmoeoDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Diversity\-Then\-Fitness\-Comparator$<$ MOEOT $>$} (Functor allowing to compare two solutions according to their diversity values, then according to their fitness values )}{\pageref{classmoeoDiversityThenFitnessComparator}}{} +\item\contentsline{section}{\bf{moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$} (Moeo\-Dummy\-Diversity\-Assignment is a \doxyref{moeo\-Diversity\-Assignment}{p.}{classmoeoDiversityAssignment} that gives the value '0' as the individual's diversity for a whole population if it is invalid )}{\pageref{classmoeoDummyDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Dummy\-Fitness\-Assignment is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} that gives the value '0' as the individual's fitness for a whole population if it is invalid )}{\pageref{classmoeoDummyFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-EA$<$ MOEOT $>$} (Abstract class for multi-objective evolutionary algorithms )}{\pageref{classmoeoEA}}{} +\item\contentsline{section}{\bf{moeo\-Easy\-EA$<$ MOEOT $>$} (An easy class to design multi-objective evolutionary algorithms )}{\pageref{classmoeoEasyEA}}{} +\item\contentsline{section}{\bf{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Eval} (\doxyref{Dummy} eval )}{\pageref{classmoeoEasyEA_1_1eoDummyEval}}{} +\item\contentsline{section}{\bf{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Select} (\doxyref{Dummy} select )}{\pageref{classmoeoEasyEA_1_1eoDummySelect}}{} +\item\contentsline{section}{\bf{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Transform} (\doxyref{Dummy} transform )}{\pageref{classmoeoEasyEA_1_1eoDummyTransform}}{} +\item\contentsline{section}{\bf{moeo\-Elitist\-Replacement$<$ MOEOT $>$} (Elitist replacement strategy that consists in keeping the N best individuals )}{\pageref{classmoeoElitistReplacement}}{} +\item\contentsline{section}{\bf{moeo\-Elitist\-Replacement$<$ MOEOT $>$::Cmp} (This object is used to compare solutions in order to sort the population )}{\pageref{classmoeoElitistReplacement_1_1Cmp}}{} +\item\contentsline{section}{\bf{moeo\-Entropy\-Metric$<$ Objective\-Vector $>$} (The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc )}{\pageref{classmoeoEntropyMetric}}{} +\item\contentsline{section}{\bf{moeo\-Environmental\-Replacement$<$ MOEOT $>$} (Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion )}{\pageref{classmoeoEnvironmentalReplacement}}{} +\item\contentsline{section}{\bf{moeo\-Environmental\-Replacement$<$ MOEOT $>$::Cmp} (This object is used to compare solutions in order to sort the population )}{\pageref{classmoeoEnvironmentalReplacement_1_1Cmp}}{} +\item\contentsline{section}{\bf{moeo\-Euclidean\-Distance$<$ MOEOT $>$} (A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e )}{\pageref{classmoeoEuclideanDistance}}{} +\item\contentsline{section}{\bf{moeo\-Eval\-Func$<$ MOEOT $>$} }{\pageref{classmoeoEvalFunc}}{} +\item\contentsline{section}{\bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Fitness assignment sheme based on an indicator proposed in: E )}{\pageref{classmoeoExpBinaryIndicatorBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$} (Fitness assignment sheme based on Pareto-dominance count proposed in: N )}{\pageref{classmoeoFastNonDominatedSortingFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator} (Functor allowing to compare two solutions according to their first objective value, then their second, and so on )}{\pageref{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator}}{} +\item\contentsline{section}{\bf{moeo\-Fitness\-Assignment$<$ MOEOT $>$} (Functor that sets the fitness values of a whole population )}{\pageref{classmoeoFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Fitness\-Then\-Diversity\-Comparator$<$ MOEOT $>$} (Functor allowing to compare two solutions according to their fitness values, then according to their diversity values )}{\pageref{classmoeoFitnessThenDiversityComparator}}{} +\item\contentsline{section}{\bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} (Diversity assignment sheme based on crowding proposed in: K )}{\pageref{classmoeoFrontByFrontCrowdingDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} (Sharing assignment scheme on the way it is used in NSGA )}{\pageref{classmoeoFrontByFrontSharingDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} (This functor class allows to compare 2 objective vectors according to g-dominance )}{\pageref{classmoeoGDominanceObjectiveVectorComparator}}{} +\item\contentsline{section}{\bf{moeo\-Generational\-Replacement$<$ MOEOT $>$} (Generational replacement: only the new individuals are preserved )}{\pageref{classmoeoGenerationalReplacement}}{} +\item\contentsline{section}{\bf{moeo\-Hybrid\-LS$<$ MOEOT $>$} (This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified )}{\pageref{classmoeoHybridLS}}{} +\item\contentsline{section}{\bf{moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$} (Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., K\~{A}¼nzli S )}{\pageref{classmoeoHypervolumeBinaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-IBEA$<$ MOEOT $>$} (IBEA (Indicator-Based Evolutionary Algorithm) as described in: E )}{\pageref{classmoeoIBEA}}{} +\item\contentsline{section}{\bf{moeo\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Indicator\-Based\-Fitness\-Assignment is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Indicator-based strategies )}{\pageref{classmoeoIndicatorBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-LS$<$ MOEOT, Type $>$} (Abstract class for local searches applied to multi-objective optimization )}{\pageref{classmoeoLS}}{} +\item\contentsline{section}{\bf{moeo\-Manhattan\-Distance$<$ MOEOT $>$} (A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e )}{\pageref{classmoeoManhattanDistance}}{} +\item\contentsline{section}{\bf{moeo\-Metric} (Base class for performance metrics (also known as quality indicators) )}{\pageref{classmoeoMetric}}{} +\item\contentsline{section}{\bf{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$} (The base class for double distance computation with normalized objective values (i.e )}{\pageref{classmoeoNormalizedDistance}}{} +\item\contentsline{section}{\bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$} (Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values )}{\pageref{classmoeoNormalizedSolutionVsSolutionBinaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-NSGA$<$ MOEOT $>$} (NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N )}{\pageref{classmoeoNSGA}}{} +\item\contentsline{section}{\bf{moeo\-NSGAII$<$ MOEOT $>$} (NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S )}{\pageref{classmoeoNSGAII}}{} +\item\contentsline{section}{\bf{moeo\-Objective\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} (Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on )}{\pageref{classmoeoObjectiveObjectiveVectorComparator}}{} +\item\contentsline{section}{\bf{moeo\-Objective\-Vector$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$} (Abstract class allowing to represent a solution in the objective space (phenotypic representation) )}{\pageref{classmoeoObjectiveVector}}{} +\item\contentsline{section}{\bf{moeo\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} (Abstract class allowing to compare 2 objective vectors )}{\pageref{classmoeoObjectiveVectorComparator}}{} +\item\contentsline{section}{\bf{moeo\-Objective\-Vector\-Traits} (A traits class for \doxyref{moeo\-Objective\-Vector}{p.}{classmoeoObjectiveVector} to specify the number of objectives and which ones have to be minimized or maximized )}{\pageref{classmoeoObjectiveVectorTraits}}{} +\item\contentsline{section}{\bf{moeo\-One\-Objective\-Comparator$<$ MOEOT $>$} (Functor allowing to compare two solutions according to one objective )}{\pageref{classmoeoOneObjectiveComparator}}{} +\item\contentsline{section}{\bf{moeo\-Pareto\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Pareto\-Based\-Fitness\-Assignment is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Pareto-based strategies )}{\pageref{classmoeoParetoBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Pareto\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} (This functor class allows to compare 2 objective vectors according to Pareto dominance )}{\pageref{classmoeoParetoObjectiveVectorComparator}}{} +\item\contentsline{section}{\bf{moeo\-Random\-Select$<$ MOEOT $>$} (Selection strategy that selects only one element randomly from a whole population )}{\pageref{classmoeoRandomSelect}}{} +\item\contentsline{section}{\bf{moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$} (This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e )}{\pageref{classmoeoRealObjectiveVector}}{} +\item\contentsline{section}{\bf{moeo\-Real\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} (This class is an implementation of a simple double-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector} )}{\pageref{classmoeoRealVector}}{} +\item\contentsline{section}{\bf{moeo\-Replacement$<$ MOEOT $>$} (Replacement strategy for multi-objective optimization )}{\pageref{classmoeoReplacement}}{} +\item\contentsline{section}{\bf{moeo\-Roulette\-Select$<$ MOEOT $>$} (Selection strategy that selects ONE individual by using roulette wheel process )}{\pageref{classmoeoRouletteSelect}}{} +\item\contentsline{section}{\bf{moeo\-Scalar\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Scalar\-Fitness\-Assignment is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for scalar strategies )}{\pageref{classmoeoScalarFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Select\-From\-Pop\-And\-Arch$<$ MOEOT $>$} (Elitist selection process that consists in choosing individuals in the archive as well as in the current population )}{\pageref{classmoeoSelectFromPopAndArch}}{} +\item\contentsline{section}{\bf{moeo\-Select\-One$<$ MOEOT $>$} (Selection strategy for multi-objective optimization that selects only one element from a whole population )}{\pageref{classmoeoSelectOne}}{} +\item\contentsline{section}{\bf{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} (Sharing assignment scheme originally porposed by: D )}{\pageref{classmoeoSharingDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Solution\-Unary\-Metric$<$ Objective\-Vector, R $>$} (Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector )}{\pageref{classmoeoSolutionUnaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$} (Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors )}{\pageref{classmoeoSolutionVsSolutionBinaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$} (Selection strategy that selects ONE individual by stochastic tournament )}{\pageref{classmoeoStochTournamentSelect}}{} +\item\contentsline{section}{\bf{moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Indicator\-Based\-Fitness\-Assignment for unary indicators )}{\pageref{classmoeoUnaryIndicatorBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Unary\-Metric$<$ A, R $>$} (Base class for unary metrics )}{\pageref{classmoeoUnaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$} (Base class for fixed length chromosomes, just derives from \doxyref{MOEO}{p.}{classMOEO} and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison) )}{\pageref{classmoeoVector}}{} +\item\contentsline{section}{\bf{moeo\-Vector\-Unary\-Metric$<$ Objective\-Vector, R $>$} (Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors) )}{\pageref{classmoeoVectorUnaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, R $>$} (Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors) )}{\pageref{classmoeoVectorVsVectorBinaryMetric}}{} +\end{CompactList} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classMOEO.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classMOEO.eps new file mode 100644 index 000000000..a23d66bea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classMOEO.eps @@ -0,0 +1,243 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 80.6452 +%%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 6.2 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 3 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(EO< MOEOObjectiveVector >) cw +(eoObject) cw +(eoPersistent) cw +(eoPrintable) cw +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >) cw +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >) cw +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >) cw +(moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 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 ----- + + (MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 1 2 box + (EO< MOEOObjectiveVector >) 1 3 box + (eoObject) 0.5 4 box + (eoPersistent) 1.5 4 box + (eoPrintable) 1.5 5 box + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >) 0 1 box + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >) 1 1 box + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >) 2 1 box + (moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 1 0 box + (moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 2 0 box + +% ----- relations ----- + +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +0.5 1.5 4 conn +solid +1 0.5 4 in +solid +1 1.5 4 in +solid +0 1.5 4 out +solid +1 1.5 5 in +solid +1 1 1.25 out +solid +0 2 2 conn +solid +0 0 1.75 in +solid +0 1 1.75 in +solid +1 1 0.25 out +solid +0 2 1.75 in +solid +1 2 0.25 out +solid +0 1 0.75 in +solid +0 2 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classMOEO.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classMOEO.tex new file mode 100644 index 000000000..06e3ed232 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classMOEO.tex @@ -0,0 +1,226 @@ +\section{MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$ Class Template Reference} +\label{classMOEO}\index{MOEO@{MOEO}} +Base class allowing to represent a solution (an individual) for multi-objective optimization. + + +{\tt \#include $<$MOEO.h$>$} + +Inheritance diagram for MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.25806cm]{classMOEO} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOObjective\-Vector \bf{Objective\-Vector}\label{classMOEO_9fafca99234ef3cd9fdbaf05bde5a275} + +\begin{CompactList}\small\item\em the objective vector type of a solution \item\end{CompactList}\item +typedef MOEOFitness \bf{Fitness}\label{classMOEO_03184b6c0b5c905e0ff5a790a3d55803} + +\begin{CompactList}\small\item\em the fitness type of a solution \item\end{CompactList}\item +typedef MOEODiversity \bf{Diversity}\label{classMOEO_9682a883fedc6333e95906e02236d492} + +\begin{CompactList}\small\item\em the diversity type of a solution \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{MOEO} ()\label{classMOEO_cff537a68ecc80c753318d3e12f842f5} + +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +virtual \bf{$\sim$MOEO} ()\label{classMOEO_0215e9acab4ab57088175f9856e6c48c} + +\begin{CompactList}\small\item\em Virtual dtor. \item\end{CompactList}\item +\bf{Objective\-Vector} \bf{objective\-Vector} () const \label{classMOEO_7509143b0f18644e7d3183a039cece7b} + +\begin{CompactList}\small\item\em Returns the objective vector of the current solution. \item\end{CompactList}\item +void \bf{objective\-Vector} (const \bf{Objective\-Vector} \&\_\-objective\-Vector\-Value) +\begin{CompactList}\small\item\em Sets the objective vector of the current solution. \item\end{CompactList}\item +void \bf{invalidate\-Objective\-Vector} ()\label{classMOEO_6b75e7e84726cf4e2d50216a35cec70b} + +\begin{CompactList}\small\item\em Sets the objective vector as invalid. \item\end{CompactList}\item +bool \bf{invalid\-Objective\-Vector} () const \label{classMOEO_c8e93beabdab8c2f79f17c7e39efdd05} + +\begin{CompactList}\small\item\em Returns true if the objective vector is invalid, false otherwise. \item\end{CompactList}\item +\bf{Fitness} \bf{fitness} () const \label{classMOEO_c02c16902f914a6fde83a33d2c8b1534} + +\begin{CompactList}\small\item\em Returns the fitness value of the current solution. \item\end{CompactList}\item +void \bf{fitness} (const \bf{Fitness} \&\_\-fitness\-Value) +\begin{CompactList}\small\item\em Sets the fitness value of the current solution. \item\end{CompactList}\item +void \bf{invalidate\-Fitness} ()\label{classMOEO_55876e2e7cd537052fec1c7f46f37ffe} + +\begin{CompactList}\small\item\em Sets the fitness value as invalid. \item\end{CompactList}\item +bool \bf{invalid\-Fitness} () const \label{classMOEO_9423f9daebb1f7be6d52c80692e4af48} + +\begin{CompactList}\small\item\em Returns true if the fitness value is invalid, false otherwise. \item\end{CompactList}\item +\bf{Diversity} \bf{diversity} () const \label{classMOEO_c610f4636e8c26a351fcfbc25028aa01} + +\begin{CompactList}\small\item\em Returns the diversity value of the current solution. \item\end{CompactList}\item +void \bf{diversity} (const \bf{Diversity} \&\_\-diversity\-Value) +\begin{CompactList}\small\item\em Sets the diversity value of the current solution. \item\end{CompactList}\item +void \bf{invalidate\-Diversity} ()\label{classMOEO_1283a27baab9728673445832e6d4301a} + +\begin{CompactList}\small\item\em Sets the diversity value as invalid. \item\end{CompactList}\item +bool \bf{invalid\-Diversity} () const \label{classMOEO_c4941e8e600fd360fdf1b061ee938e34} + +\begin{CompactList}\small\item\em Returns true if the diversity value is invalid, false otherwise. \item\end{CompactList}\item +void \bf{invalidate} ()\label{classMOEO_1069501a40e07071d78c067c46b696ee} + +\begin{CompactList}\small\item\em Sets the objective vector, the fitness value and the diversity value as invalid. \item\end{CompactList}\item +bool \bf{invalid} () const \label{classMOEO_314df446d1a9211121cedb2629da8906} + +\begin{CompactList}\small\item\em Returns true if the fitness value is invalid, false otherwise. \item\end{CompactList}\item +bool \bf{operator$<$} (const \bf{MOEO} \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the objective vector of the current solution is smaller than the objective vector of \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \item\end{CompactList}\item +virtual std::string \bf{class\-Name} () const \label{classMOEO_ca43305b2f4d1b1933f7e1c579404379} + +\begin{CompactList}\small\item\em Return the class id (the class name as a std::string). \item\end{CompactList}\item +virtual void \bf{print\-On} (std::ostream \&\_\-os) const +\begin{CompactList}\small\item\em Writing object. \item\end{CompactList}\item +virtual void \bf{read\-From} (std::istream \&\_\-is) +\begin{CompactList}\small\item\em Reading object. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{Objective\-Vector} \bf{objective\-Vector\-Value}\label{classMOEO_26b6fd1187b825b655d5a34b1d0693c9} + +\begin{CompactList}\small\item\em the objective vector of this solution \item\end{CompactList}\item +bool \bf{invalid\-Objective\-Vector\-Value}\label{classMOEO_d07613f286ef484f164c51c9c1b2dc91} + +\begin{CompactList}\small\item\em true if the objective vector is invalid \item\end{CompactList}\item +\bf{Fitness} \bf{fitness\-Value}\label{classMOEO_bcc3104ab7311fa5987de80811393c7c} + +\begin{CompactList}\small\item\em the fitness value of this solution \item\end{CompactList}\item +bool \bf{invalid\-Fitness\-Value}\label{classMOEO_17f57546c6de38604d6749cc6ef9d254} + +\begin{CompactList}\small\item\em true if the fitness value is invalid \item\end{CompactList}\item +\bf{Diversity} \bf{diversity\-Value}\label{classMOEO_83cc0d3a4020cbd7e1ff895dfedc61eb} + +\begin{CompactList}\small\item\em the diversity value of this solution \item\end{CompactList}\item +bool \bf{invalid\-Diversity\-Value}\label{classMOEO_c53c08b7c51d4cc06efe58c6127f9b7d} + +\begin{CompactList}\small\item\em true if the diversity value is invalid \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ class MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} + +Base class allowing to represent a solution (an individual) for multi-objective optimization. + +The template argument MOEOObjective\-Vector allows to represent the solution in the objective space (it can be a \doxyref{moeo\-Objective\-Vector}{p.}{classmoeoObjectiveVector} object). The template argument MOEOFitness is an object reflecting the quality of the solution in term of convergence (the fitness of a solution is always to be maximized). The template argument MOEODiversity is an object reflecting the quality of the solution in term of diversity (the diversity of a solution is always to be maximized). All template arguments must have a void and a copy constructor. Using some specific representations, you will have to define a copy constructor if the default one is not what you want. In the same cases, you will also have to define the affectation operator (operator=). Then, you will explicitly have to call the parent copy constructor and the parent affectation operator at the beginning of the corresponding implementation. Besides, note that, contrary to the mono-objective case (and to \doxyref{EO}) where the fitness value of a solution is confused with its objective value, the fitness value differs of the objectives values in the multi-objective case. + + + +Definition at line 34 of file MOEO.h. + +\subsection{Member Function Documentation} +\index{MOEO@{MOEO}!objectiveVector@{objectiveVector}} +\index{objectiveVector@{objectiveVector}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ void \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector (const \bf{Objective\-Vector} \& {\em \_\-objective\-Vector\-Value})\hspace{0.3cm}{\tt [inline]}}\label{classMOEO_d4a765a76f9acc1bca36297ab55d7282} + + +Sets the objective vector of the current solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector\-Value}]the new objective vector \end{description} +\end{Desc} + + +Definition at line 85 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Objective\-Vector\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector\-Value.\index{MOEO@{MOEO}!fitness@{fitness}} +\index{fitness@{fitness}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ void \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::fitness (const \bf{Fitness} \& {\em \_\-fitness\-Value})\hspace{0.3cm}{\tt [inline]}}\label{classMOEO_4dc05ded73bb60d1a51e282006c8942d} + + +Sets the fitness value of the current solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Value}]the new fitness value \end{description} +\end{Desc} + + +Definition at line 127 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::fitness\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Fitness\-Value.\index{MOEO@{MOEO}!diversity@{diversity}} +\index{diversity@{diversity}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ void \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::diversity (const \bf{Diversity} \& {\em \_\-diversity\-Value})\hspace{0.3cm}{\tt [inline]}}\label{classMOEO_1f0a391984cd14bcf930d1d81dd4848e} + + +Sets the diversity value of the current solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-diversity\-Value}]the new diversity value \end{description} +\end{Desc} + + +Definition at line 169 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::diversity\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Diversity\-Value.\index{MOEO@{MOEO}!operator<@{operator$<$}} +\index{operator<@{operator$<$}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ bool \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::operator$<$ (const \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classMOEO_119ef916de4955298febaf3e1c8ad705} + + +Returns true if the objective vector of the current solution is smaller than the objective vector of \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). + +You should implement another function in the sub-class of \doxyref{MOEO}{p.}{classMOEO} to have another sorting mecanism. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{MOEO}{p.}{classMOEO} object to compare with \end{description} +\end{Desc} + + +Definition at line 220 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector().\index{MOEO@{MOEO}!printOn@{printOn}} +\index{printOn@{printOn}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ virtual void \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::print\-On (std::ostream \& {\em \_\-os}) const\hspace{0.3cm}{\tt [inline, virtual]}}\label{classMOEO_a3b6074b3289585bf4dc6998e8397e24} + + +Writing object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-os}]output stream \end{description} +\end{Desc} + + +Reimplemented from \bf{EO$<$ MOEOObjective\-Vector $>$}. + +Reimplemented in \bf{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classmoeoBitVector_78f821c548cf46d8bcd30aa8a52ffb7c}, \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$} \doxyref{p.}{classmoeoVector_d0a92cb26483ffab754ac4a0efb76308}, \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$} \doxyref{p.}{classmoeoVector_d0a92cb26483ffab754ac4a0efb76308}, and \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, double $>$} \doxyref{p.}{classmoeoVector_d0a92cb26483ffab754ac4a0efb76308}. + +Definition at line 239 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Objective\-Vector(), and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector\-Value.\index{MOEO@{MOEO}!readFrom@{readFrom}} +\index{readFrom@{readFrom}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ virtual void \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::read\-From (std::istream \& {\em \_\-is})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classMOEO_1bbd9cb1a7709592bf4bc29dff8c5273} + + +Reading object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-is}]input stream \end{description} +\end{Desc} + + +Reimplemented from \bf{EO$<$ MOEOObjective\-Vector $>$}. + +Reimplemented in \bf{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classmoeoBitVector_31cd3f894615d0a27dd116a5c8082521}, \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$} \doxyref{p.}{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9}, \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$} \doxyref{p.}{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9}, and \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, double $>$} \doxyref{p.}{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9}. + +Definition at line 256 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalidate\-Objective\-Vector(), MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Objective\-Vector\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector\-Value. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +MOEO.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.eps new file mode 100644 index 000000000..d447c1718 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.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 336.7 +%%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.485 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoAchievementFitnessAssignment< MOEOT >) cw +(moeoScalarFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoAchievementFitnessAssignment< MOEOT >) 0 0 box + (moeoScalarFitnessAssignment< MOEOT >) 0 1 box + (moeoFitnessAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.tex new file mode 100644 index 000000000..71218a65c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.tex @@ -0,0 +1,172 @@ +\section{moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoAchievementFitnessAssignment}\index{moeoAchievementFitnessAssignment@{moeoAchievementFitnessAssignment}} +Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). + + +{\tt \#include $<$moeo\-Achievement\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoAchievementFitnessAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoAchievementFitnessAssignment_1a58a88ff0175cf303eb63d8b4f52a26} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Achievement\-Fitness\-Assignment} (\bf{Objective\-Vector} \&\_\-reference, std::vector$<$ double $>$ \&\_\-lambdas, double \_\-spn=0.0001) +\begin{CompactList}\small\item\em Default ctor. \item\end{CompactList}\item +\bf{moeo\-Achievement\-Fitness\-Assignment} (\bf{Objective\-Vector} \&\_\-reference, double \_\-spn=0.0001) +\begin{CompactList}\small\item\em Ctor with default values for lambdas (1/n\-Objectives). \item\end{CompactList}\item +virtual void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for every solution contained in the population \_\-pop. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account (nothing to do). \item\end{CompactList}\item +void \bf{set\-Reference} (const \bf{Objective\-Vector} \&\_\-reference) +\begin{CompactList}\small\item\em Sets the reference point. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +double \bf{inf} () const \label{classmoeoAchievementFitnessAssignment_cdc77cfe1180bc792b9de82755828896} + +\begin{CompactList}\small\item\em Returns a big value (regarded as infinite). \item\end{CompactList}\item +void \bf{compute} (MOEOT \&\_\-moeo) +\begin{CompactList}\small\item\em Computes the fitness value for a solution. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{Objective\-Vector} \bf{reference}\label{classmoeoAchievementFitnessAssignment_3f01cc20823b53f440dd1ab5a82c3564} + +\begin{CompactList}\small\item\em the reference point \item\end{CompactList}\item +std::vector$<$ double $>$ \bf{lambdas}\label{classmoeoAchievementFitnessAssignment_2992fb7c43286bef9cd6dc7628fa083a} + +\begin{CompactList}\small\item\em the weighted coefficients vector \item\end{CompactList}\item +double \bf{spn}\label{classmoeoAchievementFitnessAssignment_bf99cd0c85e298bdd1281ef2fb06e7b0} + +\begin{CompactList}\small\item\em an arbitrary small positive number (0 $<$ \_\-spn $<$$<$ 1) \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$} + +Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). + + + +Definition at line 24 of file moeo\-Achievement\-Fitness\-Assignment.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!moeoAchievementFitnessAssignment@{moeoAchievementFitnessAssignment}} +\index{moeoAchievementFitnessAssignment@{moeoAchievementFitnessAssignment}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Achievement\-Fitness\-Assignment} (\bf{Objective\-Vector} \& {\em \_\-reference}, std::vector$<$ double $>$ \& {\em \_\-lambdas}, double {\em \_\-spn} = {\tt 0.0001})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAchievementFitnessAssignment_52ae7d8112e66813232172a26d03cbb8} + + +Default ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-reference}]reference point vector \item[{\em \_\-lambdas}]weighted coefficients vector \item[{\em \_\-spn}]arbitrary small positive number (0 $<$ \_\-spn $<$$<$ 1) \end{description} +\end{Desc} + + +Definition at line 38 of file moeo\-Achievement\-Fitness\-Assignment.h. + +References moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::spn.\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!moeoAchievementFitnessAssignment@{moeoAchievementFitnessAssignment}} +\index{moeoAchievementFitnessAssignment@{moeoAchievementFitnessAssignment}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Achievement\-Fitness\-Assignment} (\bf{Objective\-Vector} \& {\em \_\-reference}, double {\em \_\-spn} = {\tt 0.0001})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAchievementFitnessAssignment_75d9668a256381ef764352d705dcf47a} + + +Ctor with default values for lambdas (1/n\-Objectives). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-reference}]reference point vector \item[{\em \_\-spn}]arbitrary small positive number (0 $<$ \_\-spn $<$$<$ 1) \end{description} +\end{Desc} + + +Definition at line 54 of file moeo\-Achievement\-Fitness\-Assignment.h. + +References moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::lambdas, and moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::spn. + +\subsection{Member Function Documentation} +\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoAchievementFitnessAssignment_d5863db9571d7f23a16ca184adf562a3} + + +Sets the fitness values for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 75 of file moeo\-Achievement\-Fitness\-Assignment.h. + +References moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::compute().\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoAchievementFitnessAssignment_a6a2ae6c263dbcea3c16cde4c8a1e5fc} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account (nothing to do). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implements \bf{moeo\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFitnessAssignment_4922629569eddc9be049b3ead1ab0269}. + +Definition at line 89 of file moeo\-Achievement\-Fitness\-Assignment.h.\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!setReference@{setReference}} +\index{setReference@{setReference}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::set\-Reference (const \bf{Objective\-Vector} \& {\em \_\-reference})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAchievementFitnessAssignment_d200530e3fbdf847dca970ac2265d83d} + + +Sets the reference point. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-reference}]the new reference point \end{description} +\end{Desc} + + +Definition at line 99 of file moeo\-Achievement\-Fitness\-Assignment.h. + +References moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::reference.\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!compute@{compute}} +\index{compute@{compute}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::compute (MOEOT \& {\em \_\-moeo})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoAchievementFitnessAssignment_7c027540ed0d7f61559f636b6b8a4b29} + + +Computes the fitness value for a solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo}]the solution \end{description} +\end{Desc} + + +Definition at line 128 of file moeo\-Achievement\-Fitness\-Assignment.h. + +References moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::inf(), moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::lambdas, moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::reference, and moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::spn. + +Referenced by moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Achievement\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.eps new file mode 100644 index 000000000..cc5b0870f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.eps @@ -0,0 +1,233 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.159 +%%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.78333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 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 +(moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >) cw +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >) 0.5 0 box + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 0.5 1 box + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 0.5 2 box + (moeoBinaryMetric< A1, A2, R >) 0.5 3 box + (eoBF< A1, A2, R >) 0 4 box + (moeoMetric) 1 4 box + (eoFunctorBase) 0 5 box + (eoFunctorBase) 1 5 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +0 1 4 conn +solid +1 0 4 in +solid +0 0 4 out +solid +1 1 4 in +solid +0 1 4 out +solid +1 0 5 in +solid +1 1 5 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.tex new file mode 100644 index 000000000..7f652f420 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.tex @@ -0,0 +1,78 @@ +\section{moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoAdditiveEpsilonBinaryMetric}\index{moeoAdditiveEpsilonBinaryMetric@{moeoAdditiveEpsilonBinaryMetric}} +Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. + + +{\tt \#include $<$moeo\-Additive\-Epsilon\-Binary\-Metric.h$>$} + +Inheritance diagram for moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.70044cm]{classmoeoAdditiveEpsilonBinaryMetric} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +double \bf{operator()} (const Objective\-Vector \&\_\-o1, const Objective\-Vector \&\_\-o2) +\begin{CompactList}\small\item\em Returns the minimal distance by which the objective vector \_\-o1 must be translated in all objectives so that it weakly dominates the objective vector \_\-o2. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +double \bf{epsilon} (const Objective\-Vector \&\_\-o1, const Objective\-Vector \&\_\-o2, const unsigned int \_\-obj) +\begin{CompactList}\small\item\em Returns the epsilon value by which the objective vector \_\-o1 must be translated in the objective \_\-obj so that it dominates the objective vector \_\-o2. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$} + +Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. + +M., Grunert da Fonseca V.: Performance Assessment of Multiobjective Optimizers: An Analysis and Review. IEEE Transactions on Evolutionary Computation 7(2), pp.117\^{a}€“132 (2003). + + + +Definition at line 24 of file moeo\-Additive\-Epsilon\-Binary\-Metric.h. + +\subsection{Member Function Documentation} +\index{moeoAdditiveEpsilonBinaryMetric@{moeo\-Additive\-Epsilon\-Binary\-Metric}!operator()@{operator()}} +\index{operator()@{operator()}!moeoAdditiveEpsilonBinaryMetric@{moeo\-Additive\-Epsilon\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Additive\-Epsilon\-Binary\-Metric}$<$ Objective\-Vector $>$::operator() (const Objective\-Vector \& {\em \_\-o1}, const Objective\-Vector \& {\em \_\-o2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAdditiveEpsilonBinaryMetric_545aa2c8e6dd93084276763c9d8a3709} + + +Returns the minimal distance by which the objective vector \_\-o1 must be translated in all objectives so that it weakly dominates the objective vector \_\-o2. + +\begin{Desc} +\item[Warning:]don't forget to set the bounds for every objective before the call of this function \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-o1}]the first objective vector \item[{\em \_\-o2}]the second objective vector \end{description} +\end{Desc} + + +Definition at line 35 of file moeo\-Additive\-Epsilon\-Binary\-Metric.h. + +References moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$::epsilon().\index{moeoAdditiveEpsilonBinaryMetric@{moeo\-Additive\-Epsilon\-Binary\-Metric}!epsilon@{epsilon}} +\index{epsilon@{epsilon}!moeoAdditiveEpsilonBinaryMetric@{moeo\-Additive\-Epsilon\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Additive\-Epsilon\-Binary\-Metric}$<$ Objective\-Vector $>$::epsilon (const Objective\-Vector \& {\em \_\-o1}, const Objective\-Vector \& {\em \_\-o2}, const unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoAdditiveEpsilonBinaryMetric_04253f76c832d24a3fd6bc574be54c46} + + +Returns the epsilon value by which the objective vector \_\-o1 must be translated in the objective \_\-obj so that it dominates the objective vector \_\-o2. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-o1}]the first objective vector \item[{\em \_\-o2}]the second objective vector \item[{\em \_\-obj}]the index of the objective \end{description} +\end{Desc} + + +Definition at line 64 of file moeo\-Additive\-Epsilon\-Binary\-Metric.h. + +References moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, double $>$::bounds. + +Referenced by moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Additive\-Epsilon\-Binary\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.eps new file mode 100644 index 000000000..9789f7000 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.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 313.725 +%%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.59375 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 +(moeoAggregativeComparator< MOEOT >) cw +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoAggregativeComparator< MOEOT >) 0 0 box + (moeoComparator< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.tex new file mode 100644 index 000000000..1455c58cf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.tex @@ -0,0 +1,79 @@ +\section{moeo\-Aggregative\-Comparator$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoAggregativeComparator}\index{moeoAggregativeComparator@{moeoAggregativeComparator}} +Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. + + +{\tt \#include $<$moeo\-Aggregative\-Comparator.h$>$} + +Inheritance diagram for moeo\-Aggregative\-Comparator$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoAggregativeComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Aggregative\-Comparator} (double \_\-weight\-Fitness=1.0, double \_\-weight\-Diversity=1.0) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +const bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 $<$ \_\-moeo2 according to the aggregation of their fitness and diversity values. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +double \bf{weight\-Fitness}\label{classmoeoAggregativeComparator_9ddf44b9e447bee8503c5b9cad9a7df0} + +\begin{CompactList}\small\item\em the weight for fitness \item\end{CompactList}\item +double \bf{weight\-Diversity}\label{classmoeoAggregativeComparator_d4ce25f797af0218c6c8cfca7c73b2d3} + +\begin{CompactList}\small\item\em the weight for diversity \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Aggregative\-Comparator$<$ MOEOT $>$} + +Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. + + + +Definition at line 22 of file moeo\-Aggregative\-Comparator.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoAggregativeComparator@{moeo\-Aggregative\-Comparator}!moeoAggregativeComparator@{moeoAggregativeComparator}} +\index{moeoAggregativeComparator@{moeoAggregativeComparator}!moeoAggregativeComparator@{moeo\-Aggregative\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Aggregative\-Comparator}$<$ MOEOT $>$::\bf{moeo\-Aggregative\-Comparator} (double {\em \_\-weight\-Fitness} = {\tt 1.0}, double {\em \_\-weight\-Diversity} = {\tt 1.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAggregativeComparator_76cc4d0f5f9bd4984c77410ad8142914} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-weight\-Fitness}]the weight for fitness \item[{\em \_\-weight\-Diversity}]the weight for diversity \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Aggregative\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoAggregativeComparator@{moeo\-Aggregative\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoAggregativeComparator@{moeo\-Aggregative\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const bool \bf{moeo\-Aggregative\-Comparator}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAggregativeComparator_2f6745ebc2d575e64b162fc250f04b0f} + + +Returns true if \_\-moeo1 $<$ \_\-moeo2 according to the aggregation of their fitness and diversity values. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 40 of file moeo\-Aggregative\-Comparator.h. + +References moeo\-Aggregative\-Comparator$<$ MOEOT $>$::weight\-Diversity, and moeo\-Aggregative\-Comparator$<$ MOEOT $>$::weight\-Fitness. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Aggregative\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAlgo.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAlgo.eps new file mode 100644 index 000000000..a43467b12 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAlgo.eps @@ -0,0 +1,229 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 52.6316 +%%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 9.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 5 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 +(moeoAlgo) cw +(moeoEA< MOEOT >) cw +(moeoLS< MOEOT, Type >) cw +(moeoEasyEA< MOEOT >) cw +(moeoIBEA< MOEOT >) cw +(moeoNSGA< MOEOT >) cw +(moeoNSGAII< MOEOT >) cw +(moeoCombinedLS< MOEOT, Type >) 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 ----- + + (moeoAlgo) 2.75 2 box + (moeoEA< MOEOT >) 1.5 1 box + (moeoLS< MOEOT, Type >) 4 1 box + (moeoEasyEA< MOEOT >) 0 0 box + (moeoIBEA< MOEOT >) 1 0 box + (moeoNSGA< MOEOT >) 2 0 box + (moeoNSGAII< MOEOT >) 3 0 box + (moeoCombinedLS< MOEOT, Type >) 4 0 box + +% ----- relations ----- + +solid +1 2.75 1.25 out +solid +1.5 4 2 conn +solid +0 1.5 1.75 in +solid +1 1.5 0.25 out +solid +0 3 1 conn +solid +0 4 1.75 in +solid +1 4 0.25 out +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in +solid +0 3 0.75 in +solid +0 4 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAlgo.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAlgo.tex new file mode 100644 index 000000000..528bd7d40 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoAlgo.tex @@ -0,0 +1,25 @@ +\section{moeo\-Algo Class Reference} +\label{classmoeoAlgo}\index{moeoAlgo@{moeoAlgo}} +Abstract class for multi-objective algorithms. + + +{\tt \#include $<$moeo\-Algo.h$>$} + +Inheritance diagram for moeo\-Algo::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=1.47368cm]{classmoeoAlgo} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +Abstract class for multi-objective algorithms. + + + +Definition at line 19 of file moeo\-Algo.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Algo.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchive.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchive.eps new file mode 100644 index 000000000..b035ce904 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchive.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 242.424 +%%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.0625 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 +(moeoArchive< MOEOT >) cw +(eoPop< MOEOT >) cw +(eoObject) cw +(eoPersistent) cw +(eoPrintable) 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 ----- + + (moeoArchive< MOEOT >) 0.5 0 box + (eoPop< MOEOT >) 0.5 1 box + (eoObject) 0 2 box + (eoPersistent) 1 2 box + (eoPrintable) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchive.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchive.tex new file mode 100644 index 000000000..56265b135 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchive.tex @@ -0,0 +1,170 @@ +\section{moeo\-Archive$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoArchive}\index{moeoArchive@{moeoArchive}} +An archive is a secondary population that stores non-dominated solutions. + + +{\tt \#include $<$moeo\-Archive.h$>$} + +Inheritance diagram for moeo\-Archive$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoArchive} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoArchive_655f6879b14d7b4e65ea03724e5ee601} + +\begin{CompactList}\small\item\em The type of an objective vector for a solution. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Archive} () +\begin{CompactList}\small\item\em Default ctor. \item\end{CompactList}\item +\bf{moeo\-Archive} (\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +bool \bf{dominates} (const \bf{Objective\-Vector} \&\_\-objective\-Vector) const +\begin{CompactList}\small\item\em Returns true if the current archive dominates \_\-objective\-Vector according to the \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} given in the constructor. \item\end{CompactList}\item +bool \bf{contains} (const \bf{Objective\-Vector} \&\_\-objective\-Vector) const +\begin{CompactList}\small\item\em Returns true if the current archive already contains a solution with the same objective values than \_\-objective\-Vector. \item\end{CompactList}\item +void \bf{update} (const MOEOT \&\_\-moeo) +\begin{CompactList}\small\item\em Updates the archive with a given individual \_\-moeo. \item\end{CompactList}\item +void \bf{update} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Updates the archive with a given population \_\-pop. \item\end{CompactList}\item +bool \bf{equals} (const \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch) +\begin{CompactList}\small\item\em Returns true if the current archive contains the same objective vectors than the given archive \_\-arch. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \& \bf{comparator}\label{classmoeoArchive_59d96d161a53b3ee50df8ca5ad0d0642} + +\begin{CompactList}\small\item\em The \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} used to compare solutions. \item\end{CompactList}\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \bf{pareto\-Comparator}\label{classmoeoArchive_eefd5b82b1d7f7d60c72683da9cd8682} + +\begin{CompactList}\small\item\em A \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} based on Pareto dominance (used as default). \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Archive$<$ MOEOT $>$} + +An archive is a secondary population that stores non-dominated solutions. + + + +Definition at line 24 of file moeo\-Archive.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoArchive@{moeo\-Archive}!moeoArchive@{moeoArchive}} +\index{moeoArchive@{moeoArchive}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Archive}$<$ MOEOT $>$::\bf{moeo\-Archive} ()\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_a593ca2122484d255b5aa5a0463bd913} + + +Default ctor. + +The \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} used to compare solutions is based on Pareto dominance + +Definition at line 44 of file moeo\-Archive.h.\index{moeoArchive@{moeo\-Archive}!moeoArchive@{moeoArchive}} +\index{moeoArchive@{moeoArchive}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Archive}$<$ MOEOT $>$::\bf{moeo\-Archive} (\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_75e5fee339ca463405434f6f48497de0} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comparator}]the \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} used to compare solutions \end{description} +\end{Desc} + + +Definition at line 52 of file moeo\-Archive.h. + +\subsection{Member Function Documentation} +\index{moeoArchive@{moeo\-Archive}!dominates@{dominates}} +\index{dominates@{dominates}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ bool \bf{moeo\-Archive}$<$ MOEOT $>$::dominates (const \bf{Objective\-Vector} \& {\em \_\-objective\-Vector}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_67f667e822e0485c6976c6ee0d18f70a} + + +Returns true if the current archive dominates \_\-objective\-Vector according to the \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} given in the constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector}]the objective vector to compare with the current archive \end{description} +\end{Desc} + + +Definition at line 60 of file moeo\-Archive.h. + +References moeo\-Archive$<$ MOEOT $>$::comparator.\index{moeoArchive@{moeo\-Archive}!contains@{contains}} +\index{contains@{contains}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ bool \bf{moeo\-Archive}$<$ MOEOT $>$::contains (const \bf{Objective\-Vector} \& {\em \_\-objective\-Vector}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_748d5c75d713075288257192be1986a9} + + +Returns true if the current archive already contains a solution with the same objective values than \_\-objective\-Vector. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector}]the objective vector to compare with the current archive \end{description} +\end{Desc} + + +Definition at line 78 of file moeo\-Archive.h. + +Referenced by moeo\-Archive$<$ MOEOT $>$::equals().\index{moeoArchive@{moeo\-Archive}!update@{update}} +\index{update@{update}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Archive}$<$ MOEOT $>$::update (const MOEOT \& {\em \_\-moeo})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_6df0acd84cab4cb53682f2e6ca850e9a} + + +Updates the archive with a given individual \_\-moeo. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo}]the given individual \end{description} +\end{Desc} + + +Definition at line 95 of file moeo\-Archive.h. + +References moeo\-Archive$<$ MOEOT $>$::comparator. + +Referenced by moeo\-Archive$<$ MOEOT $>$::update().\index{moeoArchive@{moeo\-Archive}!update@{update}} +\index{update@{update}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Archive}$<$ MOEOT $>$::update (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_877bf4f0937f6be263e2686df4e77cf3} + + +Updates the archive with a given population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the given population \end{description} +\end{Desc} + + +Definition at line 138 of file moeo\-Archive.h. + +References moeo\-Archive$<$ MOEOT $>$::update().\index{moeoArchive@{moeo\-Archive}!equals@{equals}} +\index{equals@{equals}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ bool \bf{moeo\-Archive}$<$ MOEOT $>$::equals (const \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_937088a6054ba1b50db651f50dda3a72} + + +Returns true if the current archive contains the same objective vectors than the given archive \_\-arch. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-arch}]the given archive \end{description} +\end{Desc} + + +Definition at line 151 of file moeo\-Archive.h. + +References moeo\-Archive$<$ MOEOT $>$::contains(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Archive.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.eps new file mode 100644 index 000000000..c41be59f8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.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 235.294 +%%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.125 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 +(moeoArchiveObjectiveVectorSavingUpdater< MOEOT >) cw +(eoUpdater) cw +(eoF< void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoArchiveObjectiveVectorSavingUpdater< MOEOT >) 0 0 box + (eoUpdater) 0 1 box + (eoF< void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.tex new file mode 100644 index 000000000..8faaea295 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.tex @@ -0,0 +1,70 @@ +\section{moeo\-Archive\-Objective\-Vector\-Saving\-Updater$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoArchiveObjectiveVectorSavingUpdater}\index{moeoArchiveObjectiveVectorSavingUpdater@{moeoArchiveObjectiveVectorSavingUpdater}} +This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. + + +{\tt \#include $<$moeo\-Archive\-Objective\-Vector\-Saving\-Updater.h$>$} + +Inheritance diagram for moeo\-Archive\-Objective\-Vector\-Saving\-Updater$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoArchiveObjectiveVectorSavingUpdater} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Archive\-Objective\-Vector\-Saving\-Updater} (\bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch, const std::string \&\_\-filename, bool \_\-count=false, int \_\-id=-1) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} ()\label{classmoeoArchiveObjectiveVectorSavingUpdater_0f6770822c62463ee3b56f7a4c59a850} + +\begin{CompactList}\small\item\em Saves the fitness of the archive's members into the file. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Archive}$<$ MOEOT $>$ \& \bf{arch}\label{classmoeoArchiveObjectiveVectorSavingUpdater_b252eed0ea4f837efefdcdd81d5c42a6} + +\begin{CompactList}\small\item\em local archive \item\end{CompactList}\item +std::string \bf{filename}\label{classmoeoArchiveObjectiveVectorSavingUpdater_7571569a5fb6df07f5d4e72310ec4d4d} + +\begin{CompactList}\small\item\em target filename \item\end{CompactList}\item +bool \bf{count}\label{classmoeoArchiveObjectiveVectorSavingUpdater_6eb54eb29152e2d357b1b975ce33c062} + +\begin{CompactList}\small\item\em this variable is set to true if a new file have to be created each time () is called and to false if the file only HAVE to be updated \item\end{CompactList}\item +unsigned int \bf{counter}\label{classmoeoArchiveObjectiveVectorSavingUpdater_5ea4722f75597976cf6a21a7fba3ddbc} + +\begin{CompactList}\small\item\em counter \item\end{CompactList}\item +int \bf{id}\label{classmoeoArchiveObjectiveVectorSavingUpdater_cd6940347cf39a47085c4d0a7c558355} + +\begin{CompactList}\small\item\em own ID \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Archive\-Objective\-Vector\-Saving\-Updater$<$ MOEOT $>$} + +This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. + + + +Definition at line 28 of file moeo\-Archive\-Objective\-Vector\-Saving\-Updater.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoArchiveObjectiveVectorSavingUpdater@{moeo\-Archive\-Objective\-Vector\-Saving\-Updater}!moeoArchiveObjectiveVectorSavingUpdater@{moeoArchiveObjectiveVectorSavingUpdater}} +\index{moeoArchiveObjectiveVectorSavingUpdater@{moeoArchiveObjectiveVectorSavingUpdater}!moeoArchiveObjectiveVectorSavingUpdater@{moeo\-Archive\-Objective\-Vector\-Saving\-Updater}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Archive\-Objective\-Vector\-Saving\-Updater}$<$ MOEOT $>$::\bf{moeo\-Archive\-Objective\-Vector\-Saving\-Updater} (\bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch}, const std::string \& {\em \_\-filename}, bool {\em \_\-count} = {\tt false}, int {\em \_\-id} = {\tt -1})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchiveObjectiveVectorSavingUpdater_d9f70d24605ccd1e89c8b4ea4c96c333} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-arch}]local archive \item[{\em \_\-filename}]target filename \item[{\em \_\-count}]put this variable to true if you want a new file to be created each time () is called and to false if you only want the file to be updated \item[{\em \_\-id}]own ID \end{description} +\end{Desc} + + +Definition at line 39 of file moeo\-Archive\-Objective\-Vector\-Saving\-Updater.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Archive\-Objective\-Vector\-Saving\-Updater.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.eps new file mode 100644 index 000000000..3617df02d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.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 382.775 +%%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.30625 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 +(moeoArchiveUpdater< MOEOT >) cw +(eoUpdater) cw +(eoF< void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoArchiveUpdater< MOEOT >) 0 0 box + (eoUpdater) 0 1 box + (eoF< void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.tex new file mode 100644 index 000000000..8336f6069 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.tex @@ -0,0 +1,61 @@ +\section{moeo\-Archive\-Updater$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoArchiveUpdater}\index{moeoArchiveUpdater@{moeoArchiveUpdater}} +This class allows to update the archive at each generation with newly found non-dominated solutions. + + +{\tt \#include $<$moeo\-Archive\-Updater.h$>$} + +Inheritance diagram for moeo\-Archive\-Updater$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoArchiveUpdater} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Archive\-Updater} (\bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch, const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} ()\label{classmoeoArchiveUpdater_3d72137dce51d0d4f0cc7207be42878a} + +\begin{CompactList}\small\item\em Updates the archive with newly found non-dominated solutions contained in the main population. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Archive}$<$ MOEOT $>$ \& \bf{arch}\label{classmoeoArchiveUpdater_64531e46898b0e2a4ec48ba28dbfd59d} + +\begin{CompactList}\small\item\em the archive of non-dominated solutions \item\end{CompactList}\item +const \bf{eo\-Pop}$<$ MOEOT $>$ \& \bf{pop}\label{classmoeoArchiveUpdater_a7ba8cde3727d1f24835083e85dfd70d} + +\begin{CompactList}\small\item\em the main population \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Archive\-Updater$<$ MOEOT $>$} + +This class allows to update the archive at each generation with newly found non-dominated solutions. + + + +Definition at line 24 of file moeo\-Archive\-Updater.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoArchiveUpdater@{moeo\-Archive\-Updater}!moeoArchiveUpdater@{moeoArchiveUpdater}} +\index{moeoArchiveUpdater@{moeoArchiveUpdater}!moeoArchiveUpdater@{moeo\-Archive\-Updater}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Archive\-Updater}$<$ MOEOT $>$::\bf{moeo\-Archive\-Updater} (\bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch}, const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchiveUpdater_1497a2bc8df12565b3ea21bb8e08bee1} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-arch}]an archive of non-dominated solutions \item[{\em \_\-pop}]the main population \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-Archive\-Updater.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Archive\-Updater.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.eps new file mode 100644 index 000000000..c4b6f367c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 327.869 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.525 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 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 +(moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) 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 ----- + + (moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoIndicatorBasedFitnessAssignment< MOEOT >) 0 2 box + (moeoFitnessAssignment< MOEOT >) 0 3 box + (eoUF< eoPop< MOEOT > &, void >) 0 4 box + (eoFunctorBase) 0 5 box + (moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +0 0 4 out +solid +1 0 5 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.tex new file mode 100644 index 000000000..6acb4a7df --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoBinaryIndicatorBasedFitnessAssignment}\index{moeoBinaryIndicatorBasedFitnessAssignment@{moeoBinaryIndicatorBasedFitnessAssignment}} +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} for binary indicators. + + +{\tt \#include $<$moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=6cm]{classmoeoBinaryIndicatorBasedFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} for binary indicators. + + + +Definition at line 22 of file moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.eps new file mode 100644 index 000000000..afd2c025d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.eps @@ -0,0 +1,271 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 52.8634 +%%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 9.45833 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 5 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 +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) cw +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >) cw +(moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) cw +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) cw +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoContributionMetric< ObjectiveVector >) cw +(moeoEntropyMetric< ObjectiveVector >) cw +(moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >) cw +(moeoHypervolumeBinaryMetric< ObjectiveVector >) 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 ----- + + (moeoBinaryMetric< A1, A2, R >) 1.5 3 box + (eoBF< A1, A2, R >) 1 4 box + (moeoMetric) 2 4 box + (eoFunctorBase) 1 5 box + (eoFunctorBase) 2 5 box + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0 2 box + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 1 2 box + (moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >) 2 2 box + (moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) 3 2 box + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0 1 box + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 1 1 box + (moeoContributionMetric< ObjectiveVector >) 2.5 1 box + (moeoEntropyMetric< ObjectiveVector >) 3.5 1 box + (moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >) 0.5 0 box + (moeoHypervolumeBinaryMetric< ObjectiveVector >) 1.5 0 box + +% ----- relations ----- + +solid +0 1.5 3 out +solid +1 2 4 conn +solid +1 1 4 in +solid +0 1 4 out +solid +1 2 4 in +solid +0 2 4 out +solid +1 1 5 in +solid +1 2 5 in +solid +1 1.5 2.25 out +solid +0 3 3 conn +solid +0 0 2.75 in +solid +1 0 1.25 out +solid +0 1 2.75 in +solid +1 1 1.25 out +solid +0 2 2.75 in +solid +0 3 2.75 in +solid +1 3 1.25 out +solid +2.5 3.5 2 conn +solid +0 0 1.75 in +solid +0 1 1.75 in +solid +1 1 0.25 out +solid +0.5 1.5 1 conn +solid +0 2.5 1.75 in +solid +0 3.5 1.75 in +solid +0 0.5 0.75 in +solid +0 1.5 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.tex new file mode 100644 index 000000000..b803fc3ef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Binary\-Metric$<$ A1, A2, R $>$ Class Template Reference} +\label{classmoeoBinaryMetric}\index{moeoBinaryMetric@{moeoBinaryMetric}} +Base class for binary metrics. + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Binary\-Metric$<$ A1, A2, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=1.48018cm]{classmoeoBinaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class A1, class A2, class R$>$ class moeo\-Binary\-Metric$<$ A1, A2, R $>$} + +Base class for binary metrics. + + + +Definition at line 36 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.eps new file mode 100644 index 000000000..b9c5cec08 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.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 289.855 +%%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.725 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 +(moeoBinaryMetricSavingUpdater< MOEOT >) cw +(eoUpdater) cw +(eoF< void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoBinaryMetricSavingUpdater< MOEOT >) 0 0 box + (eoUpdater) 0 1 box + (eoF< void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.tex new file mode 100644 index 000000000..73030a896 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.tex @@ -0,0 +1,79 @@ +\section{moeo\-Binary\-Metric\-Saving\-Updater$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoBinaryMetricSavingUpdater}\index{moeoBinaryMetricSavingUpdater@{moeoBinaryMetricSavingUpdater}} +This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. + + +{\tt \#include $<$moeo\-Binary\-Metric\-Saving\-Updater.h$>$} + +Inheritance diagram for moeo\-Binary\-Metric\-Saving\-Updater$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoBinaryMetricSavingUpdater} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoBinaryMetricSavingUpdater_21c2b12ee8600d8550eff42bcba87fd2} + +\begin{CompactList}\small\item\em The objective vector type of a solution. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Binary\-Metric\-Saving\-Updater} (\bf{moeo\-Vector\-Vs\-Vector\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, std::string \_\-filename) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} ()\label{classmoeoBinaryMetricSavingUpdater_a4f0a9e86b4a39ef88e7f8e1c1d6d229} + +\begin{CompactList}\small\item\em Saves the metric's value for the current generation. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Vector\-Vs\-Vector\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& \bf{metric}\label{classmoeoBinaryMetricSavingUpdater_d1c66d6d179aff03d6949f4f76d3237c} + +\begin{CompactList}\small\item\em binary metric comparing two Pareto sets \item\end{CompactList}\item +const \bf{eo\-Pop}$<$ MOEOT $>$ \& \bf{pop}\label{classmoeoBinaryMetricSavingUpdater_79eea0916733568929ea9c0758ffe8fa} + +\begin{CompactList}\small\item\em main population \item\end{CompactList}\item +\bf{eo\-Pop}$<$ MOEOT $>$ \bf{old\-Pop}\label{classmoeoBinaryMetricSavingUpdater_0461af7e569921fec49538ff8fa998d4} + +\begin{CompactList}\small\item\em (n-1) population \item\end{CompactList}\item +std::string \bf{filename}\label{classmoeoBinaryMetricSavingUpdater_6d280c180de7bab1e18ab2bb39a0e184} + +\begin{CompactList}\small\item\em target filename \item\end{CompactList}\item +bool \bf{first\-Gen}\label{classmoeoBinaryMetricSavingUpdater_9bfa927499265f53f2b25afd2cd3c94f} + +\begin{CompactList}\small\item\em is it the first generation ? \item\end{CompactList}\item +unsigned int \bf{counter}\label{classmoeoBinaryMetricSavingUpdater_d8d3ce9ac8ab5a57ee1840bc1c98d776} + +\begin{CompactList}\small\item\em counter \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Binary\-Metric\-Saving\-Updater$<$ MOEOT $>$} + +This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. + + + +Definition at line 28 of file moeo\-Binary\-Metric\-Saving\-Updater.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoBinaryMetricSavingUpdater@{moeo\-Binary\-Metric\-Saving\-Updater}!moeoBinaryMetricSavingUpdater@{moeoBinaryMetricSavingUpdater}} +\index{moeoBinaryMetricSavingUpdater@{moeoBinaryMetricSavingUpdater}!moeoBinaryMetricSavingUpdater@{moeo\-Binary\-Metric\-Saving\-Updater}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Binary\-Metric\-Saving\-Updater}$<$ MOEOT $>$::\bf{moeo\-Binary\-Metric\-Saving\-Updater} (\bf{moeo\-Vector\-Vs\-Vector\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, std::string {\em \_\-filename})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoBinaryMetricSavingUpdater_b7c3fb73caf759450367c76d4716bb62} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-metric}]the binary metric comparing two Pareto sets \item[{\em \_\-pop}]the main population \item[{\em \_\-filename}]the target filename \end{description} +\end{Desc} + + +Definition at line 42 of file moeo\-Binary\-Metric\-Saving\-Updater.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Binary\-Metric\-Saving\-Updater.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBitVector.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBitVector.eps new file mode 100644 index 000000000..586e3e79b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBitVector.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 129.87 +%%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.85 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 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 +(moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >) cw +(MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(EO< MOEOObjectiveVector >) cw +(eoObject) cw +(eoPersistent) cw +(eoPrintable) 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 ----- + + (moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 0 box + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >) 0.5 1 box + (MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 2 box + (EO< MOEOObjectiveVector >) 0.5 3 box + (eoObject) 0 4 box + (eoPersistent) 1 4 box + (eoPrintable) 1 5 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +0 1 4 conn +solid +1 0 4 in +solid +1 1 4 in +solid +0 1 4 out +solid +1 1 5 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBitVector.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBitVector.tex new file mode 100644 index 000000000..a980f804a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoBitVector.tex @@ -0,0 +1,91 @@ +\section{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$ Class Template Reference} +\label{classmoeoBitVector}\index{moeoBitVector@{moeoBitVector}} +This class is an implementationeo of a simple bit-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector}. + + +{\tt \#include $<$moeo\-Bit\-Vector.h$>$} + +Inheritance diagram for moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.63636cm]{classmoeoBitVector} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Bit\-Vector} (unsigned int \_\-size=0, bool \_\-value=false) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +virtual std::string \bf{class\-Name} () const \label{classmoeoBitVector_dc2b3649bb839b04a14371b5b96dc738} + +\begin{CompactList}\small\item\em Returns the class name as a std::string. \item\end{CompactList}\item +virtual void \bf{print\-On} (std::ostream \&\_\-os) const +\begin{CompactList}\small\item\em Writing object. \item\end{CompactList}\item +virtual void \bf{read\-From} (std::istream \&\_\-is) +\begin{CompactList}\small\item\em Reading object. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ class moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} + +This class is an implementationeo of a simple bit-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector}. + + + +Definition at line 22 of file moeo\-Bit\-Vector.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoBitVector@{moeo\-Bit\-Vector}!moeoBitVector@{moeoBitVector}} +\index{moeoBitVector@{moeoBitVector}!moeoBitVector@{moeo\-Bit\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ \bf{moeo\-Bit\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::\bf{moeo\-Bit\-Vector} (unsigned int {\em \_\-size} = {\tt 0}, bool {\em \_\-value} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoBitVector_959ae6d2acf91467142366049a0b6121} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-size}]Length of vector (default is 0) \item[{\em \_\-value}]Initial value of all elements (default is default value of type Gene\-Type) \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Bit\-Vector.h. + +\subsection{Member Function Documentation} +\index{moeoBitVector@{moeo\-Bit\-Vector}!printOn@{printOn}} +\index{printOn@{printOn}!moeoBitVector@{moeo\-Bit\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ virtual void \bf{moeo\-Bit\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::print\-On (std::ostream \& {\em \_\-os}) const\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoBitVector_78f821c548cf46d8bcd30aa8a52ffb7c} + + +Writing object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-os}]output stream \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$} \doxyref{p.}{classmoeoVector_d0a92cb26483ffab754ac4a0efb76308}. + +Definition at line 54 of file moeo\-Bit\-Vector.h.\index{moeoBitVector@{moeo\-Bit\-Vector}!readFrom@{readFrom}} +\index{readFrom@{readFrom}!moeoBitVector@{moeo\-Bit\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ virtual void \bf{moeo\-Bit\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::read\-From (std::istream \& {\em \_\-is})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoBitVector_31cd3f894615d0a27dd116a5c8082521} + + +Reading object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-is}]input stream \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$} \doxyref{p.}{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9}. + +Definition at line 67 of file moeo\-Bit\-Vector.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Bit\-Vector.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCombinedLS.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCombinedLS.eps new file mode 100644 index 000000000..31da390c9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCombinedLS.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 132.013 +%%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.7875 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 +(moeoCombinedLS< MOEOT, Type >) cw +(moeoLS< MOEOT, Type >) cw +(moeoAlgo) cw +(eoBF< Type, moeoArchive< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoCombinedLS< MOEOT, Type >) 0.5 0 box + (moeoLS< MOEOT, Type >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoBF< Type, moeoArchive< MOEOT > &, void >) 1 2 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCombinedLS.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCombinedLS.tex new file mode 100644 index 000000000..462b057d7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCombinedLS.tex @@ -0,0 +1,98 @@ +\section{moeo\-Combined\-LS$<$ MOEOT, Type $>$ Class Template Reference} +\label{classmoeoCombinedLS}\index{moeoCombinedLS@{moeoCombinedLS}} +This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. + + +{\tt \#include $<$moeo\-Combined\-LS.h$>$} + +Inheritance diagram for moeo\-Combined\-LS$<$ MOEOT, Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.69637cm]{classmoeoCombinedLS} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Combined\-LS} (\bf{moeo\-LS}$<$ MOEOT, Type $>$ \&\_\-first\_\-mols) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{add} (\bf{moeo\-LS}$<$ MOEOT, Type $>$ \&\_\-mols) +\begin{CompactList}\small\item\em Adds a new local search to combine. \item\end{CompactList}\item +void \bf{operator()} (Type \_\-type, \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch) +\begin{CompactList}\small\item\em Gives a new solution in order to explore the neigborhood. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +std::vector$<$ \bf{moeo\-LS}$<$ MOEOT, Type $>$ $\ast$ $>$ \bf{combined\-LS}\label{classmoeoCombinedLS_3cf36ae7ada10d2837b60df01210d92a} + +\begin{CompactList}\small\item\em the vector that contains the combined LS \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Type$>$ class moeo\-Combined\-LS$<$ MOEOT, Type $>$} + +This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. + + + +Definition at line 25 of file moeo\-Combined\-LS.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoCombinedLS@{moeo\-Combined\-LS}!moeoCombinedLS@{moeoCombinedLS}} +\index{moeoCombinedLS@{moeoCombinedLS}!moeoCombinedLS@{moeo\-Combined\-LS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ \bf{moeo\-Combined\-LS}$<$ MOEOT, Type $>$::\bf{moeo\-Combined\-LS} (\bf{moeo\-LS}$<$ MOEOT, Type $>$ \& {\em \_\-first\_\-mols})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoCombinedLS_5d09220b47bac67bd332dc0f93226ae1} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-first\_\-mols}]the first multi-objective local search to add \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-Combined\-LS.h. + +References moeo\-Combined\-LS$<$ MOEOT, Type $>$::combined\-LS. + +\subsection{Member Function Documentation} +\index{moeoCombinedLS@{moeo\-Combined\-LS}!add@{add}} +\index{add@{add}!moeoCombinedLS@{moeo\-Combined\-LS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ void \bf{moeo\-Combined\-LS}$<$ MOEOT, Type $>$::add (\bf{moeo\-LS}$<$ MOEOT, Type $>$ \& {\em \_\-mols})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoCombinedLS_1637b4dcf2dd694cc9ffbad605b2bf13} + + +Adds a new local search to combine. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-mols}]the multi-objective local search to add \end{description} +\end{Desc} + + +Definition at line 42 of file moeo\-Combined\-LS.h. + +References moeo\-Combined\-LS$<$ MOEOT, Type $>$::combined\-LS.\index{moeoCombinedLS@{moeo\-Combined\-LS}!operator()@{operator()}} +\index{operator()@{operator()}!moeoCombinedLS@{moeo\-Combined\-LS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ void \bf{moeo\-Combined\-LS}$<$ MOEOT, Type $>$::operator() (Type {\em \_\-type}, \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoCombinedLS_634d7fa3092fe8f88a1b54cacfdc35fd} + + +Gives a new solution in order to explore the neigborhood. + +The new non-dominated solutions are added to the archive \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-type}]the object to apply the local search to \item[{\em \_\-arch}]the archive of non-dominated solutions \end{description} +\end{Desc} + + +Implements \bf{eo\-BF$<$ Type, moeo\-Archive$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 53 of file moeo\-Combined\-LS.h. + +References moeo\-Combined\-LS$<$ MOEOT, Type $>$::combined\-LS. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Combined\-LS.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoComparator.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoComparator.eps new file mode 100644 index 000000000..c87d0fa42 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoComparator.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 32.2581 +%%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 15.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 5 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 +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(moeoAggregativeComparator< MOEOT >) cw +(moeoDiversityThenFitnessComparator< MOEOT >) cw +(moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator) cw +(moeoFitnessThenDiversityComparator< MOEOT >) cw +(moeoOneObjectiveComparator< MOEOT >) 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 ----- + + (moeoComparator< MOEOT >) 2 1 box + (eoBF< A1, A2, R >) 2 2 box + (eoFunctorBase) 2 3 box + (moeoAggregativeComparator< MOEOT >) 0 0 box + (moeoDiversityThenFitnessComparator< MOEOT >) 1 0 box + (moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator) 2 0 box + (moeoFitnessThenDiversityComparator< MOEOT >) 3 0 box + (moeoOneObjectiveComparator< MOEOT >) 4 0 box + +% ----- relations ----- + +solid +0 2 1 out +solid +1 2 2 in +solid +0 2 2 out +solid +1 2 3 in +solid +1 2 0.25 out +solid +0 4 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 +solid +0 4 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoComparator.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoComparator.tex new file mode 100644 index 000000000..22da026e1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoComparator.tex @@ -0,0 +1,27 @@ +\section{moeo\-Comparator$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoComparator}\index{moeoComparator@{moeoComparator}} +Functor allowing to compare two solutions. + + +{\tt \#include $<$moeo\-Comparator.h$>$} + +Inheritance diagram for moeo\-Comparator$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=0.903226cm]{classmoeoComparator} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Comparator$<$ MOEOT $>$} + +Functor allowing to compare two solutions. + + + +Definition at line 22 of file moeo\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoContributionMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoContributionMetric.eps new file mode 100644 index 000000000..b5ce434de --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoContributionMetric.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.626 +%%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.77 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoContributionMetric< ObjectiveVector >) cw +(moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoContributionMetric< ObjectiveVector >) 0.5 0 box + (moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) 0.5 1 box + (moeoBinaryMetric< A1, A2, R >) 0.5 2 box + (eoBF< A1, A2, R >) 0 3 box + (moeoMetric) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoContributionMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoContributionMetric.tex new file mode 100644 index 000000000..9ecca0f4b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoContributionMetric.tex @@ -0,0 +1,120 @@ +\section{moeo\-Contribution\-Metric$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoContributionMetric}\index{moeoContributionMetric@{moeoContributionMetric}} +The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. + + +{\tt \#include $<$moeo\-Contribution\-Metric.h$>$} + +Inheritance diagram for moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.71353cm]{classmoeoContributionMetric} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +double \bf{operator()} (const std::vector$<$ Objective\-Vector $>$ \&\_\-set1, const std::vector$<$ Objective\-Vector $>$ \&\_\-set2) +\begin{CompactList}\small\item\em Returns the contribution of the Pareto set '\_\-set1' relatively to the Pareto set '\_\-set2'. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +unsigned int \bf{card\_\-C} (const std::vector$<$ Objective\-Vector $>$ \&\_\-set1, const std::vector$<$ Objective\-Vector $>$ \&\_\-set2) +\begin{CompactList}\small\item\em Returns the number of solutions both in '\_\-set1' and '\_\-set2'. \item\end{CompactList}\item +unsigned int \bf{card\_\-W} (const std::vector$<$ Objective\-Vector $>$ \&\_\-set1, const std::vector$<$ Objective\-Vector $>$ \&\_\-set2) +\begin{CompactList}\small\item\em Returns the number of solutions in '\_\-set1' dominating at least one solution of '\_\-set2'. \item\end{CompactList}\item +unsigned int \bf{card\_\-N} (const std::vector$<$ Objective\-Vector $>$ \&\_\-set1, const std::vector$<$ Objective\-Vector $>$ \&\_\-set2) +\begin{CompactList}\small\item\em Returns the number of solutions in '\_\-set1' having no relation of dominance with those from '\_\-set2'. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$ \bf{pareto\-Comparator}\label{classmoeoContributionMetric_b474229c85ffbf5108f51eef01ab2d64} + +\begin{CompactList}\small\item\em Functor to compare two objective vectors according to Pareto dominance relation. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Contribution\-Metric$<$ Objective\-Vector $>$} + +The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. + +of the 2000 Congress on Evolutionary Computation, IEEE Press, pp. 317-324) + + + +Definition at line 24 of file moeo\-Contribution\-Metric.h. + +\subsection{Member Function Documentation} +\index{moeoContributionMetric@{moeo\-Contribution\-Metric}!operator()@{operator()}} +\index{operator()@{operator()}!moeoContributionMetric@{moeo\-Contribution\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Contribution\-Metric}$<$ Objective\-Vector $>$::operator() (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoContributionMetric_491610f6557874c2989eaa7a75117dcb} + + +Returns the contribution of the Pareto set '\_\-set1' relatively to the Pareto set '\_\-set2'. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-set1}]the first Pareto set \item[{\em \_\-set2}]the second Pareto set \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-Contribution\-Metric.h. + +References moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::card\_\-C(), moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::card\_\-N(), and moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::card\_\-W().\index{moeoContributionMetric@{moeo\-Contribution\-Metric}!card_C@{card\_\-C}} +\index{card_C@{card\_\-C}!moeoContributionMetric@{moeo\-Contribution\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ unsigned int \bf{moeo\-Contribution\-Metric}$<$ Objective\-Vector $>$::card\_\-C (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set2})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoContributionMetric_4e60849763aaad0cdea66e71edf2d29e} + + +Returns the number of solutions both in '\_\-set1' and '\_\-set2'. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-set1}]the first Pareto set \item[{\em \_\-set2}]the second Pareto set \end{description} +\end{Desc} + + +Definition at line 54 of file moeo\-Contribution\-Metric.h. + +Referenced by moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::operator()().\index{moeoContributionMetric@{moeo\-Contribution\-Metric}!card_W@{card\_\-W}} +\index{card_W@{card\_\-W}!moeoContributionMetric@{moeo\-Contribution\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ unsigned int \bf{moeo\-Contribution\-Metric}$<$ Objective\-Vector $>$::card\_\-W (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set2})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoContributionMetric_68d6d1ec1ed0bed1ea290cdacb93b5b2} + + +Returns the number of solutions in '\_\-set1' dominating at least one solution of '\_\-set2'. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-set1}]the first Pareto set \item[{\em \_\-set2}]the second Pareto set \end{description} +\end{Desc} + + +Definition at line 71 of file moeo\-Contribution\-Metric.h. + +References moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::pareto\-Comparator. + +Referenced by moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::operator()().\index{moeoContributionMetric@{moeo\-Contribution\-Metric}!card_N@{card\_\-N}} +\index{card_N@{card\_\-N}!moeoContributionMetric@{moeo\-Contribution\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ unsigned int \bf{moeo\-Contribution\-Metric}$<$ Objective\-Vector $>$::card\_\-N (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set2})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoContributionMetric_df26b17120ed2271a6d1ec9c8c77b451} + + +Returns the number of solutions in '\_\-set1' having no relation of dominance with those from '\_\-set2'. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-set1}]the first Pareto set \item[{\em \_\-set2}]the second Pareto set \end{description} +\end{Desc} + + +Definition at line 89 of file moeo\-Contribution\-Metric.h. + +References moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::pareto\-Comparator. + +Referenced by moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Contribution\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.eps new file mode 100644 index 000000000..70c54441c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.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 150 +%%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.33333 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 +(moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >) 0 0 box + (eoUF< A1, R >) 0 1 box + (eoFunctorBase) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.tex new file mode 100644 index 000000000..92b954b37 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.tex @@ -0,0 +1,49 @@ +\section{moeo\-Convert\-Pop\-To\-Objective\-Vectors$<$ MOEOT, Objective\-Vector $>$ Class Template Reference} +\label{classmoeoConvertPopToObjectiveVectors}\index{moeoConvertPopToObjectiveVectors@{moeoConvertPopToObjectiveVectors}} +Functor allowing to get a vector of objective vectors from a population. + + +{\tt \#include $<$moeo\-Convert\-Pop\-To\-Objective\-Vectors.h$>$} + +Inheritance diagram for moeo\-Convert\-Pop\-To\-Objective\-Vectors$<$ MOEOT, Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmoeoConvertPopToObjectiveVectors} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const std::vector$<$ Objective\-Vector $>$ \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \_\-pop) +\begin{CompactList}\small\item\em Returns a vector of the objective vectors from the population \_\-pop. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Objective\-Vector = typename MOEOT::Objective\-Vector$>$ class moeo\-Convert\-Pop\-To\-Objective\-Vectors$<$ MOEOT, Objective\-Vector $>$} + +Functor allowing to get a vector of objective vectors from a population. + + + +Definition at line 23 of file moeo\-Convert\-Pop\-To\-Objective\-Vectors.h. + +\subsection{Member Function Documentation} +\index{moeoConvertPopToObjectiveVectors@{moeo\-Convert\-Pop\-To\-Objective\-Vectors}!operator()@{operator()}} +\index{operator()@{operator()}!moeoConvertPopToObjectiveVectors@{moeo\-Convert\-Pop\-To\-Objective\-Vectors}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Objective\-Vector = typename MOEOT::Objective\-Vector$>$ const std::vector$<$ Objective\-Vector $>$ \bf{moeo\-Convert\-Pop\-To\-Objective\-Vectors}$<$ MOEOT, Objective\-Vector $>$::operator() (const \bf{eo\-Pop}$<$ MOEOT $>$ {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoConvertPopToObjectiveVectors_8fada75aa151a6eaa310c5064f783c86} + + +Returns a vector of the objective vectors from the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Convert\-Pop\-To\-Objective\-Vectors.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Convert\-Pop\-To\-Objective\-Vectors.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.eps new file mode 100644 index 000000000..08faf7012 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.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 259.74 +%%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.925 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/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 +(moeoCriterionBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoCriterionBasedFitnessAssignment< MOEOT >) 0 0 box + (moeoFitnessAssignment< MOEOT >) 0 1 box + (eoUF< eoPop< MOEOT > &, void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.tex new file mode 100644 index 000000000..ed43820ca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Criterion\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoCriterionBasedFitnessAssignment}\index{moeoCriterionBasedFitnessAssignment@{moeoCriterionBasedFitnessAssignment}} +\doxyref{moeo\-Criterion\-Based\-Fitness\-Assignment}{p.}{classmoeoCriterionBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for criterion-based strategies. + + +{\tt \#include $<$moeo\-Criterion\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Criterion\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoCriterionBasedFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Criterion\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Criterion\-Based\-Fitness\-Assignment}{p.}{classmoeoCriterionBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for criterion-based strategies. + + + +Definition at line 22 of file moeo\-Criterion\-Based\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Criterion\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.eps new file mode 100644 index 000000000..74b57aad4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.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 275.482 +%%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.815 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoCrowdingDiversityAssignment< MOEOT >) cw +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) 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 ----- + + (moeoCrowdingDiversityAssignment< MOEOT >) 0 1 box + (moeoDiversityAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + (moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.tex new file mode 100644 index 000000000..be11b8f3a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.tex @@ -0,0 +1,114 @@ +\section{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoCrowdingDiversityAssignment}\index{moeoCrowdingDiversityAssignment@{moeoCrowdingDiversityAssignment}} +Diversity assignment sheme based on crowding proposed in: K. + + +{\tt \#include $<$moeo\-Crowding\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoCrowdingDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoCrowdingDiversityAssignment_e6ece5e7569e9d168fcddaae37902585} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +double \bf{inf} () const \label{classmoeoCrowdingDiversityAssignment_e7f5dbe11427a5c264e70fe4e036242f} + +\begin{CompactList}\small\item\em Returns a big value (regarded as infinite). \item\end{CompactList}\item +double \bf{tiny} () const \label{classmoeoCrowdingDiversityAssignment_eb70be9c246dfa56b55a4ecc5454f778} + +\begin{CompactList}\small\item\em Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Computes diversity values for every solution contained in the population \_\-pop. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\end{CompactItemize} +\subsection*{Protected Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{set\-Distances} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the distance values. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} + +Diversity assignment sheme based on crowding proposed in: K. + +Deb, A. Pratap, S. Agarwal, T. Meyarivan, \char`\"{}A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II\char`\"{}, IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). + + + +Definition at line 25 of file moeo\-Crowding\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoCrowdingDiversityAssignment_1db056d5e06b337e67f848fdb60fa2a6} + + +Computes diversity values for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 55 of file moeo\-Crowding\-Diversity\-Assignment.h. + +References moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::inf(), and moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::set\-Distances().\index{moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoCrowdingDiversityAssignment_ba1d60c8e59fbe2c12e9eef33863f012} + + +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! \end{Desc} + + +Implements \bf{moeo\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoDiversityAssignment_57f400263b36664df6269f1b522cfdcb}. + +Reimplemented in \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontCrowdingDiversityAssignment_f73ff88bd29c49260e2ca859250e4b68}. + +Definition at line 78 of file moeo\-Crowding\-Diversity\-Assignment.h.\index{moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}!setDistances@{setDistances}} +\index{setDistances@{setDistances}!moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::set\-Distances (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected, virtual]}}\label{classmoeoCrowdingDiversityAssignment_acbe3e03404ecc67dd5e83f00576c255} + + +Sets the distance values. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented in \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontCrowdingDiversityAssignment_1aa0ec7b94fbbf952636bcc21e1a9d16}. + +Definition at line 90 of file moeo\-Crowding\-Diversity\-Assignment.h. + +References moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::inf(). + +Referenced by moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Crowding\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.eps new file mode 100644 index 000000000..28f1b4487 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.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 416.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 1.2 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoDetTournamentSelect< MOEOT >) cw +(moeoSelectOne< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoDetTournamentSelect< MOEOT >) 0 0 box + (moeoSelectOne< MOEOT >) 0 1 box + (eoSelectOne< MOEOT >) 0 2 box + (eoUF< A1, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.tex new file mode 100644 index 000000000..113c14ff7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.tex @@ -0,0 +1,102 @@ +\section{moeo\-Det\-Tournament\-Select$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoDetTournamentSelect}\index{moeoDetTournamentSelect@{moeoDetTournamentSelect}} +Selection strategy that selects ONE individual by deterministic tournament. + + +{\tt \#include $<$moeo\-Det\-Tournament\-Select.h$>$} + +Inheritance diagram for moeo\-Det\-Tournament\-Select$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoDetTournamentSelect} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Det\-Tournament\-Select} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator, unsigned int \_\-t\-Size=2) +\begin{CompactList}\small\item\em Full Ctor. \item\end{CompactList}\item +\bf{moeo\-Det\-Tournament\-Select} (unsigned int \_\-t\-Size=2) +\begin{CompactList}\small\item\em Ctor without comparator. \item\end{CompactList}\item +const MOEOT \& \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply the tournament to the given population. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Comparator}$<$ MOEOT $>$ \& \bf{comparator}\label{classmoeoDetTournamentSelect_f31a46190da0fe561d748133456907c9} + +\begin{CompactList}\small\item\em the comparator (used to compare 2 individuals) \item\end{CompactList}\item +\bf{moeo\-Fitness\-Then\-Diversity\-Comparator}$<$ MOEOT $>$ \bf{default\-Comparator}\label{classmoeoDetTournamentSelect_dde5fc82ffff52056aab75632f779825} + +\begin{CompactList}\small\item\em a fitness then diversity comparator can be used as default \item\end{CompactList}\item +unsigned int \bf{t\-Size}\label{classmoeoDetTournamentSelect_061c191c2df365cf4325e0093aae2ae6} + +\begin{CompactList}\small\item\em the number of individuals in the tournament \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Det\-Tournament\-Select$<$ MOEOT $>$} + +Selection strategy that selects ONE individual by deterministic tournament. + + + +Definition at line 24 of file moeo\-Det\-Tournament\-Select.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}!moeoDetTournamentSelect@{moeoDetTournamentSelect}} +\index{moeoDetTournamentSelect@{moeoDetTournamentSelect}!moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$::\bf{moeo\-Det\-Tournament\-Select} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator}, unsigned int {\em \_\-t\-Size} = {\tt 2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDetTournamentSelect_106e44d01bbf2775b483104639c6556e} + + +Full Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \item[{\em \_\-t\-Size}]the number of individuals in the tournament (default: 2) \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-Det\-Tournament\-Select.h. + +References moeo\-Det\-Tournament\-Select$<$ MOEOT $>$::t\-Size.\index{moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}!moeoDetTournamentSelect@{moeoDetTournamentSelect}} +\index{moeoDetTournamentSelect@{moeoDetTournamentSelect}!moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$::\bf{moeo\-Det\-Tournament\-Select} (unsigned int {\em \_\-t\-Size} = {\tt 2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDetTournamentSelect_f17a16c1b0f688832e7143e55d0f767d} + + +Ctor without comparator. + +A \doxyref{moeo\-Fitness\-Then\-Diversity\-Comparator}{p.}{classmoeoFitnessThenDiversityComparator} is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-t\-Size}]the number of individuals in the tournament (default: 2) \end{description} +\end{Desc} + + +Definition at line 49 of file moeo\-Det\-Tournament\-Select.h. + +References moeo\-Det\-Tournament\-Select$<$ MOEOT $>$::t\-Size. + +\subsection{Member Function Documentation} +\index{moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const MOEOT\& \bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$::operator() (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDetTournamentSelect_0d7051a48570e5dcbe9a19b90e4be3bf} + + +Apply the tournament to the given population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 65 of file moeo\-Det\-Tournament\-Select.h. + +References moeo\-Det\-Tournament\-Select$<$ MOEOT $>$::comparator, and moeo\-Det\-Tournament\-Select$<$ MOEOT $>$::t\-Size. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Det\-Tournament\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistance.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistance.eps new file mode 100644 index 000000000..74950e0b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistance.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 297.398 +%%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.68125 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 +(moeoDistance< MOEOT, Type >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(moeoNormalizedDistance< MOEOT, Type >) 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 ----- + + (moeoDistance< MOEOT, Type >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + (moeoNormalizedDistance< MOEOT, Type >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistance.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistance.tex new file mode 100644 index 000000000..b01cae414 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistance.tex @@ -0,0 +1,87 @@ +\section{moeo\-Distance$<$ MOEOT, Type $>$ Class Template Reference} +\label{classmoeoDistance}\index{moeoDistance@{moeoDistance}} +The base class for distance computation. + + +{\tt \#include $<$moeo\-Distance.h$>$} + +Inheritance diagram for moeo\-Distance$<$ MOEOT, Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoDistance} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{setup} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Nothing to do. \item\end{CompactList}\item +virtual void \bf{setup} (double \_\-min, double \_\-max, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Nothing to do. \item\end{CompactList}\item +virtual void \bf{setup} (\bf{eo\-Real\-Interval} \_\-real\-Interval, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Nothing to do. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Type$>$ class moeo\-Distance$<$ MOEOT, Type $>$} + +The base class for distance computation. + + + +Definition at line 22 of file moeo\-Distance.h. + +\subsection{Member Function Documentation} +\index{moeoDistance@{moeo\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoDistance@{moeo\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ virtual void \bf{moeo\-Distance}$<$ MOEOT, Type $>$::setup (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDistance_1834a67c2a7a96f0c9a3c408108a8f8c} + + +Nothing to do. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented in \bf{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoNormalizedDistance_b99ffed3c0ce6c9c10aef0a76d983bb1}, and \bf{moeo\-Normalized\-Distance$<$ MOEOT $>$} \doxyref{p.}{classmoeoNormalizedDistance_b99ffed3c0ce6c9c10aef0a76d983bb1}. + +Definition at line 30 of file moeo\-Distance.h.\index{moeoDistance@{moeo\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoDistance@{moeo\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ virtual void \bf{moeo\-Distance}$<$ MOEOT, Type $>$::setup (double {\em \_\-min}, double {\em \_\-max}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDistance_341c4fa39652871761053e85914a16ad} + + +Nothing to do. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-min}]lower bound \item[{\em \_\-max}]upper bound \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Reimplemented in \bf{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoNormalizedDistance_e58bbf9eb90a8d2704f88d774d3fe1e1}, and \bf{moeo\-Normalized\-Distance$<$ MOEOT $>$} \doxyref{p.}{classmoeoNormalizedDistance_e58bbf9eb90a8d2704f88d774d3fe1e1}. + +Definition at line 40 of file moeo\-Distance.h.\index{moeoDistance@{moeo\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoDistance@{moeo\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ virtual void \bf{moeo\-Distance}$<$ MOEOT, Type $>$::setup (\bf{eo\-Real\-Interval} {\em \_\-real\-Interval}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDistance_b08e7b8c1bedb2993669ec0315fb2b73} + + +Nothing to do. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-real\-Interval}]the \doxyref{eo\-Real\-Interval} object \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Reimplemented in \bf{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoNormalizedDistance_dda4f95d7f6cae9dd1f4bf6cd8fb7c1c}, and \bf{moeo\-Normalized\-Distance$<$ MOEOT $>$} \doxyref{p.}{classmoeoNormalizedDistance_dda4f95d7f6cae9dd1f4bf6cd8fb7c1c}. + +Definition at line 49 of file moeo\-Distance.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Distance.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.eps new file mode 100644 index 000000000..595189b41 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.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 229.008 +%%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.18333 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 +(moeoDistanceMatrix< MOEOT, Type >) cw +(eoUF< const eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoDistanceMatrix< MOEOT, Type >) 0 0 box + (eoUF< const eoPop< MOEOT > &, void >) 0 1 box + (eoFunctorBase) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.tex new file mode 100644 index 000000000..670658e13 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.tex @@ -0,0 +1,78 @@ +\section{moeo\-Distance\-Matrix$<$ MOEOT, Type $>$ Class Template Reference} +\label{classmoeoDistanceMatrix}\index{moeoDistanceMatrix@{moeoDistanceMatrix}} +A matrix to compute distances between every pair of individuals contained in a population. + + +{\tt \#include $<$moeo\-Distance\-Matrix.h$>$} + +Inheritance diagram for moeo\-Distance\-Matrix$<$ MOEOT, Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmoeoDistanceMatrix} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Distance\-Matrix} (unsigned int \_\-size, \bf{moeo\-Distance}$<$ MOEOT, Type $>$ \&\_\-distance) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the distance between every pair of individuals contained in the population \_\-pop. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Distance}$<$ MOEOT, Type $>$ \& \bf{distance}\label{classmoeoDistanceMatrix_72789ab7bcb89670cdc4242173dc2c69} + +\begin{CompactList}\small\item\em the distance to use \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Type$>$ class moeo\-Distance\-Matrix$<$ MOEOT, Type $>$} + +A matrix to compute distances between every pair of individuals contained in a population. + + + +Definition at line 24 of file moeo\-Distance\-Matrix.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoDistanceMatrix@{moeo\-Distance\-Matrix}!moeoDistanceMatrix@{moeoDistanceMatrix}} +\index{moeoDistanceMatrix@{moeoDistanceMatrix}!moeoDistanceMatrix@{moeo\-Distance\-Matrix}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ \bf{moeo\-Distance\-Matrix}$<$ MOEOT, Type $>$::\bf{moeo\-Distance\-Matrix} (unsigned int {\em \_\-size}, \bf{moeo\-Distance}$<$ MOEOT, Type $>$ \& {\em \_\-distance})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDistanceMatrix_5526260bd46b6877abd700a15b9b9ee8} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-size}]size for every dimension of the matrix \item[{\em \_\-distance}]the distance to use \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Distance\-Matrix.h. + +\subsection{Member Function Documentation} +\index{moeoDistanceMatrix@{moeo\-Distance\-Matrix}!operator()@{operator()}} +\index{operator()@{operator()}!moeoDistanceMatrix@{moeo\-Distance\-Matrix}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ void \bf{moeo\-Distance\-Matrix}$<$ MOEOT, Type $>$::operator() (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDistanceMatrix_ae3d433983a0a3d369cc17971498ad48} + + +Sets the distance between every pair of individuals contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ const eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 51 of file moeo\-Distance\-Matrix.h. + +References moeo\-Distance\-Matrix$<$ MOEOT, Type $>$::distance. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Distance\-Matrix.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.eps new file mode 100644 index 000000000..0826c5e9c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.eps @@ -0,0 +1,231 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 91.8274 +%%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.445 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 3 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoCrowdingDiversityAssignment< MOEOT >) cw +(moeoDummyDiversityAssignment< MOEOT >) cw +(moeoSharingDiversityAssignment< MOEOT >) cw +(moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) cw +(moeoFrontByFrontSharingDiversityAssignment< MOEOT >) 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 ----- + + (moeoDiversityAssignment< MOEOT >) 1 2 box + (eoUF< eoPop< MOEOT > &, void >) 1 3 box + (eoFunctorBase) 1 4 box + (moeoCrowdingDiversityAssignment< MOEOT >) 0 1 box + (moeoDummyDiversityAssignment< MOEOT >) 1 1 box + (moeoSharingDiversityAssignment< MOEOT >) 2 1 box + (moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) 0 0 box + (moeoFrontByFrontSharingDiversityAssignment< MOEOT >) 2 0 box + +% ----- relations ----- + +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in +solid +1 1 1.25 out +solid +0 2 2 conn +solid +0 0 1.75 in +solid +1 0 0.25 out +solid +0 1 1.75 in +solid +0 2 1.75 in +solid +1 2 0.25 out +solid +0 0 0.75 in +solid +0 2 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.tex new file mode 100644 index 000000000..152d28c7d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.tex @@ -0,0 +1,75 @@ +\section{moeo\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoDiversityAssignment}\index{moeoDiversityAssignment@{moeoDiversityAssignment}} +Functor that sets the diversity values of a whole population. + + +{\tt \#include $<$moeo\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.57117cm]{classmoeoDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoDiversityAssignment_dc2aa6c655cb0c163aa3c769c91c9339} + +\begin{CompactList}\small\item\em The type for objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec)=0 +\begin{CompactList}\small\item\em Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, MOEOT \&\_\-moeo) +\begin{CompactList}\small\item\em Updates the diversity values of the whole population \_\-pop by taking the deletion of the individual \_\-moeo into account. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Diversity\-Assignment$<$ MOEOT $>$} + +Functor that sets the diversity values of a whole population. + + + +Definition at line 23 of file moeo\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoDiversityAssignment@{moeo\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoDiversityAssignment@{moeo\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmoeoDiversityAssignment_57f400263b36664df6269f1b522cfdcb} + + +Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implemented in \bf{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoCrowdingDiversityAssignment_ba1d60c8e59fbe2c12e9eef33863f012}, \bf{moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoDummyDiversityAssignment_3382b59e2b8bbdc840dc25463649f1e4}, \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontCrowdingDiversityAssignment_f73ff88bd29c49260e2ca859250e4b68}, \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontSharingDiversityAssignment_623489a246f86cf24cc5860d32caa743}, and \bf{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoSharingDiversityAssignment_21c8d6e020af23b2be219b7e02248300}. + +Referenced by moeo\-Diversity\-Assignment$<$ MOEOT $>$::update\-By\-Deleting().\index{moeoDiversityAssignment@{moeo\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoDiversityAssignment@{moeo\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, MOEOT \& {\em \_\-moeo})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDiversityAssignment_d104002fdd5d81aabe25f95d443ed390} + + +Updates the diversity values of the whole population \_\-pop by taking the deletion of the individual \_\-moeo into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-moeo}]the individual \end{description} +\end{Desc} + + +Definition at line 44 of file moeo\-Diversity\-Assignment.h. + +References moeo\-Diversity\-Assignment$<$ MOEOT $>$::update\-By\-Deleting(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.eps new file mode 100644 index 000000000..2e4daddc8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.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 263.158 +%%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.9 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 +(moeoDiversityThenFitnessComparator< MOEOT >) cw +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoDiversityThenFitnessComparator< MOEOT >) 0 0 box + (moeoComparator< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.tex new file mode 100644 index 000000000..e094536aa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.tex @@ -0,0 +1,49 @@ +\section{moeo\-Diversity\-Then\-Fitness\-Comparator$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoDiversityThenFitnessComparator}\index{moeoDiversityThenFitnessComparator@{moeoDiversityThenFitnessComparator}} +Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. + + +{\tt \#include $<$moeo\-Diversity\-Then\-Fitness\-Comparator.h$>$} + +Inheritance diagram for moeo\-Diversity\-Then\-Fitness\-Comparator$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoDiversityThenFitnessComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 $<$ \_\-moeo2 according to their diversity values, then according to their fitness values. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Diversity\-Then\-Fitness\-Comparator$<$ MOEOT $>$} + +Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. + + + +Definition at line 22 of file moeo\-Diversity\-Then\-Fitness\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoDiversityThenFitnessComparator@{moeo\-Diversity\-Then\-Fitness\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoDiversityThenFitnessComparator@{moeo\-Diversity\-Then\-Fitness\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const bool \bf{moeo\-Diversity\-Then\-Fitness\-Comparator}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDiversityThenFitnessComparator_62620887203d033af92091d838d4b0b6} + + +Returns true if \_\-moeo1 $<$ \_\-moeo2 according to their diversity values, then according to their fitness values. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Diversity\-Then\-Fitness\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Diversity\-Then\-Fitness\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.eps new file mode 100644 index 000000000..f96a71e7a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.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 290.909 +%%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.71875 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 +(moeoDummyDiversityAssignment< MOEOT >) cw +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoDummyDiversityAssignment< MOEOT >) 0 0 box + (moeoDiversityAssignment< MOEOT >) 0 1 box + (eoUF< eoPop< MOEOT > &, void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.tex new file mode 100644 index 000000000..d96ccf59c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.tex @@ -0,0 +1,75 @@ +\section{moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoDummyDiversityAssignment}\index{moeoDummyDiversityAssignment@{moeoDummyDiversityAssignment}} +\doxyref{moeo\-Dummy\-Diversity\-Assignment}{p.}{classmoeoDummyDiversityAssignment} is a \doxyref{moeo\-Diversity\-Assignment}{p.}{classmoeoDiversityAssignment} that gives the value '0' as the individual's diversity for a whole population if it is invalid. + + +{\tt \#include $<$moeo\-Dummy\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoDummyDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoDummyDiversityAssignment_657d87e8f537200392bd7a24649f0294} + +\begin{CompactList}\small\item\em The type for objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the diversity to '0' for every individuals of the population \_\-pop if it is invalid. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Dummy\-Diversity\-Assignment}{p.}{classmoeoDummyDiversityAssignment} is a \doxyref{moeo\-Diversity\-Assignment}{p.}{classmoeoDiversityAssignment} that gives the value '0' as the individual's diversity for a whole population if it is invalid. + + + +Definition at line 22 of file moeo\-Dummy\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoDummyDiversityAssignment@{moeo\-Dummy\-Diversity\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoDummyDiversityAssignment@{moeo\-Dummy\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Dummy\-Diversity\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDummyDiversityAssignment_78c9150d3c586f5324ccbd2faa984ba9} + + +Sets the diversity to '0' for every individuals of the population \_\-pop if it is invalid. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 34 of file moeo\-Dummy\-Diversity\-Assignment.h.\index{moeoDummyDiversityAssignment@{moeo\-Dummy\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoDummyDiversityAssignment@{moeo\-Dummy\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Dummy\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDummyDiversityAssignment_3382b59e2b8bbdc840dc25463649f1e4} + + +Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implements \bf{moeo\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoDiversityAssignment_57f400263b36664df6269f1b522cfdcb}. + +Definition at line 52 of file moeo\-Dummy\-Diversity\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Dummy\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.eps new file mode 100644 index 000000000..5a126222e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.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 301.887 +%%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.65625 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 +(moeoDummyFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoDummyFitnessAssignment< MOEOT >) 0 0 box + (moeoFitnessAssignment< MOEOT >) 0 1 box + (eoUF< eoPop< MOEOT > &, void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.tex new file mode 100644 index 000000000..3f8969533 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.tex @@ -0,0 +1,75 @@ +\section{moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoDummyFitnessAssignment}\index{moeoDummyFitnessAssignment@{moeoDummyFitnessAssignment}} +\doxyref{moeo\-Dummy\-Fitness\-Assignment}{p.}{classmoeoDummyFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} that gives the value '0' as the individual's fitness for a whole population if it is invalid. + + +{\tt \#include $<$moeo\-Dummy\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoDummyFitnessAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoDummyFitnessAssignment_33cc1cd06c4c1d8f1f56602594e0593a} + +\begin{CompactList}\small\item\em The type for objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness to '0' for every individuals of the population \_\-pop if it is invalid. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Dummy\-Fitness\-Assignment}{p.}{classmoeoDummyFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} that gives the value '0' as the individual's fitness for a whole population if it is invalid. + + + +Definition at line 22 of file moeo\-Dummy\-Fitness\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoDummyFitnessAssignment@{moeo\-Dummy\-Fitness\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoDummyFitnessAssignment@{moeo\-Dummy\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Dummy\-Fitness\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDummyFitnessAssignment_03c7c1649ae3c83ef6b3668977c10982} + + +Sets the fitness to '0' for every individuals of the population \_\-pop if it is invalid. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 34 of file moeo\-Dummy\-Fitness\-Assignment.h.\index{moeoDummyFitnessAssignment@{moeo\-Dummy\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoDummyFitnessAssignment@{moeo\-Dummy\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Dummy\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDummyFitnessAssignment_6e87d4a8ff8f43a7001a21a13795d00e} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implements \bf{moeo\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFitnessAssignment_4922629569eddc9be049b3ead1ab0269}. + +Definition at line 52 of file moeo\-Dummy\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Dummy\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEA.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEA.eps new file mode 100644 index 000000000..91075a456 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEA.eps @@ -0,0 +1,235 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 151.515 +%%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.3 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 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 +(moeoEA< MOEOT >) cw +(moeoAlgo) cw +(eoAlgo< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +(moeoEasyEA< MOEOT >) cw +(moeoIBEA< MOEOT >) cw +(moeoNSGA< MOEOT >) cw +(moeoNSGAII< MOEOT >) 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 ----- + + (moeoEA< MOEOT >) 1.5 1 box + (moeoAlgo) 1 2 box + (eoAlgo< MOEOT >) 2 2 box + (eoUF< A1, R >) 2 3 box + (eoFunctorBase) 2 4 box + (moeoEasyEA< MOEOT >) 0 0 box + (moeoIBEA< MOEOT >) 1 0 box + (moeoNSGA< MOEOT >) 2 0 box + (moeoNSGAII< MOEOT >) 3 0 box + +% ----- relations ----- + +solid +0 1.5 1 out +solid +1 2 2 conn +solid +1 1 2 in +solid +1 2 2 in +solid +0 2 2 out +solid +1 2 3 in +solid +0 2 3 out +solid +1 2 4 in +solid +1 1.5 0.25 out +solid +0 3 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in +solid +0 3 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEA.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEA.tex new file mode 100644 index 000000000..c6de2bc08 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEA.tex @@ -0,0 +1,27 @@ +\section{moeo\-EA$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoEA}\index{moeoEA@{moeoEA}} +Abstract class for multi-objective evolutionary algorithms. + + +{\tt \#include $<$moeo\-EA.h$>$} + +Inheritance diagram for moeo\-EA$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4.24242cm]{classmoeoEA} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-EA$<$ MOEOT $>$} + +Abstract class for multi-objective evolutionary algorithms. + + + +Definition at line 23 of file moeo\-EA.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-EA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA.eps new file mode 100644 index 000000000..528189a2d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 303.03 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEasyEA< MOEOT >) cw +(moeoEA< MOEOT >) cw +(moeoAlgo) cw +(eoAlgo< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEasyEA< MOEOT >) 0.5 0 box + (moeoEA< MOEOT >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoAlgo< MOEOT >) 1 2 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA.tex new file mode 100644 index 000000000..4ea751dcc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA.tex @@ -0,0 +1,194 @@ +\section{moeo\-Easy\-EA$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoEasyEA}\index{moeoEasyEA@{moeoEasyEA}} +An easy class to design multi-objective evolutionary algorithms. + + +{\tt \#include $<$moeo\-Easy\-EA.h$>$} + +Inheritance diagram for moeo\-Easy\-EA$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoEasyEA} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Breed}$<$ MOEOT $>$ \&\_\-breed, \bf{moeo\-Replacement}$<$ MOEOT $>$ \&\_\-replace, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Eval, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Eval, bool \_\-eval\-Fit\-And\-Div\-Before\-Selection=false) +\begin{CompactList}\small\item\em Ctor taking a breed and merge. \item\end{CompactList}\item +\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Pop\-Eval\-Func}$<$ MOEOT $>$ \&\_\-pop\-Eval, \bf{eo\-Breed}$<$ MOEOT $>$ \&\_\-breed, \bf{moeo\-Replacement}$<$ MOEOT $>$ \&\_\-replace, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Eval, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Eval, bool \_\-eval\-Fit\-And\-Div\-Before\-Selection=false) +\begin{CompactList}\small\item\em Ctor taking a breed, a merge and a eo\-Pop\-Eval. \item\end{CompactList}\item +\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Breed}$<$ MOEOT $>$ \&\_\-breed, \bf{eo\-Merge}$<$ MOEOT $>$ \&\_\-merge, \bf{eo\-Reduce}$<$ MOEOT $>$ \&\_\-reduce, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Eval, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Eval, bool \_\-eval\-Fit\-And\-Div\-Before\-Selection=false) +\begin{CompactList}\small\item\em Ctor taking a breed, a merge and a reduce. \item\end{CompactList}\item +\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Select}$<$ MOEOT $>$ \&\_\-select, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-transform, \bf{moeo\-Replacement}$<$ MOEOT $>$ \&\_\-replace, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Eval, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Eval, bool \_\-eval\-Fit\-And\-Div\-Before\-Selection=false) +\begin{CompactList}\small\item\em Ctor taking a select, a transform and a replacement. \item\end{CompactList}\item +\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Select}$<$ MOEOT $>$ \&\_\-select, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-transform, \bf{eo\-Merge}$<$ MOEOT $>$ \&\_\-merge, \bf{eo\-Reduce}$<$ MOEOT $>$ \&\_\-reduce, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Eval, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Eval, bool \_\-eval\-Fit\-And\-Div\-Before\-Selection=false) +\begin{CompactList}\small\item\em Ctor taking a select, a transform, a merge and a reduce. \item\end{CompactList}\item +virtual void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Applies a few generation of evolution to the population \_\-pop. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{continuator}\label{classmoeoEasyEA_5f5b76acbaf99a6a3ee2710da07dde29} + +\begin{CompactList}\small\item\em the stopping criteria \item\end{CompactList}\item +\bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& \bf{eval}\label{classmoeoEasyEA_26e8ebce6a1bc3216e20171688ba6b83} + +\begin{CompactList}\small\item\em the evaluation functions \item\end{CompactList}\item +\bf{eo\-Pop\-Loop\-Eval}$<$ MOEOT $>$ \bf{loop\-Eval}\label{classmoeoEasyEA_c1d492090805bf322c07159a9238a7ae} + +\begin{CompactList}\small\item\em to evaluate the whole population \item\end{CompactList}\item +\bf{eo\-Pop\-Eval\-Func}$<$ MOEOT $>$ \& \bf{pop\-Eval}\label{classmoeoEasyEA_189a8f5196844907ff71f386d95bf415} + +\begin{CompactList}\small\item\em to evaluate the whole population \item\end{CompactList}\item +\bf{eo\-Select\-Transform}$<$ MOEOT $>$ \bf{select\-Transform}\label{classmoeoEasyEA_bd69a176f3cacc2694342075a9022f74} + +\begin{CompactList}\small\item\em breed: a select followed by a transform \item\end{CompactList}\item +\bf{eo\-Breed}$<$ MOEOT $>$ \& \bf{breed}\label{classmoeoEasyEA_35d5909694019d1b0d52347c72a9092e} + +\begin{CompactList}\small\item\em the breeder \item\end{CompactList}\item +\bf{eo\-Merge\-Reduce}$<$ MOEOT $>$ \bf{merge\-Reduce}\label{classmoeoEasyEA_15a69654c07b24f9795add0a22f1f856} + +\begin{CompactList}\small\item\em replacement: a merge followed by a reduce \item\end{CompactList}\item +\bf{moeo\-Replacement}$<$ MOEOT $>$ \& \bf{replace}\label{classmoeoEasyEA_91611cf2862c2db953554e367a576244} + +\begin{CompactList}\small\item\em the replacment strategy \item\end{CompactList}\item +\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& \bf{fitness\-Eval}\label{classmoeoEasyEA_1268fc2f0b62fe51bca17d4efb51954b} + +\begin{CompactList}\small\item\em the fitness assignment strategy \item\end{CompactList}\item +\bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& \bf{diversity\-Eval}\label{classmoeoEasyEA_b9d1b3790072dbbbe0012a252bab95f4} + +\begin{CompactList}\small\item\em the diversity assignment strategy \item\end{CompactList}\item +bool \bf{eval\-Fit\-And\-Div\-Before\-Selection}\label{classmoeoEasyEA_856a19d9a7c180fe33ce7a5bb010edcc} + +\begin{CompactList}\small\item\em if this parameter is set to 'true', the fitness and the diversity of the whole population will be re-evaluated before the selection process \item\end{CompactList}\item +\bf{moeo\-Easy\-EA::eo\-Dummy\-Eval} \bf{dummy\-Eval}\label{classmoeoEasyEA_16cbb12cb7de77c6d7d3f7aee9434880} + +\begin{CompactList}\small\item\em a dummy eval \item\end{CompactList}\item +\bf{moeo\-Easy\-EA::eo\-Dummy\-Select} \bf{dummy\-Select}\label{classmoeoEasyEA_fed6522fe0fcea204850dbb89cc7116e} + +\begin{CompactList}\small\item\em a dummy select \item\end{CompactList}\item +\bf{moeo\-Easy\-EA::eo\-Dummy\-Transform} \bf{dummy\-Transform}\label{classmoeoEasyEA_56991f36963ed61e44e91759c891f13c} + +\begin{CompactList}\small\item\em a dummy transform \item\end{CompactList}\item +\bf{eo\-No\-Elitism}$<$ MOEOT $>$ \bf{dummy\-Merge}\label{classmoeoEasyEA_e26830e1301cfd626eed55b0fbf8dbcb} + +\begin{CompactList}\small\item\em a dummy merge \item\end{CompactList}\item +\bf{eo\-Truncate}$<$ MOEOT $>$ \bf{dummy\-Reduce}\label{classmoeoEasyEA_65963f9308ccc0acc3dfc32a128f6228} + +\begin{CompactList}\small\item\em a dummy reduce \item\end{CompactList}\end{CompactItemize} +\subsection*{Classes} +\begin{CompactItemize} +\item +class \bf{eo\-Dummy\-Eval} +\begin{CompactList}\small\item\em a dummy eval \item\end{CompactList}\item +class \bf{eo\-Dummy\-Select} +\begin{CompactList}\small\item\em a dummy select \item\end{CompactList}\item +class \bf{eo\-Dummy\-Transform} +\begin{CompactList}\small\item\em a dummy transform \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Easy\-EA$<$ MOEOT $>$} + +An easy class to design multi-objective evolutionary algorithms. + + + +Definition at line 33 of file moeo\-Easy\-EA.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoEasyEA@{moeo\-Easy\-EA}!moeoEasyEA@{moeoEasyEA}} +\index{moeoEasyEA@{moeoEasyEA}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Breed}$<$ MOEOT $>$ \& {\em \_\-breed}, \bf{moeo\-Replacement}$<$ MOEOT $>$ \& {\em \_\-replace}, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Eval}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Eval}, bool {\em \_\-eval\-Fit\-And\-Div\-Before\-Selection} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEasyEA_3f657699b8ed340ae3f51194206daa20} + + +Ctor taking a breed and merge. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]the stopping criteria \item[{\em \_\-eval}]the evaluation functions \item[{\em \_\-breed}]the breeder \item[{\em \_\-replace}]the replacement strategy \item[{\em \_\-fitness\-Eval}]the fitness evaluation scheme \item[{\em \_\-diversity\-Eval}]the diversity evaluation scheme \item[{\em \_\-eval\-Fit\-And\-Div\-Before\-Selection}]put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process \end{description} +\end{Desc} + + +Definition at line 47 of file moeo\-Easy\-EA.h.\index{moeoEasyEA@{moeo\-Easy\-EA}!moeoEasyEA@{moeoEasyEA}} +\index{moeoEasyEA@{moeoEasyEA}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Pop\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-pop\-Eval}, \bf{eo\-Breed}$<$ MOEOT $>$ \& {\em \_\-breed}, \bf{moeo\-Replacement}$<$ MOEOT $>$ \& {\em \_\-replace}, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Eval}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Eval}, bool {\em \_\-eval\-Fit\-And\-Div\-Before\-Selection} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEasyEA_6cdebc72ce0134ce1680dafdf94740a1} + + +Ctor taking a breed, a merge and a eo\-Pop\-Eval. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]the stopping criteria \item[{\em \_\-pop\-Eval}]the evaluation functions for the whole population \item[{\em \_\-breed}]the breeder \item[{\em \_\-replace}]the replacement strategy \item[{\em \_\-fitness\-Eval}]the fitness evaluation scheme \item[{\em \_\-diversity\-Eval}]the diversity evaluation scheme \item[{\em \_\-eval\-Fit\-And\-Div\-Before\-Selection}]put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process \end{description} +\end{Desc} + + +Definition at line 65 of file moeo\-Easy\-EA.h.\index{moeoEasyEA@{moeo\-Easy\-EA}!moeoEasyEA@{moeoEasyEA}} +\index{moeoEasyEA@{moeoEasyEA}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Breed}$<$ MOEOT $>$ \& {\em \_\-breed}, \bf{eo\-Merge}$<$ MOEOT $>$ \& {\em \_\-merge}, \bf{eo\-Reduce}$<$ MOEOT $>$ \& {\em \_\-reduce}, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Eval}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Eval}, bool {\em \_\-eval\-Fit\-And\-Div\-Before\-Selection} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEasyEA_65c1069eeed979ca433e6caee3b5e942} + + +Ctor taking a breed, a merge and a reduce. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]the stopping criteria \item[{\em \_\-eval}]the evaluation functions \item[{\em \_\-breed}]the breeder \item[{\em \_\-merge}]the merge scheme \item[{\em \_\-reduce}]the reduce scheme \item[{\em \_\-fitness\-Eval}]the fitness evaluation scheme \item[{\em \_\-diversity\-Eval}]the diversity evaluation scheme \item[{\em \_\-eval\-Fit\-And\-Div\-Before\-Selection}]put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process \end{description} +\end{Desc} + + +Definition at line 84 of file moeo\-Easy\-EA.h.\index{moeoEasyEA@{moeo\-Easy\-EA}!moeoEasyEA@{moeoEasyEA}} +\index{moeoEasyEA@{moeoEasyEA}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Select}$<$ MOEOT $>$ \& {\em \_\-select}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-transform}, \bf{moeo\-Replacement}$<$ MOEOT $>$ \& {\em \_\-replace}, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Eval}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Eval}, bool {\em \_\-eval\-Fit\-And\-Div\-Before\-Selection} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEasyEA_27f0db7a608636c904305afa11cd6ae1} + + +Ctor taking a select, a transform and a replacement. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]the stopping criteria \item[{\em \_\-eval}]the evaluation functions \item[{\em \_\-select}]the selection scheme \item[{\em \_\-transform}]the tranformation scheme \item[{\em \_\-replace}]the replacement strategy \item[{\em \_\-fitness\-Eval}]the fitness evaluation scheme \item[{\em \_\-diversity\-Eval}]the diversity evaluation scheme \item[{\em \_\-eval\-Fit\-And\-Div\-Before\-Selection}]put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process \end{description} +\end{Desc} + + +Definition at line 103 of file moeo\-Easy\-EA.h.\index{moeoEasyEA@{moeo\-Easy\-EA}!moeoEasyEA@{moeoEasyEA}} +\index{moeoEasyEA@{moeoEasyEA}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Select}$<$ MOEOT $>$ \& {\em \_\-select}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-transform}, \bf{eo\-Merge}$<$ MOEOT $>$ \& {\em \_\-merge}, \bf{eo\-Reduce}$<$ MOEOT $>$ \& {\em \_\-reduce}, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Eval}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Eval}, bool {\em \_\-eval\-Fit\-And\-Div\-Before\-Selection} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEasyEA_564a3291a8239515328cf0a6b40f3c99} + + +Ctor taking a select, a transform, a merge and a reduce. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]the stopping criteria \item[{\em \_\-eval}]the evaluation functions \item[{\em \_\-select}]the selection scheme \item[{\em \_\-transform}]the tranformation scheme \item[{\em \_\-merge}]the merge scheme \item[{\em \_\-reduce}]the reduce scheme \item[{\em \_\-fitness\-Eval}]the fitness evaluation scheme \item[{\em \_\-diversity\-Eval}]the diversity evaluation scheme \item[{\em \_\-eval\-Fit\-And\-Div\-Before\-Selection}]put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process \end{description} +\end{Desc} + + +Definition at line 123 of file moeo\-Easy\-EA.h. + +\subsection{Member Function Documentation} +\index{moeoEasyEA@{moeo\-Easy\-EA}!operator()@{operator()}} +\index{operator()@{operator()}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoEasyEA_f18e8fd179fbb2b89f4a59d213317170} + + +Applies a few generation of evolution to the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 135 of file moeo\-Easy\-EA.h. + +References moeo\-Easy\-EA$<$ MOEOT $>$::breed, moeo\-Easy\-EA$<$ MOEOT $>$::continuator, moeo\-Easy\-EA$<$ MOEOT $>$::diversity\-Eval, moeo\-Easy\-EA$<$ MOEOT $>$::eval\-Fit\-And\-Div\-Before\-Selection, moeo\-Easy\-EA$<$ MOEOT $>$::fitness\-Eval, moeo\-Easy\-EA$<$ MOEOT $>$::pop\-Eval, and moeo\-Easy\-EA$<$ MOEOT $>$::replace. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Easy\-EA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.eps new file mode 100644 index 000000000..6887abc95 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.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 318.725 +%%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.56875 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 +(moeoEasyEA< MOEOT >::eoDummyEval) cw +(eoEvalFunc< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEasyEA< MOEOT >::eoDummyEval) 0 0 box + (eoEvalFunc< MOEOT >) 0 1 box + (eoUF< A1, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.tex new file mode 100644 index 000000000..a29cf04b9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.tex @@ -0,0 +1,33 @@ +\section{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Eval Class Reference} +\label{classmoeoEasyEA_1_1eoDummyEval}\index{moeoEasyEA::eoDummyEval@{moeoEasyEA::eoDummyEval}} +a dummy eval + + +{\tt \#include $<$moeo\-Easy\-EA.h$>$} + +Inheritance diagram for moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Eval::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoEasyEA_1_1eoDummyEval} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (MOEOT \&)\label{classmoeoEasyEA_1_1eoDummyEval_1ed55869451f883db2fc43c60f7caff5} + +\begin{CompactList}\small\item\em the dummy functor \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Eval} + +a dummy eval + + + +Definition at line 200 of file moeo\-Easy\-EA.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Easy\-EA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.eps new file mode 100644 index 000000000..d9db8ba09 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.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 306.513 +%%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.63125 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 +(moeoEasyEA< MOEOT >::eoDummySelect) cw +(eoSelect< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoEasyEA< MOEOT >::eoDummySelect) 0 0 box + (eoSelect< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.tex new file mode 100644 index 000000000..50599fe9b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.tex @@ -0,0 +1,33 @@ +\section{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Select Class Reference} +\label{classmoeoEasyEA_1_1eoDummySelect}\index{moeoEasyEA::eoDummySelect@{moeoEasyEA::eoDummySelect}} +a dummy select + + +{\tt \#include $<$moeo\-Easy\-EA.h$>$} + +Inheritance diagram for moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Select::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoEasyEA_1_1eoDummySelect} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&, \bf{eo\-Pop}$<$ MOEOT $>$ \&)\label{classmoeoEasyEA_1_1eoDummySelect_32207d2ed997aa90ba9f32f5625b63d6} + +\begin{CompactList}\small\item\em the dummy functor \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Select} + +a dummy select + + + +Definition at line 204 of file moeo\-Easy\-EA.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Easy\-EA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.eps new file mode 100644 index 000000000..35dbc762b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.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 282.686 +%%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.76875 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 +(moeoEasyEA< MOEOT >::eoDummyTransform) cw +(eoTransform< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEasyEA< MOEOT >::eoDummyTransform) 0 0 box + (eoTransform< MOEOT >) 0 1 box + (eoUF< A1, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.tex new file mode 100644 index 000000000..495ae6b6c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.tex @@ -0,0 +1,33 @@ +\section{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Transform Class Reference} +\label{classmoeoEasyEA_1_1eoDummyTransform}\index{moeoEasyEA::eoDummyTransform@{moeoEasyEA::eoDummyTransform}} +a dummy transform + + +{\tt \#include $<$moeo\-Easy\-EA.h$>$} + +Inheritance diagram for moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Transform::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoEasyEA_1_1eoDummyTransform} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&)\label{classmoeoEasyEA_1_1eoDummyTransform_0e153e482291a7f19f7f7a02505fb432} + +\begin{CompactList}\small\item\em the dummy functor \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Transform} + +a dummy transform + + + +Definition at line 208 of file moeo\-Easy\-EA.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Easy\-EA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.eps new file mode 100644 index 000000000..afafe9024 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.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 452.489 +%%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.105 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoElitistReplacement< MOEOT >) cw +(moeoReplacement< MOEOT >) cw +(eoReplacement< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoElitistReplacement< MOEOT >) 0 0 box + (moeoReplacement< MOEOT >) 0 1 box + (eoReplacement< MOEOT >) 0 2 box + (eoBF< A1, A2, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.tex new file mode 100644 index 000000000..7b71765f9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.tex @@ -0,0 +1,141 @@ +\section{moeo\-Elitist\-Replacement$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoElitistReplacement}\index{moeoElitistReplacement@{moeoElitistReplacement}} +Elitist replacement strategy that consists in keeping the N best individuals. + + +{\tt \#include $<$moeo\-Elitist\-Replacement.h$>$} + +Inheritance diagram for moeo\-Elitist\-Replacement$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoElitistReplacement} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Assignment, \bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Full constructor. \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Assignment) +\begin{CompactList}\small\item\em Constructor without comparator. \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Constructor without moeo\-Diversity\-Assignement. \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment) +\begin{CompactList}\small\item\em Constructor without moeo\-Diversity\-Assignement nor \doxyref{moeo\-Comparator}{p.}{classmoeoComparator}. \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-parents, \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-offspring) +\begin{CompactList}\small\item\em Replaces the first population by adding the individuals of the second one, sorting with a \doxyref{moeo\-Comparator}{p.}{classmoeoComparator} and resizing the whole population obtained. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& \bf{fitness\-Assignment}\label{classmoeoElitistReplacement_ba390ae799848417dc41d0e71b010425} + +\begin{CompactList}\small\item\em the fitness assignment strategy \item\end{CompactList}\item +\bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& \bf{diversity\-Assignment}\label{classmoeoElitistReplacement_7dff2c8d871e87a2ba326b69fd0c48d9} + +\begin{CompactList}\small\item\em the diversity assignment strategy \item\end{CompactList}\item +\bf{moeo\-Dummy\-Diversity\-Assignment}$<$ MOEOT $>$ \bf{default\-Diversity}\label{classmoeoElitistReplacement_0a88fa6ae1cba0eb041b804f86e31ab2} + +\begin{CompactList}\small\item\em a dummy diversity assignment can be used as default \item\end{CompactList}\item +\bf{moeo\-Fitness\-Then\-Diversity\-Comparator}$<$ MOEOT $>$ \bf{default\-Comparator}\label{classmoeoElitistReplacement_e4b10eae9d1b048525737fbe47e34215} + +\begin{CompactList}\small\item\em a fitness then diversity comparator can be used as default \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement::Cmp} \bf{comparator}\label{classmoeoElitistReplacement_4ef0a67b6f52c7238449522f4773ad60} + +\begin{CompactList}\small\item\em this object is used to compare solutions in order to sort the population \item\end{CompactList}\end{CompactItemize} +\subsection*{Classes} +\begin{CompactItemize} +\item +class \bf{Cmp} +\begin{CompactList}\small\item\em this object is used to compare solutions in order to sort the population \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Elitist\-Replacement$<$ MOEOT $>$} + +Elitist replacement strategy that consists in keeping the N best individuals. + + + +Definition at line 26 of file moeo\-Elitist\-Replacement.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoElitistReplacement@{moeo\-Elitist\-Replacement}!moeoElitistReplacement@{moeoElitistReplacement}} +\index{moeoElitistReplacement@{moeoElitistReplacement}!moeoElitistReplacement@{moeo\-Elitist\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Assignment}, \bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_1d91980f3f800833c8e9452cb450ae3e} + + +Full constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-diversity\-Assignment}]the diversity assignment strategy \item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \end{description} +\end{Desc} + + +Definition at line 36 of file moeo\-Elitist\-Replacement.h.\index{moeoElitistReplacement@{moeo\-Elitist\-Replacement}!moeoElitistReplacement@{moeoElitistReplacement}} +\index{moeoElitistReplacement@{moeoElitistReplacement}!moeoElitistReplacement@{moeo\-Elitist\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Assignment})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_d7122be0519207c7496852284ed24514} + + +Constructor without comparator. + +A moeo\-Fit\-Then\-Div\-Comparator is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-diversity\-Assignment}]the diversity assignment strategy \end{description} +\end{Desc} + + +Definition at line 46 of file moeo\-Elitist\-Replacement.h.\index{moeoElitistReplacement@{moeo\-Elitist\-Replacement}!moeoElitistReplacement@{moeoElitistReplacement}} +\index{moeoElitistReplacement@{moeoElitistReplacement}!moeoElitistReplacement@{moeo\-Elitist\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_81b7b8e0cac6cbed36e47688adf1466c} + + +Constructor without moeo\-Diversity\-Assignement. + +A dummy diversity is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \end{description} +\end{Desc} + + +Definition at line 56 of file moeo\-Elitist\-Replacement.h.\index{moeoElitistReplacement@{moeo\-Elitist\-Replacement}!moeoElitistReplacement@{moeoElitistReplacement}} +\index{moeoElitistReplacement@{moeoElitistReplacement}!moeoElitistReplacement@{moeo\-Elitist\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_2ef7c199d779d473a9d35cee21556794} + + +Constructor without moeo\-Diversity\-Assignement nor \doxyref{moeo\-Comparator}{p.}{classmoeoComparator}. + +A moeo\-Fit\-Then\-Div\-Comparator and a dummy diversity are used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \end{description} +\end{Desc} + + +Definition at line 66 of file moeo\-Elitist\-Replacement.h. + +\subsection{Member Function Documentation} +\index{moeoElitistReplacement@{moeo\-Elitist\-Replacement}!operator()@{operator()}} +\index{operator()@{operator()}!moeoElitistReplacement@{moeo\-Elitist\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-parents}, \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-offspring})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_0364c6ef9d16f7eb65caa9edfce69006} + + +Replaces the first population by adding the individuals of the second one, sorting with a \doxyref{moeo\-Comparator}{p.}{classmoeoComparator} and resizing the whole population obtained. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-parents}]the population composed of the parents (the population you want to replace) \item[{\em \_\-offspring}]the offspring population \end{description} +\end{Desc} + + +Definition at line 76 of file moeo\-Elitist\-Replacement.h. + +References moeo\-Elitist\-Replacement$<$ MOEOT $>$::comparator, moeo\-Elitist\-Replacement$<$ MOEOT $>$::diversity\-Assignment, and moeo\-Elitist\-Replacement$<$ MOEOT $>$::fitness\-Assignment. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Elitist\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement_1_1Cmp.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement_1_1Cmp.tex new file mode 100644 index 000000000..e3d9c7dec --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoElitistReplacement_1_1Cmp.tex @@ -0,0 +1,52 @@ +\section{moeo\-Elitist\-Replacement$<$ MOEOT $>$::Cmp Class Reference} +\label{classmoeoElitistReplacement_1_1Cmp}\index{moeoElitistReplacement::Cmp@{moeoElitistReplacement::Cmp}} +this object is used to compare solutions in order to sort the population + + +{\tt \#include $<$moeo\-Elitist\-Replacement.h$>$} + +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{Cmp} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comp) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2)\label{classmoeoElitistReplacement_1_1Cmp_2411b927dde02225114635e776ce863f} + +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 is greater than \_\-moeo2 according to the comparator \_\-moeo1 the first individual \_\-moeo2 the first individual. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Comparator}$<$ MOEOT $>$ \& \bf{comp}\label{classmoeoElitistReplacement_1_1Cmp_c7c0d0839bcbe86455d9f1064884219a} + +\begin{CompactList}\small\item\em the comparator \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Elitist\-Replacement$<$ MOEOT $>$::Cmp} + +this object is used to compare solutions in order to sort the population + + + +Definition at line 105 of file moeo\-Elitist\-Replacement.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoElitistReplacement::Cmp@{moeo\-Elitist\-Replacement::Cmp}!Cmp@{Cmp}} +\index{Cmp@{Cmp}!moeoElitistReplacement::Cmp@{moeo\-Elitist\-Replacement::Cmp}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::Cmp::Cmp (\bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comp})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_1_1Cmp_c9f21fe0df172dc601a13d6531c5ffd9} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comp}]the comparator \end{description} +\end{Desc} + + +Definition at line 112 of file moeo\-Elitist\-Replacement.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Elitist\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.eps new file mode 100644 index 000000000..07195f6e5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.626 +%%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.77 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEntropyMetric< ObjectiveVector >) cw +(moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEntropyMetric< ObjectiveVector >) 0.5 0 box + (moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) 0.5 1 box + (moeoBinaryMetric< A1, A2, R >) 0.5 2 box + (eoBF< A1, A2, R >) 0 3 box + (moeoMetric) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.tex new file mode 100644 index 000000000..eaf9016ca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.tex @@ -0,0 +1,152 @@ +\section{moeo\-Entropy\-Metric$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoEntropyMetric}\index{moeoEntropyMetric@{moeoEntropyMetric}} +The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. + + +{\tt \#include $<$moeo\-Entropy\-Metric.h$>$} + +Inheritance diagram for moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.71353cm]{classmoeoEntropyMetric} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +double \bf{operator()} (const std::vector$<$ Objective\-Vector $>$ \&\_\-set1, const std::vector$<$ Objective\-Vector $>$ \&\_\-set2) +\begin{CompactList}\small\item\em Returns the entropy of the Pareto set '\_\-set1' relatively to the Pareto set '\_\-set2'. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +void \bf{remove\-Dominated} (std::vector$<$ Objective\-Vector $>$ \&\_\-f) +\begin{CompactList}\small\item\em Removes the dominated individuals contained in \_\-f. \item\end{CompactList}\item +void \bf{prenormalize} (const std::vector$<$ Objective\-Vector $>$ \&\_\-f) +\begin{CompactList}\small\item\em Prenormalization. \item\end{CompactList}\item +void \bf{normalize} (std::vector$<$ Objective\-Vector $>$ \&\_\-f) +\begin{CompactList}\small\item\em Normalization. \item\end{CompactList}\item +void \bf{compute\-Union} (const std::vector$<$ Objective\-Vector $>$ \&\_\-f1, const std::vector$<$ Objective\-Vector $>$ \&\_\-f2, std::vector$<$ Objective\-Vector $>$ \&\_\-f) +\begin{CompactList}\small\item\em Computation of the union of \_\-f1 and \_\-f2 in \_\-f. \item\end{CompactList}\item +unsigned int \bf{how\-Many\-In\-Niche\-Of} (const std::vector$<$ Objective\-Vector $>$ \&\_\-f, const Objective\-Vector \&\_\-s, unsigned int \_\-size)\label{classmoeoEntropyMetric_7977dac672bd6e2e1dfff8cf7954c180} + +\begin{CompactList}\small\item\em How many in niche. \item\end{CompactList}\item +double \bf{euclidian\-Distance} (const Objective\-Vector \&\_\-set1, const Objective\-Vector \&\_\-to, unsigned int \_\-deg=2)\label{classmoeoEntropyMetric_4716a673498a0681fb78414e390824a3} + +\begin{CompactList}\small\item\em Euclidian distance. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +std::vector$<$ double $>$ \bf{vect\_\-min\_\-val}\label{classmoeoEntropyMetric_e423d7d4416ef371ce7b0fd24c3212f8} + +\begin{CompactList}\small\item\em vector of min values \item\end{CompactList}\item +std::vector$<$ double $>$ \bf{vect\_\-max\_\-val}\label{classmoeoEntropyMetric_f5fad6d144520fd1403f774f98b18b99} + +\begin{CompactList}\small\item\em vector of max values \item\end{CompactList}\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$ \bf{pareto\-Comparator}\label{classmoeoEntropyMetric_227ce550253c35957300c6e11730c847} + +\begin{CompactList}\small\item\em Functor to compare two objective vectors according to Pareto dominance relation. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Entropy\-Metric$<$ Objective\-Vector $>$} + +The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. + +of the 2002 Congress on Evolutionary Computation, IEEE Press, pp. 1155-1156) + + + +Definition at line 25 of file moeo\-Entropy\-Metric.h. + +\subsection{Member Function Documentation} +\index{moeoEntropyMetric@{moeo\-Entropy\-Metric}!operator()@{operator()}} +\index{operator()@{operator()}!moeoEntropyMetric@{moeo\-Entropy\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Entropy\-Metric}$<$ Objective\-Vector $>$::operator() (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEntropyMetric_191a8cdda7873e20338e678c5a7b927b} + + +Returns the entropy of the Pareto set '\_\-set1' relatively to the Pareto set '\_\-set2'. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-set1}]the first Pareto set \item[{\em \_\-set2}]the second Pareto set \end{description} +\end{Desc} + + +Definition at line 34 of file moeo\-Entropy\-Metric.h. + +References moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::compute\-Union(), moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::how\-Many\-In\-Niche\-Of(), moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::normalize(), moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::prenormalize(), and moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::remove\-Dominated().\index{moeoEntropyMetric@{moeo\-Entropy\-Metric}!removeDominated@{removeDominated}} +\index{removeDominated@{removeDominated}!moeoEntropyMetric@{moeo\-Entropy\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ void \bf{moeo\-Entropy\-Metric}$<$ Objective\-Vector $>$::remove\-Dominated (std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoEntropyMetric_198a717fd0bab0bb91346399c1021f82} + + +Removes the dominated individuals contained in \_\-f. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-f}]a Pareto set \end{description} +\end{Desc} + + +Definition at line 85 of file moeo\-Entropy\-Metric.h. + +References moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::pareto\-Comparator. + +Referenced by moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::operator()().\index{moeoEntropyMetric@{moeo\-Entropy\-Metric}!prenormalize@{prenormalize}} +\index{prenormalize@{prenormalize}!moeoEntropyMetric@{moeo\-Entropy\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ void \bf{moeo\-Entropy\-Metric}$<$ Objective\-Vector $>$::prenormalize (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoEntropyMetric_51dd04bdd0ac6315f4f5956fb726cec1} + + +Prenormalization. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-f}]a Pareto set \end{description} +\end{Desc} + + +Definition at line 107 of file moeo\-Entropy\-Metric.h. + +References moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::vect\_\-max\_\-val, and moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::vect\_\-min\_\-val. + +Referenced by moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::operator()().\index{moeoEntropyMetric@{moeo\-Entropy\-Metric}!normalize@{normalize}} +\index{normalize@{normalize}!moeoEntropyMetric@{moeo\-Entropy\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ void \bf{moeo\-Entropy\-Metric}$<$ Objective\-Vector $>$::normalize (std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoEntropyMetric_2ed5771c3c611634b415f4be48cad172} + + +Normalization. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-f}]a Pareto set \end{description} +\end{Desc} + + +Definition at line 129 of file moeo\-Entropy\-Metric.h. + +References moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::vect\_\-max\_\-val, and moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::vect\_\-min\_\-val. + +Referenced by moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::operator()().\index{moeoEntropyMetric@{moeo\-Entropy\-Metric}!computeUnion@{computeUnion}} +\index{computeUnion@{computeUnion}!moeoEntropyMetric@{moeo\-Entropy\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ void \bf{moeo\-Entropy\-Metric}$<$ Objective\-Vector $>$::compute\-Union (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f2}, std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoEntropyMetric_4b99c1842d780a89bda08e99a59e3e29} + + +Computation of the union of \_\-f1 and \_\-f2 in \_\-f. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-f1}]the first Pareto set \item[{\em \_\-f2}]the second Pareto set \item[{\em \_\-f}]the final Pareto set \end{description} +\end{Desc} + + +Definition at line 142 of file moeo\-Entropy\-Metric.h. + +Referenced by moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Entropy\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.eps new file mode 100644 index 000000000..06f562ea4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.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 367.647 +%%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.36 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEnvironmentalReplacement< MOEOT >) cw +(moeoReplacement< MOEOT >) cw +(eoReplacement< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoEnvironmentalReplacement< MOEOT >) 0 0 box + (moeoReplacement< MOEOT >) 0 1 box + (eoReplacement< MOEOT >) 0 2 box + (eoBF< A1, A2, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.tex new file mode 100644 index 000000000..4b64e667d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.tex @@ -0,0 +1,147 @@ +\section{moeo\-Environmental\-Replacement$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoEnvironmentalReplacement}\index{moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}} +Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. + + +{\tt \#include $<$moeo\-Environmental\-Replacement.h$>$} + +Inheritance diagram for moeo\-Environmental\-Replacement$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoEnvironmentalReplacement} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoEnvironmentalReplacement_ef38fb9b1ab23ddd2c558639e19f4821} + +\begin{CompactList}\small\item\em The type for objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Assignment, \bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Full constructor. \item\end{CompactList}\item +\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Assignment) +\begin{CompactList}\small\item\em Constructor without comparator. \item\end{CompactList}\item +\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Constructor without moeo\-Diversity\-Assignement. \item\end{CompactList}\item +\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment) +\begin{CompactList}\small\item\em Constructor without moeo\-Diversity\-Assignement nor \doxyref{moeo\-Comparator}{p.}{classmoeoComparator}. \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-parents, \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-offspring) +\begin{CompactList}\small\item\em Replaces the first population by adding the individuals of the second one, sorting with a \doxyref{moeo\-Comparator}{p.}{classmoeoComparator} and resizing the whole population obtained. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& \bf{fitness\-Assignment}\label{classmoeoEnvironmentalReplacement_4b7bc138b17ad5381355c0481bc9c669} + +\begin{CompactList}\small\item\em the fitness assignment strategy \item\end{CompactList}\item +\bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& \bf{diversity\-Assignment}\label{classmoeoEnvironmentalReplacement_e2453bd96c9a490f7de21f9ce22fdff9} + +\begin{CompactList}\small\item\em the diversity assignment strategy \item\end{CompactList}\item +\bf{moeo\-Dummy\-Diversity\-Assignment}$<$ MOEOT $>$ \bf{default\-Diversity}\label{classmoeoEnvironmentalReplacement_7f546704db3225ee1c40439beff5f618} + +\begin{CompactList}\small\item\em a dummy diversity assignment can be used as default \item\end{CompactList}\item +\bf{moeo\-Fitness\-Then\-Diversity\-Comparator}$<$ MOEOT $>$ \bf{default\-Comparator}\label{classmoeoEnvironmentalReplacement_b7f4ce8d3ecf2d18e8c48982875760bb} + +\begin{CompactList}\small\item\em a fitness then diversity comparator can be used as default \item\end{CompactList}\item +\bf{moeo\-Environmental\-Replacement::Cmp} \bf{comparator}\label{classmoeoEnvironmentalReplacement_e3a9d75b9e6603aba4a04fb8062db0a4} + +\begin{CompactList}\small\item\em this object is used to compare solutions in order to sort the population \item\end{CompactList}\end{CompactItemize} +\subsection*{Classes} +\begin{CompactItemize} +\item +class \bf{Cmp} +\begin{CompactList}\small\item\em this object is used to compare solutions in order to sort the population \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Environmental\-Replacement$<$ MOEOT $>$} + +Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. + + + +Definition at line 26 of file moeo\-Environmental\-Replacement.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}!moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}} +\index{moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}!moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Assignment}, \bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_de6e8f546a4583f1eee31366f7099c38} + + +Full constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-diversity\-Assignment}]the diversity assignment strategy \item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \end{description} +\end{Desc} + + +Definition at line 40 of file moeo\-Environmental\-Replacement.h.\index{moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}!moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}} +\index{moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}!moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Assignment})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_9199a29cf89cd6b01bb9be304f344940} + + +Constructor without comparator. + +A moeo\-Fit\-Then\-Div\-Comparator is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-diversity\-Assignment}]the diversity assignment strategy \end{description} +\end{Desc} + + +Definition at line 50 of file moeo\-Environmental\-Replacement.h.\index{moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}!moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}} +\index{moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}!moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_7512641b5d58c96a148a75fd4dc95bf7} + + +Constructor without moeo\-Diversity\-Assignement. + +A dummy diversity is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \end{description} +\end{Desc} + + +Definition at line 60 of file moeo\-Environmental\-Replacement.h.\index{moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}!moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}} +\index{moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}!moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_2dfa5d51660039b4f90196e7885ed586} + + +Constructor without moeo\-Diversity\-Assignement nor \doxyref{moeo\-Comparator}{p.}{classmoeoComparator}. + +A moeo\-Fit\-Then\-Div\-Comparator and a dummy diversity are used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \end{description} +\end{Desc} + + +Definition at line 70 of file moeo\-Environmental\-Replacement.h. + +\subsection{Member Function Documentation} +\index{moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}!operator()@{operator()}} +\index{operator()@{operator()}!moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-parents}, \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-offspring})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_55acfca7f9dd9e3d75cef7c9015dc037} + + +Replaces the first population by adding the individuals of the second one, sorting with a \doxyref{moeo\-Comparator}{p.}{classmoeoComparator} and resizing the whole population obtained. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-parents}]the population composed of the parents (the population you want to replace) \item[{\em \_\-offspring}]the offspring population \end{description} +\end{Desc} + + +Definition at line 80 of file moeo\-Environmental\-Replacement.h. + +References moeo\-Environmental\-Replacement$<$ MOEOT $>$::comparator, moeo\-Environmental\-Replacement$<$ MOEOT $>$::diversity\-Assignment, and moeo\-Environmental\-Replacement$<$ MOEOT $>$::fitness\-Assignment. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Environmental\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement_1_1Cmp.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement_1_1Cmp.tex new file mode 100644 index 000000000..9d597aa51 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement_1_1Cmp.tex @@ -0,0 +1,52 @@ +\section{moeo\-Environmental\-Replacement$<$ MOEOT $>$::Cmp Class Reference} +\label{classmoeoEnvironmentalReplacement_1_1Cmp}\index{moeoEnvironmentalReplacement::Cmp@{moeoEnvironmentalReplacement::Cmp}} +this object is used to compare solutions in order to sort the population + + +{\tt \#include $<$moeo\-Environmental\-Replacement.h$>$} + +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{Cmp} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comp) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2)\label{classmoeoEnvironmentalReplacement_1_1Cmp_b006918d5d6fc1f87fb9ed585946595a} + +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 is greater than \_\-moeo2 according to the comparator \_\-moeo1 the first individual \_\-moeo2 the first individual. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Comparator}$<$ MOEOT $>$ \& \bf{comp}\label{classmoeoEnvironmentalReplacement_1_1Cmp_5c345292ee3ec6b8f7b79dafe3ac2c81} + +\begin{CompactList}\small\item\em the comparator \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Environmental\-Replacement$<$ MOEOT $>$::Cmp} + +this object is used to compare solutions in order to sort the population + + + +Definition at line 121 of file moeo\-Environmental\-Replacement.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoEnvironmentalReplacement::Cmp@{moeo\-Environmental\-Replacement::Cmp}!Cmp@{Cmp}} +\index{Cmp@{Cmp}!moeoEnvironmentalReplacement::Cmp@{moeo\-Environmental\-Replacement::Cmp}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::Cmp::Cmp (\bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comp})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_1_1Cmp_efd55b365f306715f1a871b50d479f38} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comp}]the comparator \end{description} +\end{Desc} + + +Definition at line 128 of file moeo\-Environmental\-Replacement.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Environmental\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.eps new file mode 100644 index 000000000..298825456 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.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 431.034 +%%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.16 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEuclideanDistance< MOEOT >) cw +(moeoNormalizedDistance< MOEOT >) cw +(moeoDistance< MOEOT, double >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoEuclideanDistance< MOEOT >) 0 0 box + (moeoNormalizedDistance< MOEOT >) 0 1 box + (moeoDistance< MOEOT, double >) 0 2 box + (eoBF< A1, A2, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.tex new file mode 100644 index 000000000..19ed853ed --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.tex @@ -0,0 +1,59 @@ +\section{moeo\-Euclidean\-Distance$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoEuclideanDistance}\index{moeoEuclideanDistance@{moeoEuclideanDistance}} +A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. + + +{\tt \#include $<$moeo\-Euclidean\-Distance.h$>$} + +Inheritance diagram for moeo\-Euclidean\-Distance$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoEuclideanDistance} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoEuclideanDistance_d75b1b8695b3eb16f9574496b5822daa} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const double \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns the euclidian distance between \_\-moeo1 and \_\-moeo2 in the objective space. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Euclidean\-Distance$<$ MOEOT $>$} + +A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. + +between 0 and 1). A distance value then lies between 0 and sqrt(n\-Objectives). + + + +Definition at line 24 of file moeo\-Euclidean\-Distance.h. + +\subsection{Member Function Documentation} +\index{moeoEuclideanDistance@{moeo\-Euclidean\-Distance}!operator()@{operator()}} +\index{operator()@{operator()}!moeoEuclideanDistance@{moeo\-Euclidean\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const double \bf{moeo\-Euclidean\-Distance}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEuclideanDistance_20ff559e95da92a46990eb0658f018f1} + + +Returns the euclidian distance between \_\-moeo1 and \_\-moeo2 in the objective space. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Euclidean\-Distance.h. + +References moeo\-Normalized\-Distance$<$ MOEOT $>$::bounds. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Euclidean\-Distance.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEvalFunc.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEvalFunc.eps new file mode 100644 index 000000000..0a42e820d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEvalFunc.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 459.77 +%%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.0875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEvalFunc< MOEOT >) cw +(eoEvalFunc< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEvalFunc< MOEOT >) 0 0 box + (eoEvalFunc< MOEOT >) 0 1 box + (eoUF< A1, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEvalFunc.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEvalFunc.tex new file mode 100644 index 000000000..a935b8a71 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoEvalFunc.tex @@ -0,0 +1,22 @@ +\section{moeo\-Eval\-Func$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoEvalFunc}\index{moeoEvalFunc@{moeoEvalFunc}} +Inheritance diagram for moeo\-Eval\-Func$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoEvalFunc} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Eval\-Func$<$ MOEOT $>$} + + + + + +Definition at line 22 of file moeo\-Eval\-Func.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Eval\-Func.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.eps new file mode 100644 index 000000000..15d7d9454 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 327.869 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.525 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 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 +(moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 0 box + (moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoIndicatorBasedFitnessAssignment< MOEOT >) 0 2 box + (moeoFitnessAssignment< MOEOT >) 0 3 box + (eoUF< eoPop< MOEOT > &, void >) 0 4 box + (eoFunctorBase) 0 5 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +0 0 4 out +solid +1 0 5 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.tex new file mode 100644 index 000000000..34fe9b788 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.tex @@ -0,0 +1,213 @@ +\section{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment}\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeoExpBinaryIndicatorBasedFitnessAssignment}} +Fitness assignment sheme based on an indicator proposed in: E. + + +{\tt \#include $<$moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=6cm]{classmoeoExpBinaryIndicatorBasedFitnessAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_e519691e807af18ea11b7d8c17d2b9b4} + +\begin{CompactList}\small\item\em The type of objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment} (\bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for every solution contained in the population \_\-pop. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\item +double \bf{update\-By\-Adding} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the adding of the objective vector \_\-obj\-Vec into account and returns the fitness value of \_\-obj\-Vec. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Member Functions} +\begin{CompactItemize} +\item +void \bf{setup} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the bounds for every objective using the min and the max value for every objective vector of \_\-pop. \item\end{CompactList}\item +void \bf{compute\-Values} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Compute every indicator value in values (values[i] = I(\_\-v[i], \_\-o)). \item\end{CompactList}\item +void \bf{set\-Fitnesses} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness value of the whple population. \item\end{CompactList}\item +double \bf{compute\-Fitness} (const unsigned int \_\-idx) +\begin{CompactList}\small\item\em Returns the fitness value of the \_\-idx th individual of the population. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& \bf{metric}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_98008d8346524381bee9c26a2e600f24} + +\begin{CompactList}\small\item\em the quality indicator \item\end{CompactList}\item +double \bf{kappa}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_22d049e40f87f505259b69e7a55a8339} + +\begin{CompactList}\small\item\em the scaling factor \item\end{CompactList}\item +std::vector$<$ std::vector$<$ double $>$ $>$ \bf{values}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_872dc1802f45c8ed0a93d5ee6b1e4d2a} + +\begin{CompactList}\small\item\em the computed indicator values \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +Fitness assignment sheme based on an indicator proposed in: E. + +Zitzler, S. K\~{A}¼nzli, \char`\"{}Indicator-Based Selection in Multiobjective Search\char`\"{}, Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This strategy is, for instance, used in IBEA. + + + +Definition at line 29 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeoExpBinaryIndicatorBasedFitnessAssignment}} +\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeoExpBinaryIndicatorBasedFitnessAssignment}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment} (\bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_226214378bbf6ebc7fea813a62a5c66e} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-metric}]the quality indicator \item[{\em \_\-kappa}]the scaling factor \end{description} +\end{Desc} + + +Definition at line 42 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_fde913bb1d456edd82d4a2d000f705ae} + + +Sets the fitness values for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 50 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::compute\-Values(), moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::set\-Fitnesses(), and moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::setup().\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_1ad61bf146d3b24b41ef0575360f664b} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implements \bf{moeo\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFitnessAssignment_4922629569eddc9be049b3ead1ab0269}. + +Definition at line 66 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::kappa, and moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::metric.\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!updateByAdding@{updateByAdding}} +\index{updateByAdding@{updateByAdding}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ double \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Adding (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_f94d9d4dee8dde20cda67e84643aae50} + + +Updates the fitness values of the whole population \_\-pop by taking the adding of the objective vector \_\-obj\-Vec into account and returns the fitness value of \_\-obj\-Vec. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Definition at line 87 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::kappa, and moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::metric.\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!setup@{setup}} +\index{setup@{setup}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::setup (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_ebdbaaf036ca944319b9f8706602382f} + + +Sets the bounds for every objective using the min and the max value for every objective vector of \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 130 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::metric, and moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$::setup(). + +Referenced by moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::operator()().\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!computeValues@{computeValues}} +\index{computeValues@{computeValues}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::compute\-Values (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_20cf29102b848f7ce342dbbb17e9636b} + + +Compute every indicator value in values (values[i] = I(\_\-v[i], \_\-o)). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 152 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::metric, and moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::values. + +Referenced by moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::operator()().\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!setFitnesses@{setFitnesses}} +\index{setFitnesses@{setFitnesses}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::set\-Fitnesses (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_063741218c8aa82f53845f9230cb0693} + + +Sets the fitness value of the whple population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 174 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::compute\-Fitness(). + +Referenced by moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::operator()().\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!computeFitness@{computeFitness}} +\index{computeFitness@{computeFitness}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ double \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::compute\-Fitness (const unsigned int {\em \_\-idx})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_d2fd41b9b356d1f1f87ce0f44907336f} + + +Returns the fitness value of the \_\-idx th individual of the population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-idx}]the index \end{description} +\end{Desc} + + +Definition at line 187 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::kappa, and moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::values. + +Referenced by moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::set\-Fitnesses(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.eps new file mode 100644 index 000000000..2e7225c9b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.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 270.27 +%%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.85 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) cw +(moeoParetoBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) 0 0 box + (moeoParetoBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoFitnessAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.tex new file mode 100644 index 000000000..04c3317a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.tex @@ -0,0 +1,179 @@ +\section{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoFastNonDominatedSortingFitnessAssignment}\index{moeoFastNonDominatedSortingFitnessAssignment@{moeoFastNonDominatedSortingFitnessAssignment}} +Fitness assignment sheme based on Pareto-dominance count proposed in: N. + + +{\tt \#include $<$moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoFastNonDominatedSortingFitnessAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoFastNonDominatedSortingFitnessAssignment_7bca09c8cf084700172a6e0dfcf6c381} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment} ()\label{classmoeoFastNonDominatedSortingFitnessAssignment_d02bd6ca60399f6171c08fa42f131644} + +\begin{CompactList}\small\item\em Default ctor. \item\end{CompactList}\item +\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment} (\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Ctor where you can choose your own way to compare objective vectors. \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for every solution contained in the population \_\-pop. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +void \bf{one\-Objective} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for mono-objective problems. \item\end{CompactList}\item +void \bf{two\-Objectives} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size. \item\end{CompactList}\item +void \bf{m\-Objectives} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for problems with more than two objectives with a complexity of O(n\^{A}² log n), where n stands for the population size. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \& \bf{comparator}\label{classmoeoFastNonDominatedSortingFitnessAssignment_cc2269f00944e308e53004cc3a68855b} + +\begin{CompactList}\small\item\em Functor to compare two objective vectors. \item\end{CompactList}\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \bf{pareto\-Comparator}\label{classmoeoFastNonDominatedSortingFitnessAssignment_c91bade0a1aa1200d0245f7c13fb74fc} + +\begin{CompactList}\small\item\em Functor to compare two objective vectors according to Pareto dominance relation. \item\end{CompactList}\item +\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment::Objective\-Comparator} \bf{obj\-Comparator}\label{classmoeoFastNonDominatedSortingFitnessAssignment_1ff82dbdcd601806382bb1af98c30572} + +\begin{CompactList}\small\item\em Functor allowing to compare two solutions according to their first objective value, then their second, and so on. \item\end{CompactList}\end{CompactItemize} +\subsection*{Classes} +\begin{CompactItemize} +\item +class \bf{Objective\-Comparator} +\begin{CompactList}\small\item\em Functor allowing to compare two solutions according to their first objective value, then their second, and so on. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$} + +Fitness assignment sheme based on Pareto-dominance count proposed in: N. + +Srinivas, K. Deb, \char`\"{}Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms\char`\"{}, Evolutionary Computation vol. 2, no. 3, pp. 221-248 (1994) and in: K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, \char`\"{}A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II\char`\"{}, IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). This strategy is, for instance, used in NSGA and NSGA-II. + + + +Definition at line 32 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!moeoFastNonDominatedSortingFitnessAssignment@{moeoFastNonDominatedSortingFitnessAssignment}} +\index{moeoFastNonDominatedSortingFitnessAssignment@{moeoFastNonDominatedSortingFitnessAssignment}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment} (\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_6843abccb77386a06016063f42c63f75} + + +Ctor where you can choose your own way to compare objective vectors. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comparator}]the functor used to compare objective vectors \end{description} +\end{Desc} + + +Definition at line 51 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_4d75a10be83e50e4d3827c32b74f9d7d} + + +Sets the fitness values for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 59 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +References moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::m\-Objectives(), and moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::one\-Objective().\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_8d16de444f6c7a73c28c9087b652656e} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implements \bf{moeo\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFitnessAssignment_4922629569eddc9be049b3ead1ab0269}. + +Definition at line 101 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +References moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::comparator.\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!oneObjective@{oneObjective}} +\index{oneObjective@{oneObjective}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::one\-Objective (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_f69d3a918dbbe8d7e9ef5abc50fbf17b} + + +Sets the fitness values for mono-objective problems. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 143 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +References moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::obj\-Comparator. + +Referenced by moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::operator()().\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!twoObjectives@{twoObjectives}} +\index{twoObjectives@{twoObjectives}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::two\-Objectives (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_ac0337fe41c4d565c5a81de38398a9e9} + + +Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 165 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h.\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!mObjectives@{mObjectives}} +\index{mObjectives@{mObjectives}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::m\-Objectives (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_f28ad92fe565e13b8d38a3beb30e1e29} + + +Sets the fitness values for problems with more than two objectives with a complexity of O(n\^{A}² log n), where n stands for the population size. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 175 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +References moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::comparator. + +Referenced by moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.eps new file mode 100644 index 000000000..40263889c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.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 161.29 +%%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.1 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/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 +(moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator) cw +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator) 0 0 box + (moeoComparator< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.tex new file mode 100644 index 000000000..1d9464262 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.tex @@ -0,0 +1,55 @@ +\section{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator Class Reference} +\label{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator}\index{moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator@{moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator}} +Functor allowing to compare two solutions according to their first objective value, then their second, and so on. + + +Inheritance diagram for moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 $<$ \_\-moeo2 on the first objective, then on the second, and so on. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Objective\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \bf{cmp}\label{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator_2280f5d8df81b5c69676fa4fade67719} + +\begin{CompactList}\small\item\em the corresponding comparator for objective vectors \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator} + +Functor allowing to compare two solutions according to their first objective value, then their second, and so on. + + + +Definition at line 121 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment::Objective\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment::Objective\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const bool \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::Objective\-Comparator::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator_21ba1645a166a348a24c204e88f97987} + + +Returns true if \_\-moeo1 $<$ \_\-moeo2 on the first objective, then on the second, and so on. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 129 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +References moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator::cmp. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.eps new file mode 100644 index 000000000..3756f7262 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.eps @@ -0,0 +1,257 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 54.0541 +%%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 9.25 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 6 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 +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoCriterionBasedFitnessAssignment< MOEOT >) cw +(moeoDummyFitnessAssignment< MOEOT >) cw +(moeoIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoParetoBasedFitnessAssignment< MOEOT >) cw +(moeoScalarFitnessAssignment< MOEOT >) cw +(moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) cw +(moeoAchievementFitnessAssignment< MOEOT >) cw +(moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) 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 ----- + + (moeoFitnessAssignment< MOEOT >) 2 3 box + (eoUF< eoPop< MOEOT > &, void >) 2 4 box + (eoFunctorBase) 2 5 box + (moeoCriterionBasedFitnessAssignment< MOEOT >) 0 2 box + (moeoDummyFitnessAssignment< MOEOT >) 1 2 box + (moeoIndicatorBasedFitnessAssignment< MOEOT >) 2 2 box + (moeoParetoBasedFitnessAssignment< MOEOT >) 3.5 2 box + (moeoScalarFitnessAssignment< MOEOT >) 4.5 2 box + (moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) 1.5 1 box + (moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) 2.5 1 box + (moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) 3.5 1 box + (moeoAchievementFitnessAssignment< MOEOT >) 4.5 1 box + (moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) 1.5 0 box + +% ----- relations ----- + +solid +0 2 3 out +solid +1 2 4 in +solid +0 2 4 out +solid +1 2 5 in +solid +1 2 2.25 out +solid +0 4.5 3 conn +solid +0 0 2.75 in +solid +0 1 2.75 in +solid +0 2 2.75 in +solid +1 2 1.25 out +solid +1.5 2.5 2 conn +solid +0 3.5 2.75 in +solid +1 3.5 1.25 out +solid +0 4.5 2.75 in +solid +1 4.5 1.25 out +solid +0 1.5 1.75 in +solid +1 1.5 0.25 out +solid +0 2.5 1.75 in +solid +0 3.5 1.75 in +solid +0 4.5 1.75 in +solid +0 1.5 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.tex new file mode 100644 index 000000000..e59b75d7e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.tex @@ -0,0 +1,75 @@ +\section{moeo\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoFitnessAssignment}\index{moeoFitnessAssignment@{moeoFitnessAssignment}} +Functor that sets the fitness values of a whole population. + + +{\tt \#include $<$moeo\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=1.51351cm]{classmoeoFitnessAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoFitnessAssignment_6271b8215ea5df4fc1f19e513cd1d533} + +\begin{CompactList}\small\item\em The type for objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec)=0 +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, MOEOT \&\_\-moeo) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the individual \_\-moeo into account. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Fitness\-Assignment$<$ MOEOT $>$} + +Functor that sets the fitness values of a whole population. + + + +Definition at line 23 of file moeo\-Fitness\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoFitnessAssignment@{moeo\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoFitnessAssignment@{moeo\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmoeoFitnessAssignment_4922629569eddc9be049b3ead1ab0269} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implemented in \bf{moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoAchievementFitnessAssignment_a6a2ae6c263dbcea3c16cde4c8a1e5fc}, \bf{moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoDummyFitnessAssignment_6e87d4a8ff8f43a7001a21a13795d00e}, \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoExpBinaryIndicatorBasedFitnessAssignment_1ad61bf146d3b24b41ef0575360f664b}, and \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFastNonDominatedSortingFitnessAssignment_8d16de444f6c7a73c28c9087b652656e}. + +Referenced by moeo\-Fitness\-Assignment$<$ MOEOT $>$::update\-By\-Deleting().\index{moeoFitnessAssignment@{moeo\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoFitnessAssignment@{moeo\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, MOEOT \& {\em \_\-moeo})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFitnessAssignment_057fd85764abb5de35adb52b5ef695be} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the individual \_\-moeo into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-moeo}]the individual \end{description} +\end{Desc} + + +Definition at line 44 of file moeo\-Fitness\-Assignment.h. + +References moeo\-Fitness\-Assignment$<$ MOEOT $>$::update\-By\-Deleting(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.eps new file mode 100644 index 000000000..c32881430 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.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 263.158 +%%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.9 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 +(moeoFitnessThenDiversityComparator< MOEOT >) cw +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoFitnessThenDiversityComparator< MOEOT >) 0 0 box + (moeoComparator< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.tex new file mode 100644 index 000000000..467c9ba75 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.tex @@ -0,0 +1,49 @@ +\section{moeo\-Fitness\-Then\-Diversity\-Comparator$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoFitnessThenDiversityComparator}\index{moeoFitnessThenDiversityComparator@{moeoFitnessThenDiversityComparator}} +Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. + + +{\tt \#include $<$moeo\-Fitness\-Then\-Diversity\-Comparator.h$>$} + +Inheritance diagram for moeo\-Fitness\-Then\-Diversity\-Comparator$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoFitnessThenDiversityComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 $<$ \_\-moeo2 according to their fitness values, then according to their diversity values. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Fitness\-Then\-Diversity\-Comparator$<$ MOEOT $>$} + +Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. + + + +Definition at line 22 of file moeo\-Fitness\-Then\-Diversity\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoFitnessThenDiversityComparator@{moeo\-Fitness\-Then\-Diversity\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoFitnessThenDiversityComparator@{moeo\-Fitness\-Then\-Diversity\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const bool \bf{moeo\-Fitness\-Then\-Diversity\-Comparator}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFitnessThenDiversityComparator_087856d1a7d81f242e95591d694e3ef6} + + +Returns true if \_\-moeo1 $<$ \_\-moeo2 according to their fitness values, then according to their diversity values. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Fitness\-Then\-Diversity\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Fitness\-Then\-Diversity\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.eps new file mode 100644 index 000000000..3db76e75a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.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 275.482 +%%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.815 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) cw +(moeoCrowdingDiversityAssignment< MOEOT >) cw +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) 0 0 box + (moeoCrowdingDiversityAssignment< MOEOT >) 0 1 box + (moeoDiversityAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.tex new file mode 100644 index 000000000..8296d2833 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.tex @@ -0,0 +1,102 @@ +\section{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoFrontByFrontCrowdingDiversityAssignment}\index{moeoFrontByFrontCrowdingDiversityAssignment@{moeoFrontByFrontCrowdingDiversityAssignment}} +Diversity assignment sheme based on crowding proposed in: K. + + +{\tt \#include $<$moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoFrontByFrontCrowdingDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoFrontByFrontCrowdingDiversityAssignment_aebd424133b426cf6a2ec7b20743bbaf} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +void \bf{set\-Distances} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the distance values. \item\end{CompactList}\item +unsigned int \bf{last\-Index} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, unsigned int \_\-start) +\begin{CompactList}\small\item\em Returns the index of the last individual having the same fitness value than \_\-pop[\_\-start]. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} + +Diversity assignment sheme based on crowding proposed in: K. + +Deb, A. Pratap, S. Agarwal, T. Meyarivan, \char`\"{}A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II\char`\"{}, IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). Tis strategy assigns diversity values FRONT BY FRONT. It is, for instance, used in NSGA-II. + + + +Definition at line 25 of file moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoFrontByFrontCrowdingDiversityAssignment_f73ff88bd29c49260e2ca859250e4b68} + + +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! \end{Desc} + + +Reimplemented from \bf{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoCrowdingDiversityAssignment_ba1d60c8e59fbe2c12e9eef33863f012}. + +Definition at line 40 of file moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h.\index{moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}!setDistances@{setDistances}} +\index{setDistances@{setDistances}!moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::set\-Distances (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private, virtual]}}\label{classmoeoFrontByFrontCrowdingDiversityAssignment_1aa0ec7b94fbbf952636bcc21e1a9d16} + + +Sets the distance values. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoCrowdingDiversityAssignment_acbe3e03404ecc67dd5e83f00576c255}. + +Definition at line 55 of file moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h. + +References moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::inf(), moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::last\-Index(), and moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::tiny().\index{moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}!lastIndex@{lastIndex}} +\index{lastIndex@{lastIndex}!moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ unsigned int \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::last\-Index (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, unsigned int {\em \_\-start})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoFrontByFrontCrowdingDiversityAssignment_ab8e153a4716375414ff2140fc3fa480} + + +Returns the index of the last individual having the same fitness value than \_\-pop[\_\-start]. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-start}]the index to start from \end{description} +\end{Desc} + + +Definition at line 121 of file moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h. + +Referenced by moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::set\-Distances(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.eps new file mode 100644 index 000000000..951532f00 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.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 283.286 +%%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.765 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoFrontByFrontSharingDiversityAssignment< MOEOT >) cw +(moeoSharingDiversityAssignment< MOEOT >) cw +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoFrontByFrontSharingDiversityAssignment< MOEOT >) 0 0 box + (moeoSharingDiversityAssignment< MOEOT >) 0 1 box + (moeoDiversityAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.tex new file mode 100644 index 000000000..cb17edb2b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.tex @@ -0,0 +1,117 @@ +\section{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoFrontByFrontSharingDiversityAssignment}\index{moeoFrontByFrontSharingDiversityAssignment@{moeoFrontByFrontSharingDiversityAssignment}} +Sharing assignment scheme on the way it is used in NSGA. + + +{\tt \#include $<$moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoFrontByFrontSharingDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoFrontByFrontSharingDiversityAssignment_c5350ba4340adea240c9cb362c1eb96d} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment} (\bf{moeo\-Distance}$<$ MOEOT, double $>$ \&\_\-distance, double \_\-niche\-Size=0.5, double \_\-alpha=2.0) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment} (double \_\-niche\-Size=0.5, double \_\-alpha=2.0) +\begin{CompactList}\small\item\em Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +void \bf{set\-Similarities} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets similarities FRONT BY FRONT for every solution contained in the population \_\-pop. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} + +Sharing assignment scheme on the way it is used in NSGA. + + + +Definition at line 22 of file moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}!moeoFrontByFrontSharingDiversityAssignment@{moeoFrontByFrontSharingDiversityAssignment}} +\index{moeoFrontByFrontSharingDiversityAssignment@{moeoFrontByFrontSharingDiversityAssignment}!moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment} (\bf{moeo\-Distance}$<$ MOEOT, double $>$ \& {\em \_\-distance}, double {\em \_\-niche\-Size} = {\tt 0.5}, double {\em \_\-alpha} = {\tt 2.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFrontByFrontSharingDiversityAssignment_a77c641d3d9184f60c3aace07fb1774f} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-distance}]the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) \item[{\em \_\-niche\-Size}]neighborhood size in terms of radius distance (closely related to the way the distances are computed) \item[{\em \_\-alpha}]parameter used to regulate the shape of the sharing function \end{description} +\end{Desc} + + +Definition at line 36 of file moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h.\index{moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}!moeoFrontByFrontSharingDiversityAssignment@{moeoFrontByFrontSharingDiversityAssignment}} +\index{moeoFrontByFrontSharingDiversityAssignment@{moeoFrontByFrontSharingDiversityAssignment}!moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment} (double {\em \_\-niche\-Size} = {\tt 0.5}, double {\em \_\-alpha} = {\tt 2.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFrontByFrontSharingDiversityAssignment_fec74d6b140ff6bb98e80ca13d57b6d7} + + +Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-niche\-Size}]neighborhood size in terms of radius distance (closely related to the way the distances are computed) \item[{\em \_\-alpha}]parameter used to regulate the shape of the sharing function \end{description} +\end{Desc} + + +Definition at line 45 of file moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoFrontByFrontSharingDiversityAssignment_623489a246f86cf24cc5860d32caa743} + + +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! \end{Desc} + + +Reimplemented from \bf{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoSharingDiversityAssignment_21c8d6e020af23b2be219b7e02248300}. + +Definition at line 56 of file moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h.\index{moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}!setSimilarities@{setSimilarities}} +\index{setSimilarities@{setSimilarities}!moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::set\-Similarities (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private, virtual]}}\label{classmoeoFrontByFrontSharingDiversityAssignment_a0f6c045237aba2857c4a9ec25679e69} + + +Sets similarities FRONT BY FRONT for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoSharingDiversityAssignment_c01f6ac1abba3799f5c4b6c0608dac55}. + +Definition at line 74 of file moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h. + +References moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::distance, moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::niche\-Size, and moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::sh(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.eps new file mode 100644 index 000000000..c47fc760a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.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 202.02 +%%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.475 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 +(moeoGDominanceObjectiveVectorComparator< ObjectiveVector >) cw +(moeoObjectiveVectorComparator< ObjectiveVector >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoGDominanceObjectiveVectorComparator< ObjectiveVector >) 0 0 box + (moeoObjectiveVectorComparator< ObjectiveVector >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.tex new file mode 100644 index 000000000..0d7c46fe4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.tex @@ -0,0 +1,104 @@ +\section{moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoGDominanceObjectiveVectorComparator}\index{moeoGDominanceObjectiveVectorComparator@{moeoGDominanceObjectiveVectorComparator}} +This functor class allows to compare 2 objective vectors according to g-dominance. + + +{\tt \#include $<$moeo\-GDominance\-Objective\-Vector\-Comparator.h$>$} + +Inheritance diagram for moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoGDominanceObjectiveVectorComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-GDominance\-Objective\-Vector\-Comparator} (Objective\-Vector \&\_\-ref) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +const bool \bf{operator()} (const Objective\-Vector \&\_\-objective\-Vector1, const Objective\-Vector \&\_\-objective\-Vector2) +\begin{CompactList}\small\item\em Returns true if \_\-objective\-Vector1 is g-dominated by \_\-objective\-Vector2. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +unsigned int \bf{flag} (const Objective\-Vector \&\_\-objective\-Vector) +\begin{CompactList}\small\item\em Returns the flag of \_\-objective\-Vector according to the reference point. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +Objective\-Vector \& \bf{ref}\label{classmoeoGDominanceObjectiveVectorComparator_54cf089933c4d5d70ceb931c2b97ca68} + +\begin{CompactList}\small\item\em the reference point \item\end{CompactList}\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$ \bf{pareto\-Comparator}\label{classmoeoGDominanceObjectiveVectorComparator_5768e6444e546f1da2f36ccabcfc1f70} + +\begin{CompactList}\small\item\em Pareto comparator. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} + +This functor class allows to compare 2 objective vectors according to g-dominance. + +The concept of g-dominance as been introduced in: J. Molina, L. V. Santana, A. G. Hernandez-Diaz, C. A. Coello Coello, R. Caballero, \char`\"{}g-dominance: Reference point based dominance\char`\"{} (2007) + + + +Definition at line 25 of file moeo\-GDominance\-Objective\-Vector\-Comparator.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}!moeoGDominanceObjectiveVectorComparator@{moeoGDominanceObjectiveVectorComparator}} +\index{moeoGDominanceObjectiveVectorComparator@{moeoGDominanceObjectiveVectorComparator}!moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ \bf{moeo\-GDominance\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$::\bf{moeo\-GDominance\-Objective\-Vector\-Comparator} (Objective\-Vector \& {\em \_\-ref})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoGDominanceObjectiveVectorComparator_fc4e1f1201b6420d206b28ab98e9ea0d} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-ref}]the reference point \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-GDominance\-Objective\-Vector\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ const bool \bf{moeo\-GDominance\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$::operator() (const Objective\-Vector \& {\em \_\-objective\-Vector1}, const Objective\-Vector \& {\em \_\-objective\-Vector2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoGDominanceObjectiveVectorComparator_4b8c3496d77abf6e774333f3296e6d79} + + +Returns true if \_\-objective\-Vector1 is g-dominated by \_\-objective\-Vector2. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector1}]the first objective vector \item[{\em \_\-objective\-Vector2}]the second objective vector \end{description} +\end{Desc} + + +Definition at line 42 of file moeo\-GDominance\-Objective\-Vector\-Comparator.h. + +References moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::flag(), and moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::pareto\-Comparator.\index{moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}!flag@{flag}} +\index{flag@{flag}!moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ unsigned int \bf{moeo\-GDominance\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$::flag (const Objective\-Vector \& {\em \_\-objective\-Vector})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoGDominanceObjectiveVectorComparator_75bf5141369522563e60d4e3ac2ec9cb} + + +Returns the flag of \_\-objective\-Vector according to the reference point. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector}]the first objective vector \end{description} +\end{Desc} + + +Definition at line 76 of file moeo\-GDominance\-Objective\-Vector\-Comparator.h. + +References moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::ref. + +Referenced by moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-GDominance\-Objective\-Vector\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.eps new file mode 100644 index 000000000..63a2ad358 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.eps @@ -0,0 +1,239 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 189.394 +%%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.64 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoGenerationalReplacement< MOEOT >) cw +(moeoReplacement< MOEOT >) cw +(eoGenerationalReplacement< MOEOT >) cw +(eoReplacement< MOEOT >) cw +(eoReplacement< EOT >) cw +(eoBF< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoGenerationalReplacement< MOEOT >) 0.5 0 box + (moeoReplacement< MOEOT >) 0 1 box + (eoGenerationalReplacement< MOEOT >) 1 1 box + (eoReplacement< MOEOT >) 0 2 box + (eoReplacement< EOT >) 1 2 box + (eoBF< A1, A2, R >) 0 3 box + (eoBF< A1, A2, R >) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +0 1 1 conn +solid +1 0 1 in +solid +0 0 1 out +solid +1 1 1 in +solid +0 1 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.tex new file mode 100644 index 000000000..9ebd8d44b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.tex @@ -0,0 +1,51 @@ +\section{moeo\-Generational\-Replacement$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoGenerationalReplacement}\index{moeoGenerationalReplacement@{moeoGenerationalReplacement}} +Generational replacement: only the new individuals are preserved. + + +{\tt \#include $<$moeo\-Generational\-Replacement.h$>$} + +Inheritance diagram for moeo\-Generational\-Replacement$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoGenerationalReplacement} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-parents, \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-offspring) +\begin{CompactList}\small\item\em Swaps \_\-parents and \_\-offspring. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Generational\-Replacement$<$ MOEOT $>$} + +Generational replacement: only the new individuals are preserved. + + + +Definition at line 23 of file moeo\-Generational\-Replacement.h. + +\subsection{Member Function Documentation} +\index{moeoGenerationalReplacement@{moeo\-Generational\-Replacement}!operator()@{operator()}} +\index{operator()@{operator()}!moeoGenerationalReplacement@{moeo\-Generational\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Generational\-Replacement}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-parents}, \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-offspring})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoGenerationalReplacement_7b8ac20d375820ba44a9f3dd4b95e120} + + +Swaps \_\-parents and \_\-offspring. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-parents}]the parents population \item[{\em \_\-offspring}]the offspring population \end{description} +\end{Desc} + + +Reimplemented from \bf{eo\-Generational\-Replacement$<$ MOEOT $>$}. + +Definition at line 32 of file moeo\-Generational\-Replacement.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Generational\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHybridLS.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHybridLS.eps new file mode 100644 index 000000000..5ca50d410 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHybridLS.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 462.428 +%%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.08125 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 +(moeoHybridLS< MOEOT >) cw +(eoUpdater) cw +(eoF< void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoHybridLS< MOEOT >) 0 0 box + (eoUpdater) 0 1 box + (eoF< void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHybridLS.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHybridLS.tex new file mode 100644 index 000000000..3834f08e0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHybridLS.tex @@ -0,0 +1,67 @@ +\section{moeo\-Hybrid\-LS$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoHybridLS}\index{moeoHybridLS@{moeoHybridLS}} +This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. + + +{\tt \#include $<$moeo\-Hybrid\-LS.h$>$} + +Inheritance diagram for moeo\-Hybrid\-LS$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoHybridLS} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Hybrid\-LS} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-term, \bf{eo\-Select}$<$ MOEOT $>$ \&\_\-select, \bf{moeo\-LS}$<$ MOEOT, MOEOT $>$ \&\_\-mols, \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} ()\label{classmoeoHybridLS_bd35c0f0e03914b1b669cb064310d3eb} + +\begin{CompactList}\small\item\em Applies the multi-objective local search to selected individuals contained in the archive if the stopping criteria is not verified. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{term}\label{classmoeoHybridLS_776a00e2e8970ad6e3940c61eabd52ba} + +\begin{CompactList}\small\item\em stopping criteria \item\end{CompactList}\item +\bf{eo\-Select}$<$ MOEOT $>$ \& \bf{select}\label{classmoeoHybridLS_106ca80830d807da0cfdcac934737533} + +\begin{CompactList}\small\item\em selector \item\end{CompactList}\item +\bf{moeo\-LS}$<$ MOEOT, MOEOT $>$ \& \bf{mols}\label{classmoeoHybridLS_28af163ec90dbff609b38666b249a19c} + +\begin{CompactList}\small\item\em multi-objective local search \item\end{CompactList}\item +\bf{moeo\-Archive}$<$ MOEOT $>$ \& \bf{arch}\label{classmoeoHybridLS_4cda70ac38a51d7b629a1fed56af4c33} + +\begin{CompactList}\small\item\em archive \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Hybrid\-LS$<$ MOEOT $>$} + +This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. + + + +Definition at line 28 of file moeo\-Hybrid\-LS.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoHybridLS@{moeo\-Hybrid\-LS}!moeoHybridLS@{moeoHybridLS}} +\index{moeoHybridLS@{moeoHybridLS}!moeoHybridLS@{moeo\-Hybrid\-LS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Hybrid\-LS}$<$ MOEOT $>$::\bf{moeo\-Hybrid\-LS} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-term}, \bf{eo\-Select}$<$ MOEOT $>$ \& {\em \_\-select}, \bf{moeo\-LS}$<$ MOEOT, MOEOT $>$ \& {\em \_\-mols}, \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoHybridLS_e669b2ca5e17467eb9819c71557aad53} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-term}]stopping criteria \item[{\em \_\-select}]selector \item[{\em \_\-mols}]a multi-objective local search \item[{\em \_\-arch}]the archive \end{description} +\end{Desc} + + +Definition at line 39 of file moeo\-Hybrid\-LS.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Hybrid\-LS.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.eps new file mode 100644 index 000000000..42dbae300 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.eps @@ -0,0 +1,233 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.159 +%%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.78333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 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 +(moeoHypervolumeBinaryMetric< ObjectiveVector >) cw +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoHypervolumeBinaryMetric< ObjectiveVector >) 0.5 0 box + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 0.5 1 box + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 0.5 2 box + (moeoBinaryMetric< A1, A2, R >) 0.5 3 box + (eoBF< A1, A2, R >) 0 4 box + (moeoMetric) 1 4 box + (eoFunctorBase) 0 5 box + (eoFunctorBase) 1 5 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +0 1 4 conn +solid +1 0 4 in +solid +0 0 4 out +solid +1 1 4 in +solid +0 1 4 out +solid +1 0 5 in +solid +1 1 5 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.tex new file mode 100644 index 000000000..ecc5cb8a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.tex @@ -0,0 +1,108 @@ +\section{moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoHypervolumeBinaryMetric}\index{moeoHypervolumeBinaryMetric@{moeoHypervolumeBinaryMetric}} +Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., K\~{A}¼nzli S. + + +{\tt \#include $<$moeo\-Hypervolume\-Binary\-Metric.h$>$} + +Inheritance diagram for moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.70044cm]{classmoeoHypervolumeBinaryMetric} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Hypervolume\-Binary\-Metric} (double \_\-rho=1.1) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +double \bf{operator()} (const Objective\-Vector \&\_\-o1, const Objective\-Vector \&\_\-o2) +\begin{CompactList}\small\item\em Returns the volume of the space that is dominated by \_\-o2 but not by \_\-o1 with respect to a reference point computed using rho. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +double \bf{hypervolume} (const Objective\-Vector \&\_\-o1, const Objective\-Vector \&\_\-o2, const unsigned int \_\-obj, const bool \_\-flag=false) +\begin{CompactList}\small\item\em Returns the volume of the space that is dominated by \_\-o2 but not by \_\-o1 with respect to a reference point computed using rho for the objective \_\-obj. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +double \bf{rho}\label{classmoeoHypervolumeBinaryMetric_2498b6010719249121e3a371978d927b} + +\begin{CompactList}\small\item\em value used to compute the reference point from the worst values for each objective \item\end{CompactList}\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$ \bf{pareto\-Comparator}\label{classmoeoHypervolumeBinaryMetric_2bbeb34a5bfde25b9eadc7eca899906e} + +\begin{CompactList}\small\item\em Functor to compare two objective vectors according to Pareto dominance relation. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$} + +Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., K\~{A}¼nzli S. + +: Indicator-Based Selection in Multiobjective Search. In Parallel Problem Solving from Nature (PPSN VIII). Lecture Notes in Computer Science 3242, Springer, Birmingham, UK pp.832\^{a}€“842 (2004). This indicator is based on the hypervolume concept introduced in Zitzler, E., Thiele, L.: Multiobjective Optimization Using Evolutionary Algorithms - A Comparative Case Study. Parallel Problem Solving from Nature (PPSN-V), pp.292-301 (1998). + + + +Definition at line 29 of file moeo\-Hypervolume\-Binary\-Metric.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}!moeoHypervolumeBinaryMetric@{moeoHypervolumeBinaryMetric}} +\index{moeoHypervolumeBinaryMetric@{moeoHypervolumeBinaryMetric}!moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ \bf{moeo\-Hypervolume\-Binary\-Metric}$<$ Objective\-Vector $>$::\bf{moeo\-Hypervolume\-Binary\-Metric} (double {\em \_\-rho} = {\tt 1.1})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoHypervolumeBinaryMetric_01a07711a7c9f38cdc2c76e40a3c5958} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-rho}]value used to compute the reference point from the worst values for each objective (default : 1.1) \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Hypervolume\-Binary\-Metric.h. + +References moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::rho. + +\subsection{Member Function Documentation} +\index{moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}!operator()@{operator()}} +\index{operator()@{operator()}!moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Hypervolume\-Binary\-Metric}$<$ Objective\-Vector $>$::operator() (const Objective\-Vector \& {\em \_\-o1}, const Objective\-Vector \& {\em \_\-o2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoHypervolumeBinaryMetric_c147309a5ba6b365be926e6083c5b9f2} + + +Returns the volume of the space that is dominated by \_\-o2 but not by \_\-o1 with respect to a reference point computed using rho. + +\begin{Desc} +\item[Warning:]don't forget to set the bounds for every objective before the call of this function \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-o1}]the first objective vector \item[{\em \_\-o2}]the second objective vector \end{description} +\end{Desc} + + +Definition at line 63 of file moeo\-Hypervolume\-Binary\-Metric.h. + +References moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::hypervolume(), and moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::pareto\-Comparator.\index{moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}!hypervolume@{hypervolume}} +\index{hypervolume@{hypervolume}!moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Hypervolume\-Binary\-Metric}$<$ Objective\-Vector $>$::hypervolume (const Objective\-Vector \& {\em \_\-o1}, const Objective\-Vector \& {\em \_\-o2}, const unsigned int {\em \_\-obj}, const bool {\em \_\-flag} = {\tt false})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoHypervolumeBinaryMetric_e841d13001c63b043981a41fcb49218a} + + +Returns the volume of the space that is dominated by \_\-o2 but not by \_\-o1 with respect to a reference point computed using rho for the objective \_\-obj. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-o1}]the first objective vector \item[{\em \_\-o2}]the second objective vector \item[{\em \_\-obj}]the objective index \item[{\em \_\-flag}]used for iteration, if \_\-flag=true \_\-o2 is not talen into account (default : false) \end{description} +\end{Desc} + + +Definition at line 96 of file moeo\-Hypervolume\-Binary\-Metric.h. + +References moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, double $>$::bounds, and moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::rho. + +Referenced by moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Hypervolume\-Binary\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIBEA.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIBEA.eps new file mode 100644 index 000000000..8402bc3c9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIBEA.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 337.838 +%%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.48 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoIBEA< MOEOT >) cw +(moeoEA< MOEOT >) cw +(moeoAlgo) cw +(eoAlgo< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoIBEA< MOEOT >) 0.5 0 box + (moeoEA< MOEOT >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoAlgo< MOEOT >) 1 2 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIBEA.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIBEA.tex new file mode 100644 index 000000000..9289ceb87 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIBEA.tex @@ -0,0 +1,175 @@ +\section{moeo\-IBEA$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoIBEA}\index{moeoIBEA@{moeoIBEA}} +IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. + + +{\tt \#include $<$moeo\-IBEA.h$>$} + +Inheritance diagram for moeo\-IBEA$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoIBEA} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoIBEA_220d16bade11304306f124f6014dc4b8} + +\begin{CompactList}\small\item\em The type of objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-IBEA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-IBEA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Transform}. \item\end{CompactList}\item +\bf{moeo\-IBEA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \&\_\-crossover, double \_\-p\-Cross, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \&\_\-mutation, double \_\-p\-Mut, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Ctor with a crossover, a mutation and their corresponding rates. \item\end{CompactList}\item +\bf{moeo\-IBEA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-IBEA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. \item\end{CompactList}\item +virtual void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{eo\-Gen\-Continue}$<$ MOEOT $>$ \bf{default\-Gen\-Continuator}\label{classmoeoIBEA_70ecf0f84e1d4ba33b20fdfb2a3b3d02} + +\begin{CompactList}\small\item\em a continuator based on the number of generations (used as default) \item\end{CompactList}\item +\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{continuator}\label{classmoeoIBEA_d3772c044b41ea51f7aef80c0e12a75b} + +\begin{CompactList}\small\item\em stopping criteria \item\end{CompactList}\item +\bf{eo\-Pop\-Loop\-Eval}$<$ MOEOT $>$ \bf{pop\-Eval}\label{classmoeoIBEA_a3fa636bc571c43a43eadddf5817da73} + +\begin{CompactList}\small\item\em evaluation function used to evaluate the whole population \item\end{CompactList}\item +\bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$ \bf{select}\label{classmoeoIBEA_0b3ef8b89b356b575ae3bad1636b5faa} + +\begin{CompactList}\small\item\em binary tournament selection \item\end{CompactList}\item +\bf{moeo\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$ \bf{fitness\-Assignment}\label{classmoeoIBEA_fed3304c930a10d27b0ec7e0c7974e40} + +\begin{CompactList}\small\item\em fitness assignment used in IBEA \item\end{CompactList}\item +\bf{moeo\-Dummy\-Diversity\-Assignment}$<$ MOEOT $>$ \bf{dummy\-Diversity\-Assignment}\label{classmoeoIBEA_f31b1a42c2c3db0201ac7c5ed2c016f0} + +\begin{CompactList}\small\item\em dummy diversity assignment \item\end{CompactList}\item +\bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$ \bf{replace}\label{classmoeoIBEA_074ac1d52fa02e8f77b75ad46f0193f8} + +\begin{CompactList}\small\item\em elitist replacement \item\end{CompactList}\item +\bf{eo\-SGAGen\-Op}$<$ MOEOT $>$ \bf{default\-SGAGen\-Op}\label{classmoeoIBEA_eb9d41ac2c472683a32b302bc518094d} + +\begin{CompactList}\small\item\em an object for genetic operators (used as default) \item\end{CompactList}\item +\bf{eo\-General\-Breeder}$<$ MOEOT $>$ \bf{gen\-Breed}\label{classmoeoIBEA_33582dd65d7c5b90868d6719183a721e} + +\begin{CompactList}\small\item\em general breeder \item\end{CompactList}\item +\bf{eo\-Breed}$<$ MOEOT $>$ \& \bf{breed}\label{classmoeoIBEA_670490da376ec266458d509354a7e101} + +\begin{CompactList}\small\item\em breeder \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-IBEA$<$ MOEOT $>$} + +IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. + +Zitzler, S. K\~{A}¼nzli, \char`\"{}Indicator-Based Selection in Multiobjective Search\char`\"{}, Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This class builds the IBEA algorithm only by using the fine-grained components of the Paradis\-EO-MOEO framework. + + + +Definition at line 38 of file moeo\-IBEA.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoIBEA@{moeo\-IBEA}!moeoIBEA@{moeoIBEA}} +\index{moeoIBEA@{moeoIBEA}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-IBEA}$<$ MOEOT $>$::\bf{moeo\-IBEA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op}, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIBEA_ff425ab40d782131dc2fea3485bf20df} + + +Simple ctor with a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-metric}]metric \item[{\em \_\-kappa}]scaling factor kappa \end{description} +\end{Desc} + + +Definition at line 54 of file moeo\-IBEA.h.\index{moeoIBEA@{moeo\-IBEA}!moeoIBEA@{moeoIBEA}} +\index{moeoIBEA@{moeoIBEA}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-IBEA}$<$ MOEOT $>$::\bf{moeo\-IBEA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op}, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIBEA_cbc97868f6eb817d95127c43231c7540} + + +Simple ctor with a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-metric}]metric \item[{\em \_\-kappa}]scaling factor kappa \end{description} +\end{Desc} + + +Definition at line 68 of file moeo\-IBEA.h.\index{moeoIBEA@{moeo\-IBEA}!moeoIBEA@{moeoIBEA}} +\index{moeoIBEA@{moeoIBEA}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-IBEA}$<$ MOEOT $>$::\bf{moeo\-IBEA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \& {\em \_\-crossover}, double {\em \_\-p\-Cross}, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \& {\em \_\-mutation}, double {\em \_\-p\-Mut}, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIBEA_b0c051de75326b11a391aaacdb324dac} + + +Ctor with a crossover, a mutation and their corresponding rates. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-crossover}]crossover \item[{\em \_\-p\-Cross}]crossover probability \item[{\em \_\-mutation}]mutation \item[{\em \_\-p\-Mut}]mutation probability \item[{\em \_\-metric}]metric \item[{\em \_\-kappa}]scaling factor kappa \end{description} +\end{Desc} + + +Definition at line 85 of file moeo\-IBEA.h.\index{moeoIBEA@{moeo\-IBEA}!moeoIBEA@{moeoIBEA}} +\index{moeoIBEA@{moeoIBEA}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-IBEA}$<$ MOEOT $>$::\bf{moeo\-IBEA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op}, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIBEA_9b59ebf11f896198264ab5594dbaaefd} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-metric}]metric \item[{\em \_\-kappa}]scaling factor kappa \end{description} +\end{Desc} + + +Definition at line 100 of file moeo\-IBEA.h.\index{moeoIBEA@{moeo\-IBEA}!moeoIBEA@{moeoIBEA}} +\index{moeoIBEA@{moeoIBEA}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-IBEA}$<$ MOEOT $>$::\bf{moeo\-IBEA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op}, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIBEA_654c67d0bd74ea798580ec4c81435f92} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-metric}]metric \item[{\em \_\-kappa}]scaling factor kappa \end{description} +\end{Desc} + + +Definition at line 114 of file moeo\-IBEA.h. + +\subsection{Member Function Documentation} +\index{moeoIBEA@{moeo\-IBEA}!operator()@{operator()}} +\index{operator()@{operator()}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-IBEA}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoIBEA_34e98caf16795ac05d2977f8d20151cd} + + +Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 124 of file moeo\-IBEA.h. + +References moeo\-IBEA$<$ MOEOT $>$::breed, moeo\-IBEA$<$ MOEOT $>$::continuator, moeo\-IBEA$<$ MOEOT $>$::dummy\-Diversity\-Assignment, moeo\-IBEA$<$ MOEOT $>$::fitness\-Assignment, moeo\-IBEA$<$ MOEOT $>$::pop\-Eval, and moeo\-IBEA$<$ MOEOT $>$::replace. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-IBEA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.eps new file mode 100644 index 000000000..ae7bc439f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 163.934 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.05 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 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 +(moeoIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) 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 ----- + + (moeoIndicatorBasedFitnessAssignment< MOEOT >) 0.5 2 box + (moeoFitnessAssignment< MOEOT >) 0.5 3 box + (eoUF< eoPop< MOEOT > &, void >) 0.5 4 box + (eoFunctorBase) 0.5 5 box + (moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) 1 1 box + (moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +1 0.5 4 in +solid +0 0.5 4 out +solid +1 0.5 5 in +solid +1 0.5 1.25 out +solid +0 1 2 conn +solid +0 0 1.75 in +solid +1 0 0.25 out +solid +0 1 1.75 in +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.tex new file mode 100644 index 000000000..1946f7512 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoIndicatorBasedFitnessAssignment}\index{moeoIndicatorBasedFitnessAssignment@{moeoIndicatorBasedFitnessAssignment}} +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Indicator-based strategies. + + +{\tt \#include $<$moeo\-Indicator\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4.59016cm]{classmoeoIndicatorBasedFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Indicator-based strategies. + + + +Definition at line 22 of file moeo\-Indicator\-Based\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Indicator\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoLS.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoLS.eps new file mode 100644 index 000000000..7501ada41 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoLS.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 132.013 +%%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.7875 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 +(moeoLS< MOEOT, Type >) cw +(moeoAlgo) cw +(eoBF< Type, moeoArchive< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoCombinedLS< MOEOT, Type >) 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 ----- + + (moeoLS< MOEOT, Type >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoBF< Type, moeoArchive< MOEOT > &, void >) 1 2 box + (eoFunctorBase) 1 3 box + (moeoCombinedLS< MOEOT, Type >) 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 +0 1 2 out +solid +1 1 3 in +solid +1 0.5 0.25 out +solid +0 0.5 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoLS.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoLS.tex new file mode 100644 index 000000000..a768f0a79 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoLS.tex @@ -0,0 +1,29 @@ +\section{moeo\-LS$<$ MOEOT, Type $>$ Class Template Reference} +\label{classmoeoLS}\index{moeoLS@{moeoLS}} +Abstract class for local searches applied to multi-objective optimization. + + +{\tt \#include $<$moeo\-LS.h$>$} + +Inheritance diagram for moeo\-LS$<$ MOEOT, Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.69637cm]{classmoeoLS} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Type$>$ class moeo\-LS$<$ MOEOT, Type $>$} + +Abstract class for local searches applied to multi-objective optimization. + +Starting from a Type (i.e.: an individual, a pop, an archive...), it produces a set of new non-dominated solutions. + + + +Definition at line 25 of file moeo\-LS.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-LS.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.eps new file mode 100644 index 000000000..be2de7245 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.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 431.034 +%%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.16 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoManhattanDistance< MOEOT >) cw +(moeoNormalizedDistance< MOEOT >) cw +(moeoDistance< MOEOT, double >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoManhattanDistance< MOEOT >) 0 0 box + (moeoNormalizedDistance< MOEOT >) 0 1 box + (moeoDistance< MOEOT, double >) 0 2 box + (eoBF< A1, A2, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.tex new file mode 100644 index 000000000..b53cc6973 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.tex @@ -0,0 +1,59 @@ +\section{moeo\-Manhattan\-Distance$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoManhattanDistance}\index{moeoManhattanDistance@{moeoManhattanDistance}} +A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. + + +{\tt \#include $<$moeo\-Manhattan\-Distance.h$>$} + +Inheritance diagram for moeo\-Manhattan\-Distance$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoManhattanDistance} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoManhattanDistance_44fa512b80d2eee94e876a95babc9913} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const double \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns the Manhattan distance between \_\-moeo1 and \_\-moeo2 in the objective space. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Manhattan\-Distance$<$ MOEOT $>$} + +A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. + +between 0 and 1). A distance value then lies between 0 and n\-Objectives. + + + +Definition at line 24 of file moeo\-Manhattan\-Distance.h. + +\subsection{Member Function Documentation} +\index{moeoManhattanDistance@{moeo\-Manhattan\-Distance}!operator()@{operator()}} +\index{operator()@{operator()}!moeoManhattanDistance@{moeo\-Manhattan\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const double \bf{moeo\-Manhattan\-Distance}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoManhattanDistance_dcabb2bddb46439a47cd1af5dd124f92} + + +Returns the Manhattan distance between \_\-moeo1 and \_\-moeo2 in the objective space. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Manhattan\-Distance.h. + +References moeo\-Normalized\-Distance$<$ MOEOT $>$::bounds. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Manhattan\-Distance.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoMetric.eps new file mode 100644 index 000000000..8ddac6002 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoMetric.eps @@ -0,0 +1,236 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 154.083 +%%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.245 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 10 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 +(moeoMetric) cw +(eoFunctorBase) cw +(moeoBinaryMetric< A1, A2, R >) cw +(moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, double >) cw +(moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, R >) cw +(moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, double >) cw +(moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R >) cw +(moeoUnaryMetric< A, R >) cw +(moeoUnaryMetric< const ObjectiveVector &, R >) cw +(moeoUnaryMetric< const std::vector< ObjectiveVector > &, R >) 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 ----- + + (moeoMetric) 0 8 box + (eoFunctorBase) 0 9 box + (moeoBinaryMetric< A1, A2, R >) 1 7 box +1 7 mark + (moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, double >) 1 6 box + (moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, R >) 1 5 box + (moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, double >) 1 4 box + (moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R >) 1 3 box + (moeoUnaryMetric< A, R >) 1 2 box + (moeoUnaryMetric< const ObjectiveVector &, R >) 1 1 box +1 1 mark + (moeoUnaryMetric< const std::vector< ObjectiveVector > &, R >) 1 0 box +1 0 mark + +% ----- relations ----- + +solid +0 0 8 out +solid +1 0 9 in +solid +1 0 7.25 out +solid +0 0 7.5 hedge +solid +0 0 6.5 hedge +solid +0 0 5.5 hedge +solid +0 0 4.5 hedge +solid +0 0 3.5 hedge +solid +0 0 2.5 hedge +solid +0 0 1.5 hedge +solid +0 0 0.5 hedge +solid +0 8 0.5 vedge diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoMetric.tex new file mode 100644 index 000000000..a181e5345 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoMetric.tex @@ -0,0 +1,25 @@ +\section{moeo\-Metric Class Reference} +\label{classmoeoMetric}\index{moeoMetric@{moeoMetric}} +Base class for performance metrics (also known as quality indicators). + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Metric::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4.31433cm]{classmoeoMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +Base class for performance metrics (also known as quality indicators). + + + +Definition at line 22 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGA.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGA.eps new file mode 100644 index 000000000..0996a06ad --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGA.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 322.581 +%%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.55 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoNSGA< MOEOT >) cw +(moeoEA< MOEOT >) cw +(moeoAlgo) cw +(eoAlgo< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoNSGA< MOEOT >) 0.5 0 box + (moeoEA< MOEOT >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoAlgo< MOEOT >) 1 2 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGA.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGA.tex new file mode 100644 index 000000000..b4f2680ac --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGA.tex @@ -0,0 +1,169 @@ +\section{moeo\-NSGA$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoNSGA}\index{moeoNSGA@{moeoNSGA}} +NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. + + +{\tt \#include $<$moeo\-NSGA.h$>$} + +Inheritance diagram for moeo\-NSGA$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoNSGA} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-NSGA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op, double \_\-niche\-Size=0.5) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-NSGA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op, double \_\-niche\-Size=0.5) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Transform}. \item\end{CompactList}\item +\bf{moeo\-NSGA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \&\_\-crossover, double \_\-p\-Cross, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \&\_\-mutation, double \_\-p\-Mut, double \_\-niche\-Size=0.5) +\begin{CompactList}\small\item\em Ctor with a crossover, a mutation and their corresponding rates. \item\end{CompactList}\item +\bf{moeo\-NSGA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op, double \_\-niche\-Size=0.5) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-NSGA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op, double \_\-niche\-Size=0.5) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. \item\end{CompactList}\item +virtual void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{eo\-Gen\-Continue}$<$ MOEOT $>$ \bf{default\-Gen\-Continuator}\label{classmoeoNSGA_6dbb57c19ff00085df8397cebcce066d} + +\begin{CompactList}\small\item\em a continuator based on the number of generations (used as default) \item\end{CompactList}\item +\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{continuator}\label{classmoeoNSGA_ef67320e3820548b333577b33430fcbe} + +\begin{CompactList}\small\item\em stopping criteria \item\end{CompactList}\item +\bf{eo\-Pop\-Loop\-Eval}$<$ MOEOT $>$ \bf{pop\-Eval}\label{classmoeoNSGA_b54adef108d8b4c5a7c0da1e2065ac85} + +\begin{CompactList}\small\item\em evaluation function used to evaluate the whole population \item\end{CompactList}\item +\bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$ \bf{select}\label{classmoeoNSGA_ffd95fab4aed24fc866334c28e77a666} + +\begin{CompactList}\small\item\em binary tournament selection \item\end{CompactList}\item +\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$ \bf{fitness\-Assignment}\label{classmoeoNSGA_2c13f9fa53c29d93af39cca083ccb10d} + +\begin{CompactList}\small\item\em fitness assignment used in NSGA-II \item\end{CompactList}\item +\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$ \bf{diversity\-Assignment}\label{classmoeoNSGA_e361fa8aed173619e2aae64dba0c504a} + +\begin{CompactList}\small\item\em diversity assignment used in NSGA-II \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$ \bf{replace}\label{classmoeoNSGA_8470efa1ef87b6448f081ec802858a8c} + +\begin{CompactList}\small\item\em elitist replacement \item\end{CompactList}\item +\bf{eo\-SGAGen\-Op}$<$ MOEOT $>$ \bf{default\-SGAGen\-Op}\label{classmoeoNSGA_879b4451e77b627705280373ff0a26ab} + +\begin{CompactList}\small\item\em an object for genetic operators (used as default) \item\end{CompactList}\item +\bf{eo\-General\-Breeder}$<$ MOEOT $>$ \bf{gen\-Breed}\label{classmoeoNSGA_3ee7a5ea8ed71859ea544741de9989f2} + +\begin{CompactList}\small\item\em general breeder \item\end{CompactList}\item +\bf{eo\-Breed}$<$ MOEOT $>$ \& \bf{breed}\label{classmoeoNSGA_1538e7c32062d9d9c634b9948ca28000} + +\begin{CompactList}\small\item\em breeder \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-NSGA$<$ MOEOT $>$} + +NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. + +Srinivas, K. Deb, \char`\"{}Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms\char`\"{}. Evolutionary Computation, Vol. 2(3), No 2, pp. 221-248 (1994). This class builds the NSGA algorithm only by using the fine-grained components of the Paradis\-EO-MOEO framework. + + + +Definition at line 37 of file moeo\-NSGA.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoNSGA@{moeo\-NSGA}!moeoNSGA@{moeoNSGA}} +\index{moeoNSGA@{moeoNSGA}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGA}$<$ MOEOT $>$::\bf{moeo\-NSGA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op}, double {\em \_\-niche\-Size} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGA_3f5d288a5f3bdeb8c35dfcefbaf0dd43} + + +Simple ctor with a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-niche\-Size}]niche size \end{description} +\end{Desc} + + +Definition at line 48 of file moeo\-NSGA.h.\index{moeoNSGA@{moeo\-NSGA}!moeoNSGA@{moeoNSGA}} +\index{moeoNSGA@{moeoNSGA}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGA}$<$ MOEOT $>$::\bf{moeo\-NSGA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op}, double {\em \_\-niche\-Size} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGA_177e825966d70e7f697a52be7819e830} + + +Simple ctor with a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-niche\-Size}]niche size \end{description} +\end{Desc} + + +Definition at line 61 of file moeo\-NSGA.h.\index{moeoNSGA@{moeo\-NSGA}!moeoNSGA@{moeoNSGA}} +\index{moeoNSGA@{moeoNSGA}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGA}$<$ MOEOT $>$::\bf{moeo\-NSGA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \& {\em \_\-crossover}, double {\em \_\-p\-Cross}, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \& {\em \_\-mutation}, double {\em \_\-p\-Mut}, double {\em \_\-niche\-Size} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGA_7c7b4bb55b7ee74da780f20a943809fd} + + +Ctor with a crossover, a mutation and their corresponding rates. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-crossover}]crossover \item[{\em \_\-p\-Cross}]crossover probability \item[{\em \_\-mutation}]mutation \item[{\em \_\-p\-Mut}]mutation probability \item[{\em \_\-niche\-Size}]niche size \end{description} +\end{Desc} + + +Definition at line 77 of file moeo\-NSGA.h.\index{moeoNSGA@{moeo\-NSGA}!moeoNSGA@{moeoNSGA}} +\index{moeoNSGA@{moeoNSGA}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGA}$<$ MOEOT $>$::\bf{moeo\-NSGA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op}, double {\em \_\-niche\-Size} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGA_5f8a315499cb7e65911af0c7587144d8} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-niche\-Size}]niche size \end{description} +\end{Desc} + + +Definition at line 91 of file moeo\-NSGA.h.\index{moeoNSGA@{moeo\-NSGA}!moeoNSGA@{moeoNSGA}} +\index{moeoNSGA@{moeoNSGA}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGA}$<$ MOEOT $>$::\bf{moeo\-NSGA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op}, double {\em \_\-niche\-Size} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGA_eacee61268618c12d44d2f07cf7a796c} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-niche\-Size}]niche size \end{description} +\end{Desc} + + +Definition at line 104 of file moeo\-NSGA.h. + +\subsection{Member Function Documentation} +\index{moeoNSGA@{moeo\-NSGA}!operator()@{operator()}} +\index{operator()@{operator()}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-NSGA}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNSGA_632676ceb299f3318c116b2b2b386b0d} + + +Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 114 of file moeo\-NSGA.h. + +References moeo\-NSGA$<$ MOEOT $>$::breed, moeo\-NSGA$<$ MOEOT $>$::continuator, moeo\-NSGA$<$ MOEOT $>$::diversity\-Assignment, moeo\-NSGA$<$ MOEOT $>$::fitness\-Assignment, moeo\-NSGA$<$ MOEOT $>$::pop\-Eval, and moeo\-NSGA$<$ MOEOT $>$::replace. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-NSGA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGAII.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGAII.eps new file mode 100644 index 000000000..5f2c5c2fb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGAII.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 310.559 +%%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.61 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoNSGAII< MOEOT >) cw +(moeoEA< MOEOT >) cw +(moeoAlgo) cw +(eoAlgo< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoNSGAII< MOEOT >) 0.5 0 box + (moeoEA< MOEOT >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoAlgo< MOEOT >) 1 2 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGAII.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGAII.tex new file mode 100644 index 000000000..9b00c8430 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNSGAII.tex @@ -0,0 +1,169 @@ +\section{moeo\-NSGAII$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoNSGAII}\index{moeoNSGAII@{moeoNSGAII}} +NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. + + +{\tt \#include $<$moeo\-NSGAII.h$>$} + +Inheritance diagram for moeo\-NSGAII$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoNSGAII} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-NSGAII} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-NSGAII} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Transform}. \item\end{CompactList}\item +\bf{moeo\-NSGAII} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \&\_\-crossover, double \_\-p\-Cross, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \&\_\-mutation, double \_\-p\-Mut) +\begin{CompactList}\small\item\em Ctor with a crossover, a mutation and their corresponding rates. \item\end{CompactList}\item +\bf{moeo\-NSGAII} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-NSGAII} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. \item\end{CompactList}\item +virtual void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{eo\-Gen\-Continue}$<$ MOEOT $>$ \bf{default\-Gen\-Continuator}\label{classmoeoNSGAII_2bc5adbd55a32faead1c4ac0cbac3b35} + +\begin{CompactList}\small\item\em a continuator based on the number of generations (used as default) \item\end{CompactList}\item +\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{continuator}\label{classmoeoNSGAII_7eb1e36631eebbe3216167b1077e3a53} + +\begin{CompactList}\small\item\em stopping criteria \item\end{CompactList}\item +\bf{eo\-Pop\-Loop\-Eval}$<$ MOEOT $>$ \bf{pop\-Eval}\label{classmoeoNSGAII_5b042567e51f014b3fe841346d9830a0} + +\begin{CompactList}\small\item\em evaluation function used to evaluate the whole population \item\end{CompactList}\item +\bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$ \bf{select}\label{classmoeoNSGAII_6134c5baa1c6921aaacd67f6f452871a} + +\begin{CompactList}\small\item\em binary tournament selection \item\end{CompactList}\item +\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$ \bf{fitness\-Assignment}\label{classmoeoNSGAII_2cf7c853cc4213664b0654b1e5a8862a} + +\begin{CompactList}\small\item\em fitness assignment used in NSGA-II \item\end{CompactList}\item +\bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$ \bf{diversity\-Assignment}\label{classmoeoNSGAII_4abf4583668c6f145f4dbb0a24d2dae0} + +\begin{CompactList}\small\item\em diversity assignment used in NSGA-II \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$ \bf{replace}\label{classmoeoNSGAII_75bc4b735c5de2a6fc93b2f2b63c7251} + +\begin{CompactList}\small\item\em elitist replacement \item\end{CompactList}\item +\bf{eo\-SGAGen\-Op}$<$ MOEOT $>$ \bf{default\-SGAGen\-Op}\label{classmoeoNSGAII_a2050440184979533f2c403bb044c064} + +\begin{CompactList}\small\item\em an object for genetic operators (used as default) \item\end{CompactList}\item +\bf{eo\-General\-Breeder}$<$ MOEOT $>$ \bf{gen\-Breed}\label{classmoeoNSGAII_2099c3069a7da12485578fc66ff71ff1} + +\begin{CompactList}\small\item\em general breeder \item\end{CompactList}\item +\bf{eo\-Breed}$<$ MOEOT $>$ \& \bf{breed}\label{classmoeoNSGAII_17954849435e579d74bf37ed7b9063fc} + +\begin{CompactList}\small\item\em breeder \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-NSGAII$<$ MOEOT $>$} + +NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. + +Agrawal, A. Pratap, and T. Meyarivan : \char`\"{}A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-II\char`\"{}. In IEEE Transactions on Evolutionary Computation, Vol. 6, No 2, pp 182-197 (April 2002). This class builds the NSGA-II algorithm only by using the fine-grained components of the Paradis\-EO-MOEO framework. + + + +Definition at line 37 of file moeo\-NSGAII.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoNSGAII@{moeo\-NSGAII}!moeoNSGAII@{moeoNSGAII}} +\index{moeoNSGAII@{moeoNSGAII}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGAII}$<$ MOEOT $>$::\bf{moeo\-NSGAII} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGAII_a13ddb75d60e2956905a9eacca2e0b2e} + + +Simple ctor with a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \end{description} +\end{Desc} + + +Definition at line 47 of file moeo\-NSGAII.h.\index{moeoNSGAII@{moeo\-NSGAII}!moeoNSGAII@{moeoNSGAII}} +\index{moeoNSGAII@{moeoNSGAII}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGAII}$<$ MOEOT $>$::\bf{moeo\-NSGAII} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGAII_56a2b2ab62b2a4025f1d122e3cfa2aa2} + + +Simple ctor with a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \end{description} +\end{Desc} + + +Definition at line 59 of file moeo\-NSGAII.h.\index{moeoNSGAII@{moeo\-NSGAII}!moeoNSGAII@{moeoNSGAII}} +\index{moeoNSGAII@{moeoNSGAII}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGAII}$<$ MOEOT $>$::\bf{moeo\-NSGAII} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \& {\em \_\-crossover}, double {\em \_\-p\-Cross}, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \& {\em \_\-mutation}, double {\em \_\-p\-Mut})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGAII_996e1b2683378ae1880b7520814aa9c9} + + +Ctor with a crossover, a mutation and their corresponding rates. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-crossover}]crossover \item[{\em \_\-p\-Cross}]crossover probability \item[{\em \_\-mutation}]mutation \item[{\em \_\-p\-Mut}]mutation probability \end{description} +\end{Desc} + + +Definition at line 74 of file moeo\-NSGAII.h.\index{moeoNSGAII@{moeo\-NSGAII}!moeoNSGAII@{moeoNSGAII}} +\index{moeoNSGAII@{moeoNSGAII}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGAII}$<$ MOEOT $>$::\bf{moeo\-NSGAII} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGAII_1797f01afde01d155e559522df12ae05} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \end{description} +\end{Desc} + + +Definition at line 87 of file moeo\-NSGAII.h.\index{moeoNSGAII@{moeo\-NSGAII}!moeoNSGAII@{moeoNSGAII}} +\index{moeoNSGAII@{moeoNSGAII}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGAII}$<$ MOEOT $>$::\bf{moeo\-NSGAII} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGAII_a2b8d5b2ca7e7fd5845c6cda896b75c6} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \end{description} +\end{Desc} + + +Definition at line 99 of file moeo\-NSGAII.h. + +\subsection{Member Function Documentation} +\index{moeoNSGAII@{moeo\-NSGAII}!operator()@{operator()}} +\index{operator()@{operator()}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-NSGAII}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNSGAII_60ba3ed4287efe81e1ff66b22e1d2e14} + + +Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 109 of file moeo\-NSGAII.h. + +References moeo\-NSGAII$<$ MOEOT $>$::breed, moeo\-NSGAII$<$ MOEOT $>$::continuator, moeo\-NSGAII$<$ MOEOT $>$::diversity\-Assignment, moeo\-NSGAII$<$ MOEOT $>$::fitness\-Assignment, moeo\-NSGAII$<$ MOEOT $>$::pop\-Eval, and moeo\-NSGAII$<$ MOEOT $>$::replace. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-NSGAII.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.eps new file mode 100644 index 000000000..b6b9ed08e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.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 297.398 +%%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.68125 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 +(moeoNormalizedDistance< MOEOT, Type >) cw +(moeoDistance< MOEOT, Type >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoNormalizedDistance< MOEOT, Type >) 0 0 box + (moeoDistance< MOEOT, Type >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.tex new file mode 100644 index 000000000..cacbcda7e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.tex @@ -0,0 +1,112 @@ +\section{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$ Class Template Reference} +\label{classmoeoNormalizedDistance}\index{moeoNormalizedDistance@{moeoNormalizedDistance}} +The base class for double distance computation with normalized objective values (i.e. + + +{\tt \#include $<$moeo\-Normalized\-Distance.h$>$} + +Inheritance diagram for moeo\-Normalized\-Distance$<$ MOEOT, Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoNormalizedDistance} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoNormalizedDistance_4009eb0c953bdc30b98dfc219774ce84} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Normalized\-Distance} ()\label{classmoeoNormalizedDistance_d3948169e6781aaf5f1b5de7ae09ba89} + +\begin{CompactList}\small\item\em Default ctr. \item\end{CompactList}\item +virtual void \bf{setup} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the lower and the upper bounds for every objective using extremes values for solutions contained in the population \_\-pop. \item\end{CompactList}\item +virtual void \bf{setup} (double \_\-min, double \_\-max, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Sets the lower bound (\_\-min) and the upper bound (\_\-max) for the objective \_\-obj. \item\end{CompactList}\item +virtual void \bf{setup} (\bf{eo\-Real\-Interval} \_\-real\-Interval, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Sets the lower bound and the upper bound for the objective \_\-obj using a \doxyref{eo\-Real\-Interval} object. \item\end{CompactList}\end{CompactItemize} +\subsection*{Static Public Member Functions} +\begin{CompactItemize} +\item +static double \bf{tiny} ()\label{classmoeoNormalizedDistance_3534fa0cebf35373baa77ce18cfe572a} + +\begin{CompactList}\small\item\em Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +std::vector$<$ \bf{eo\-Real\-Interval} $>$ \bf{bounds}\label{classmoeoNormalizedDistance_db85a478b20f9d8ec0f34f30a15e7bdd} + +\begin{CompactList}\small\item\em the bounds for every objective (bounds[i] = bounds for the objective i) \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Type = double$>$ class moeo\-Normalized\-Distance$<$ MOEOT, Type $>$} + +The base class for double distance computation with normalized objective values (i.e. + +between 0 and 1). + + + +Definition at line 24 of file moeo\-Normalized\-Distance.h. + +\subsection{Member Function Documentation} +\index{moeoNormalizedDistance@{moeo\-Normalized\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoNormalizedDistance@{moeo\-Normalized\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type = double$>$ virtual void \bf{moeo\-Normalized\-Distance}$<$ MOEOT, Type $>$::setup (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNormalizedDistance_b99ffed3c0ce6c9c10aef0a76d983bb1} + + +Sets the lower and the upper bounds for every objective using extremes values for solutions contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoDistance_1834a67c2a7a96f0c9a3c408108a8f8c}. + +Definition at line 59 of file moeo\-Normalized\-Distance.h. + +Referenced by moeo\-Normalized\-Distance$<$ MOEOT $>$::setup().\index{moeoNormalizedDistance@{moeo\-Normalized\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoNormalizedDistance@{moeo\-Normalized\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type = double$>$ virtual void \bf{moeo\-Normalized\-Distance}$<$ MOEOT, Type $>$::setup (double {\em \_\-min}, double {\em \_\-max}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNormalizedDistance_e58bbf9eb90a8d2704f88d774d3fe1e1} + + +Sets the lower bound (\_\-min) and the upper bound (\_\-max) for the objective \_\-obj. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-min}]lower bound \item[{\em \_\-max}]upper bound \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoDistance_341c4fa39652871761053e85914a16ad}. + +Definition at line 83 of file moeo\-Normalized\-Distance.h.\index{moeoNormalizedDistance@{moeo\-Normalized\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoNormalizedDistance@{moeo\-Normalized\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type = double$>$ virtual void \bf{moeo\-Normalized\-Distance}$<$ MOEOT, Type $>$::setup (\bf{eo\-Real\-Interval} {\em \_\-real\-Interval}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNormalizedDistance_dda4f95d7f6cae9dd1f4bf6cd8fb7c1c} + + +Sets the lower bound and the upper bound for the objective \_\-obj using a \doxyref{eo\-Real\-Interval} object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-real\-Interval}]the \doxyref{eo\-Real\-Interval} object \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoDistance_b08e7b8c1bedb2993669ec0315fb2b73}. + +Definition at line 99 of file moeo\-Normalized\-Distance.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Normalized\-Distance.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.eps new file mode 100644 index 000000000..c4f1216cf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 117.925 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.24 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) cw +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0.5 0 box + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0.5 1 box + (moeoBinaryMetric< A1, A2, R >) 0.5 2 box + (eoBF< A1, A2, R >) 0 3 box + (moeoMetric) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.tex new file mode 100644 index 000000000..531f2961c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.tex @@ -0,0 +1,84 @@ +\section{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$ Class Template Reference} +\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric}\index{moeoNormalizedSolutionVsSolutionBinaryMetric@{moeoNormalizedSolutionVsSolutionBinaryMetric}} +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. + + +{\tt \#include $<$moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric.h$>$} + +Inheritance diagram for moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.30189cm]{classmoeoNormalizedSolutionVsSolutionBinaryMetric} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric} ()\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric_e58174a553269d3e8b0685a1f22b8333} + +\begin{CompactList}\small\item\em Default ctr for any \doxyref{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}{p.}{classmoeoNormalizedSolutionVsSolutionBinaryMetric} object. \item\end{CompactList}\item +void \bf{setup} (double \_\-min, double \_\-max, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Sets the lower bound (\_\-min) and the upper bound (\_\-max) for the objective \_\-obj. \item\end{CompactList}\item +virtual void \bf{setup} (\bf{eo\-Real\-Interval} \_\-real\-Interval, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Sets the lower bound and the upper bound for the objective \_\-obj using a \doxyref{eo\-Real\-Interval} object. \item\end{CompactList}\end{CompactItemize} +\subsection*{Static Public Member Functions} +\begin{CompactItemize} +\item +static double \bf{tiny} ()\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric_d0ccbdceb71b9d2d6ae8ceec1af9dcdb} + +\begin{CompactList}\small\item\em Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +std::vector$<$ \bf{eo\-Real\-Interval} $>$ \bf{bounds}\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric_81bff9a83c74f7f7f8a1db28c09c4c38} + +\begin{CompactList}\small\item\em the bounds for every objective (bounds[i] = bounds for the objective i) \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector, class R$>$ class moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$} + +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. + +Then, indicator values lie in the interval [-1,1]. Note that you have to set the bounds for every objective before using the operator(). + + + +Definition at line 26 of file moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric.h. + +\subsection{Member Function Documentation} +\index{moeoNormalizedSolutionVsSolutionBinaryMetric@{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}!setup@{setup}} +\index{setup@{setup}!moeoNormalizedSolutionVsSolutionBinaryMetric@{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector, class R$>$ void \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ Objective\-Vector, R $>$::setup (double {\em \_\-min}, double {\em \_\-max}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric_1f56a2f59a9b0548ad0ab691c8a02334} + + +Sets the lower bound (\_\-min) and the upper bound (\_\-max) for the objective \_\-obj. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-min}]lower bound \item[{\em \_\-max}]upper bound \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Definition at line 50 of file moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric.h. + +Referenced by moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::setup().\index{moeoNormalizedSolutionVsSolutionBinaryMetric@{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}!setup@{setup}} +\index{setup@{setup}!moeoNormalizedSolutionVsSolutionBinaryMetric@{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector, class R$>$ virtual void \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ Objective\-Vector, R $>$::setup (\bf{eo\-Real\-Interval} {\em \_\-real\-Interval}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric_0693a23c68e3fe0bb546e34926dcfe93} + + +Sets the lower bound and the upper bound for the objective \_\-obj using a \doxyref{eo\-Real\-Interval} object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-real\-Interval}]the \doxyref{eo\-Real\-Interval} object \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Definition at line 66 of file moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.eps new file mode 100644 index 000000000..d06716d53 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.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 211.64 +%%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.3625 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 +(moeoObjectiveObjectiveVectorComparator< ObjectiveVector >) cw +(moeoObjectiveVectorComparator< ObjectiveVector >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoObjectiveObjectiveVectorComparator< ObjectiveVector >) 0 0 box + (moeoObjectiveVectorComparator< ObjectiveVector >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.tex new file mode 100644 index 000000000..6117be6be --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.tex @@ -0,0 +1,49 @@ +\section{moeo\-Objective\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoObjectiveObjectiveVectorComparator}\index{moeoObjectiveObjectiveVectorComparator@{moeoObjectiveObjectiveVectorComparator}} +Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. + + +{\tt \#include $<$moeo\-Objective\-Objective\-Vector\-Comparator.h$>$} + +Inheritance diagram for moeo\-Objective\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoObjectiveObjectiveVectorComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const bool \bf{operator()} (const Objective\-Vector \&\_\-objective\-Vector1, const Objective\-Vector \&\_\-objective\-Vector2) +\begin{CompactList}\small\item\em Returns true if \_\-objective\-Vector1 $<$ \_\-objective\-Vector2 on the first objective, then on the second, and so on. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Objective\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} + +Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. + + + +Definition at line 22 of file moeo\-Objective\-Objective\-Vector\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoObjectiveObjectiveVectorComparator@{moeo\-Objective\-Objective\-Vector\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoObjectiveObjectiveVectorComparator@{moeo\-Objective\-Objective\-Vector\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ const bool \bf{moeo\-Objective\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$::operator() (const Objective\-Vector \& {\em \_\-objective\-Vector1}, const Objective\-Vector \& {\em \_\-objective\-Vector2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoObjectiveObjectiveVectorComparator_bc3c97b380e87107e92f52843a7f9303} + + +Returns true if \_\-objective\-Vector1 $<$ \_\-objective\-Vector2 on the first objective, then on the second, and so on. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector1}]the first objective vector \item[{\em \_\-objective\-Vector2}]the second objective vector \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Objective\-Objective\-Vector\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Objective\-Objective\-Vector\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVector.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVector.tex new file mode 100644 index 000000000..f97618af4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVector.tex @@ -0,0 +1,114 @@ +\section{moeo\-Objective\-Vector$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$ Class Template Reference} +\label{classmoeoObjectiveVector}\index{moeoObjectiveVector@{moeoObjectiveVector}} +Abstract class allowing to represent a solution in the objective space (phenotypic representation). + + +{\tt \#include $<$moeo\-Objective\-Vector.h$>$} + +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef Objective\-Vector\-Traits \bf{Traits}\label{classmoeoObjectiveVector_21ee0475420b613951b96a550e814fbb} + +\begin{CompactList}\small\item\em The traits of objective vectors. \item\end{CompactList}\item +typedef Objective\-Vector\-Type \bf{Type}\label{classmoeoObjectiveVector_e86f199692cae43bc346be63130eb993} + +\begin{CompactList}\small\item\em The type of an objective value. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Objective\-Vector} (\bf{Type} \_\-value=\bf{Type}())\label{classmoeoObjectiveVector_084e9d2cecbf9ea66e4b68537457109f} + +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +\bf{moeo\-Objective\-Vector} (std::vector$<$ \bf{Type} $>$ \&\_\-v) +\begin{CompactList}\small\item\em Ctor from a vector of Type. \item\end{CompactList}\end{CompactItemize} +\subsection*{Static Public Member Functions} +\begin{CompactItemize} +\item +static void \bf{setup} (unsigned int \_\-n\-Objectives, std::vector$<$ bool $>$ \&\_\-b\-Objectives) +\begin{CompactList}\small\item\em \doxyref{Parameters} setting (for the objective vector of any solution). \item\end{CompactList}\item +static unsigned int \bf{n\-Objectives} ()\label{classmoeoObjectiveVector_4c9a17116e0a95b4e3191f299e10fc9d} + +\begin{CompactList}\small\item\em Returns the number of objectives. \item\end{CompactList}\item +static bool \bf{minimizing} (unsigned int \_\-i) +\begin{CompactList}\small\item\em Returns true if the \_\-ith objective have to be minimized. \item\end{CompactList}\item +static bool \bf{maximizing} (unsigned int \_\-i) +\begin{CompactList}\small\item\em Returns true if the \_\-ith objective have to be maximized. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector\-Traits, class Objective\-Vector\-Type$>$ class moeo\-Objective\-Vector$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$} + +Abstract class allowing to represent a solution in the objective space (phenotypic representation). + +The template argument Objective\-Vector\-Traits defaults to \doxyref{moeo\-Objective\-Vector\-Traits}{p.}{classmoeoObjectiveVectorTraits}, but it can be replaced at will by any other class that implements the static functions defined therein. Some static funtions to access to the traits characteristics are re-defined in order not to write a lot of typedef's. + + + +Definition at line 25 of file moeo\-Objective\-Vector.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoObjectiveVector@{moeo\-Objective\-Vector}!moeoObjectiveVector@{moeoObjectiveVector}} +\index{moeoObjectiveVector@{moeoObjectiveVector}!moeoObjectiveVector@{moeo\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits, class Objective\-Vector\-Type$>$ \bf{moeo\-Objective\-Vector}$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$::\bf{moeo\-Objective\-Vector} (std::vector$<$ \bf{Type} $>$ \& {\em \_\-v})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoObjectiveVector_c504cb6a2086a80aaaf41978032c8ce7} + + +Ctor from a vector of Type. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-v}]the std::vector $<$ Type $>$ \end{description} +\end{Desc} + + +Definition at line 46 of file moeo\-Objective\-Vector.h. + +\subsection{Member Function Documentation} +\index{moeoObjectiveVector@{moeo\-Objective\-Vector}!setup@{setup}} +\index{setup@{setup}!moeoObjectiveVector@{moeo\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits, class Objective\-Vector\-Type$>$ static void \bf{moeo\-Objective\-Vector}$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$::setup (unsigned int {\em \_\-n\-Objectives}, std::vector$<$ bool $>$ \& {\em \_\-b\-Objectives})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVector_0593e2d91be697d9b255513236cb207f} + + +\doxyref{Parameters} setting (for the objective vector of any solution). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-n\-Objectives}]the number of objectives \item[{\em \_\-b\-Objectives}]the min/max vector (true = min / false = max) \end{description} +\end{Desc} + + +Definition at line 55 of file moeo\-Objective\-Vector.h.\index{moeoObjectiveVector@{moeo\-Objective\-Vector}!minimizing@{minimizing}} +\index{minimizing@{minimizing}!moeoObjectiveVector@{moeo\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits, class Objective\-Vector\-Type$>$ static bool \bf{moeo\-Objective\-Vector}$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$::minimizing (unsigned int {\em \_\-i})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVector_decaf6e3b9a9ac97461d2b271facfc5f} + + +Returns true if the \_\-ith objective have to be minimized. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-i}]the index \end{description} +\end{Desc} + + +Definition at line 74 of file moeo\-Objective\-Vector.h.\index{moeoObjectiveVector@{moeo\-Objective\-Vector}!maximizing@{maximizing}} +\index{maximizing@{maximizing}!moeoObjectiveVector@{moeo\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits, class Objective\-Vector\-Type$>$ static bool \bf{moeo\-Objective\-Vector}$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$::maximizing (unsigned int {\em \_\-i})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVector_b62231b0e1c6bb6bab43d6d058871ce3} + + +Returns true if the \_\-ith objective have to be maximized. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-i}]the index \end{description} +\end{Desc} + + +Definition at line 84 of file moeo\-Objective\-Vector.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Objective\-Vector.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.eps new file mode 100644 index 000000000..1451a2738 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.eps @@ -0,0 +1,219 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 67.3401 +%%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 7.425 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 3 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoObjectiveVectorComparator< ObjectiveVector >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(moeoGDominanceObjectiveVectorComparator< ObjectiveVector >) cw +(moeoObjectiveObjectiveVectorComparator< ObjectiveVector >) cw +(moeoParetoObjectiveVectorComparator< ObjectiveVector >) 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 ----- + + (moeoObjectiveVectorComparator< ObjectiveVector >) 1 1 box + (eoBF< A1, A2, R >) 1 2 box + (eoFunctorBase) 1 3 box + (moeoGDominanceObjectiveVectorComparator< ObjectiveVector >) 0 0 box + (moeoObjectiveObjectiveVectorComparator< ObjectiveVector >) 1 0 box + (moeoParetoObjectiveVectorComparator< ObjectiveVector >) 2 0 box + +% ----- relations ----- + +solid +0 1 1 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +1 1 0.25 out +solid +0 2 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.tex new file mode 100644 index 000000000..9bfde27f5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.tex @@ -0,0 +1,29 @@ +\section{moeo\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoObjectiveVectorComparator}\index{moeoObjectiveVectorComparator@{moeoObjectiveVectorComparator}} +Abstract class allowing to compare 2 objective vectors. + + +{\tt \#include $<$moeo\-Objective\-Vector\-Comparator.h$>$} + +Inheritance diagram for moeo\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=1.88552cm]{classmoeoObjectiveVectorComparator} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} + +Abstract class allowing to compare 2 objective vectors. + +The template argument Objective\-Vector have to be a \doxyref{moeo\-Objective\-Vector}{p.}{classmoeoObjectiveVector}. + + + +Definition at line 24 of file moeo\-Objective\-Vector\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Objective\-Vector\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorTraits.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorTraits.tex new file mode 100644 index 000000000..ea58ffa09 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorTraits.tex @@ -0,0 +1,97 @@ +\section{moeo\-Objective\-Vector\-Traits Class Reference} +\label{classmoeoObjectiveVectorTraits}\index{moeoObjectiveVectorTraits@{moeoObjectiveVectorTraits}} +A traits class for \doxyref{moeo\-Objective\-Vector}{p.}{classmoeoObjectiveVector} to specify the number of objectives and which ones have to be minimized or maximized. + + +{\tt \#include $<$moeo\-Objective\-Vector\-Traits.h$>$} + +\subsection*{Static Public Member Functions} +\begin{CompactItemize} +\item +static void \bf{setup} (unsigned int \_\-n\-Objectives, std::vector$<$ bool $>$ \&\_\-b\-Objectives) +\begin{CompactList}\small\item\em \doxyref{Parameters} setting. \item\end{CompactList}\item +static unsigned int \bf{n\-Objectives} ()\label{classmoeoObjectiveVectorTraits_5befa177fc91ead8234bac7ce9d1e587} + +\begin{CompactList}\small\item\em Returns the number of objectives. \item\end{CompactList}\item +static bool \bf{minimizing} (unsigned int \_\-i) +\begin{CompactList}\small\item\em Returns true if the \_\-ith objective have to be minimized. \item\end{CompactList}\item +static bool \bf{maximizing} (unsigned int \_\-i) +\begin{CompactList}\small\item\em Returns true if the \_\-ith objective have to be maximized. \item\end{CompactList}\item +static double \bf{tolerance} ()\label{classmoeoObjectiveVectorTraits_c1199e4f019ec88a0365db81e9ab8d1f} + +\begin{CompactList}\small\item\em Returns the tolerance value (to compare solutions). \item\end{CompactList}\end{CompactItemize} +\subsection*{Static Private Attributes} +\begin{CompactItemize} +\item +static unsigned int \bf{n\-Obj}\label{classmoeoObjectiveVectorTraits_77b639889ffc6d306d4dfded5a160236} + +\begin{CompactList}\small\item\em The number of objectives. \item\end{CompactList}\item +static std::vector$<$ bool $>$ \bf{b\-Obj}\label{classmoeoObjectiveVectorTraits_db329d416c75711f671c9d7cffb06299} + +\begin{CompactList}\small\item\em The min/max vector. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +A traits class for \doxyref{moeo\-Objective\-Vector}{p.}{classmoeoObjectiveVector} to specify the number of objectives and which ones have to be minimized or maximized. + + + +Definition at line 23 of file moeo\-Objective\-Vector\-Traits.h. + +\subsection{Member Function Documentation} +\index{moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}!setup@{setup}} +\index{setup@{setup}!moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}static void moeo\-Objective\-Vector\-Traits::setup (unsigned int {\em \_\-n\-Objectives}, std::vector$<$ bool $>$ \& {\em \_\-b\-Objectives})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVectorTraits_327c1994f1b5aa3d6b5c8cae0b971191} + + +\doxyref{Parameters} setting. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-n\-Objectives}]the number of objectives \item[{\em \_\-b\-Objectives}]the min/max vector (true = min / false = max) \end{description} +\end{Desc} + + +Definition at line 32 of file moeo\-Objective\-Vector\-Traits.h. + +References b\-Obj, and n\-Obj.\index{moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}!minimizing@{minimizing}} +\index{minimizing@{minimizing}!moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}static bool moeo\-Objective\-Vector\-Traits::minimizing (unsigned int {\em \_\-i})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVectorTraits_1478ae3006747619aa9ef3c016bdc831} + + +Returns true if the \_\-ith objective have to be minimized. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-i}]the index \end{description} +\end{Desc} + + +Definition at line 67 of file moeo\-Objective\-Vector\-Traits.h. + +References b\-Obj. + +Referenced by maximizing().\index{moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}!maximizing@{maximizing}} +\index{maximizing@{maximizing}!moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}static bool moeo\-Objective\-Vector\-Traits::maximizing (unsigned int {\em \_\-i})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVectorTraits_c8e1a93d8c8480c391a007969ae652df} + + +Returns true if the \_\-ith objective have to be maximized. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-i}]the index \end{description} +\end{Desc} + + +Definition at line 80 of file moeo\-Objective\-Vector\-Traits.h. + +References minimizing(). + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +moeo\-Objective\-Vector\-Traits.h\item +moeo\-Objective\-Vector\-Traits.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.eps new file mode 100644 index 000000000..deebfb25e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.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 303.03 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoOneObjectiveComparator< MOEOT >) cw +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoOneObjectiveComparator< MOEOT >) 0 0 box + (moeoComparator< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.tex new file mode 100644 index 000000000..8b59cdb14 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.tex @@ -0,0 +1,78 @@ +\section{moeo\-One\-Objective\-Comparator$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoOneObjectiveComparator}\index{moeoOneObjectiveComparator@{moeoOneObjectiveComparator}} +Functor allowing to compare two solutions according to one objective. + + +{\tt \#include $<$moeo\-One\-Objective\-Comparator.h$>$} + +Inheritance diagram for moeo\-One\-Objective\-Comparator$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoOneObjectiveComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-One\-Objective\-Comparator} (unsigned int \_\-obj) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +const bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 $<$ \_\-moeo2 on the obj objective. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +unsigned int \bf{obj}\label{classmoeoOneObjectiveComparator_a45047e66adac81f5a34a2a0fe05f591} + +\begin{CompactList}\small\item\em the index of objective \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-One\-Objective\-Comparator$<$ MOEOT $>$} + +Functor allowing to compare two solutions according to one objective. + + + +Definition at line 22 of file moeo\-One\-Objective\-Comparator.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoOneObjectiveComparator@{moeo\-One\-Objective\-Comparator}!moeoOneObjectiveComparator@{moeoOneObjectiveComparator}} +\index{moeoOneObjectiveComparator@{moeoOneObjectiveComparator}!moeoOneObjectiveComparator@{moeo\-One\-Objective\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-One\-Objective\-Comparator}$<$ MOEOT $>$::\bf{moeo\-One\-Objective\-Comparator} (unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoOneObjectiveComparator_be1249440803553ef868182019d49e4d} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-obj}]the index of objective \end{description} +\end{Desc} + + +Definition at line 30 of file moeo\-One\-Objective\-Comparator.h. + +References moeo\-One\-Objective\-Comparator$<$ MOEOT $>$::obj. + +\subsection{Member Function Documentation} +\index{moeoOneObjectiveComparator@{moeo\-One\-Objective\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoOneObjectiveComparator@{moeo\-One\-Objective\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const bool \bf{moeo\-One\-Objective\-Comparator}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoOneObjectiveComparator_962a4cbc308c30a83c9c485a79374f6a} + + +Returns true if \_\-moeo1 $<$ \_\-moeo2 on the obj objective. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 44 of file moeo\-One\-Objective\-Comparator.h. + +References moeo\-One\-Objective\-Comparator$<$ MOEOT $>$::obj. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-One\-Objective\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.eps new file mode 100644 index 000000000..6905f3d2d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.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 270.27 +%%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.85 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoParetoBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) 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 ----- + + (moeoParetoBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoFitnessAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + (moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.tex new file mode 100644 index 000000000..742a285c3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Pareto\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoParetoBasedFitnessAssignment}\index{moeoParetoBasedFitnessAssignment@{moeoParetoBasedFitnessAssignment}} +\doxyref{moeo\-Pareto\-Based\-Fitness\-Assignment}{p.}{classmoeoParetoBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Pareto-based strategies. + + +{\tt \#include $<$moeo\-Pareto\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Pareto\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoParetoBasedFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Pareto\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Pareto\-Based\-Fitness\-Assignment}{p.}{classmoeoParetoBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Pareto-based strategies. + + + +Definition at line 22 of file moeo\-Pareto\-Based\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Pareto\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.eps new file mode 100644 index 000000000..cda7a9a73 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.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 221.607 +%%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.25625 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 +(moeoParetoObjectiveVectorComparator< ObjectiveVector >) cw +(moeoObjectiveVectorComparator< ObjectiveVector >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/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 ----- + + (moeoParetoObjectiveVectorComparator< ObjectiveVector >) 0 0 box + (moeoObjectiveVectorComparator< ObjectiveVector >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.tex new file mode 100644 index 000000000..fe17076c3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.tex @@ -0,0 +1,49 @@ +\section{moeo\-Pareto\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoParetoObjectiveVectorComparator}\index{moeoParetoObjectiveVectorComparator@{moeoParetoObjectiveVectorComparator}} +This functor class allows to compare 2 objective vectors according to Pareto dominance. + + +{\tt \#include $<$moeo\-Pareto\-Objective\-Vector\-Comparator.h$>$} + +Inheritance diagram for moeo\-Pareto\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoParetoObjectiveVectorComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const bool \bf{operator()} (const Objective\-Vector \&\_\-objective\-Vector1, const Objective\-Vector \&\_\-objective\-Vector2) +\begin{CompactList}\small\item\em Returns true if \_\-objective\-Vector1 is dominated by \_\-objective\-Vector2. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Pareto\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} + +This functor class allows to compare 2 objective vectors according to Pareto dominance. + + + +Definition at line 22 of file moeo\-Pareto\-Objective\-Vector\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoParetoObjectiveVectorComparator@{moeo\-Pareto\-Objective\-Vector\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoParetoObjectiveVectorComparator@{moeo\-Pareto\-Objective\-Vector\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ const bool \bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$::operator() (const Objective\-Vector \& {\em \_\-objective\-Vector1}, const Objective\-Vector \& {\em \_\-objective\-Vector2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoParetoObjectiveVectorComparator_9bd4302396fb179efe14035dc097726c} + + +Returns true if \_\-objective\-Vector1 is dominated by \_\-objective\-Vector2. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector1}]the first objective vector \item[{\em \_\-objective\-Vector2}]the second objective vector \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Pareto\-Objective\-Vector\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Pareto\-Objective\-Vector\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRandomSelect.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRandomSelect.eps new file mode 100644 index 000000000..6a6789ed7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRandomSelect.eps @@ -0,0 +1,239 @@ +%!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 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoRandomSelect< MOEOT >) cw +(moeoSelectOne< MOEOT >) cw +(eoRandomSelect< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoSelectOne< EOT, WorthT >) cw +(eoUF< A1, R >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoRandomSelect< MOEOT >) 0.5 0 box + (moeoSelectOne< MOEOT >) 0 1 box + (eoRandomSelect< MOEOT >) 1 1 box + (eoSelectOne< MOEOT >) 0 2 box + (eoSelectOne< EOT, WorthT >) 1 2 box + (eoUF< A1, R >) 0 3 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +0 1 1 conn +solid +1 0 1 in +solid +0 0 1 out +solid +1 1 1 in +solid +0 1 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRandomSelect.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRandomSelect.tex new file mode 100644 index 000000000..8209cde07 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRandomSelect.tex @@ -0,0 +1,36 @@ +\section{moeo\-Random\-Select$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoRandomSelect}\index{moeoRandomSelect@{moeoRandomSelect}} +Selection strategy that selects only one element randomly from a whole population. + + +{\tt \#include $<$moeo\-Random\-Select.h$>$} + +Inheritance diagram for moeo\-Random\-Select$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoRandomSelect} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Random\-Select} ()\label{classmoeoRandomSelect_209022add1e1750f28497dfe637bb5dc} + +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +const MOEOT \& \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop)\label{classmoeoRandomSelect_96dbd0832ad677090ef79ff3867d7af9} + +\begin{CompactList}\small\item\em Return one individual at random by using an \doxyref{eo\-Random\-Select}. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Random\-Select$<$ MOEOT $>$} + +Selection strategy that selects only one element randomly from a whole population. + + + +Definition at line 23 of file moeo\-Random\-Select.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Random\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.eps new file mode 100644 index 000000000..43966f7af --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.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 119.048 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.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 +(moeoRealObjectiveVector< ObjectiveVectorTraits >) cw +(moeoObjectiveVector< ObjectiveVectorTraits, double >) 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 ----- + + (moeoRealObjectiveVector< ObjectiveVectorTraits >) 0 0 box + (moeoObjectiveVector< ObjectiveVectorTraits, double >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.tex new file mode 100644 index 000000000..2d68acf46 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.tex @@ -0,0 +1,181 @@ +\section{moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$ Class Template Reference} +\label{classmoeoRealObjectiveVector}\index{moeoRealObjectiveVector@{moeoRealObjectiveVector}} +This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. + + +{\tt \#include $<$moeo\-Real\-Objective\-Vector.h$>$} + +Inheritance diagram for moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmoeoRealObjectiveVector} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Real\-Objective\-Vector} (double \_\-value=0.0)\label{classmoeoRealObjectiveVector_07b6df71c6ca3b50a0a0379838233525} + +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +\bf{moeo\-Real\-Objective\-Vector} (std::vector$<$ double $>$ \&\_\-v) +\begin{CompactList}\small\item\em Ctor from a vector of doubles. \item\end{CompactList}\item +bool \bf{dominates} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector dominates \_\-other according to the Pareto dominance relation (but it's better to use a \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} object to compare solutions). \item\end{CompactList}\item +bool \bf{operator==} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is equal to \_\-other (according to a tolerance value). \item\end{CompactList}\item +bool \bf{operator!=} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is different than \_\-other (according to a tolerance value). \item\end{CompactList}\item +bool \bf{operator$<$} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is smaller than \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \item\end{CompactList}\item +bool \bf{operator$>$} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is greater than \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \item\end{CompactList}\item +bool \bf{operator$<$=} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is smaller than or equal to \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \item\end{CompactList}\item +bool \bf{operator$>$=} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is greater than or equal to \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector\-Traits$>$ class moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$} + +This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. + +that an objective value is represented using a double, and this for any objective. + + + +Definition at line 27 of file moeo\-Real\-Objective\-Vector.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!moeoRealObjectiveVector@{moeoRealObjectiveVector}} +\index{moeoRealObjectiveVector@{moeoRealObjectiveVector}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::\bf{moeo\-Real\-Objective\-Vector} (std::vector$<$ double $>$ \& {\em \_\-v})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_59083142c6a1766f0df30f2457fff34c} + + +Ctor from a vector of doubles. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-v}]the std::vector $<$ double $>$ \end{description} +\end{Desc} + + +Definition at line 45 of file moeo\-Real\-Objective\-Vector.h. + +\subsection{Member Function Documentation} +\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!dominates@{dominates}} +\index{dominates@{dominates}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::dominates (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_403a1b537d7accba53ecc939dbe5b829} + + +Returns true if the current objective vector dominates \_\-other according to the Pareto dominance relation (but it's better to use a \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} object to compare solutions). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 54 of file moeo\-Real\-Objective\-Vector.h.\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator==@{operator==}} +\index{operator==@{operator==}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator== (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_e2f1665239fac279784a7c2d4e030a0a} + + +Returns true if the current objective vector is equal to \_\-other (according to a tolerance value). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 65 of file moeo\-Real\-Objective\-Vector.h. + +Referenced by moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator!=(), and moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator$>$=().\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator"!=@{operator"!=}} +\index{operator"!=@{operator"!=}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator!= (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_7300c03310d45932f3de8b54f7079c61} + + +Returns true if the current objective vector is different than \_\-other (according to a tolerance value). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 82 of file moeo\-Real\-Objective\-Vector.h. + +References moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator==().\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator<@{operator$<$}} +\index{operator<@{operator$<$}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator$<$ (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_2113937b8a097943278f471255f2da28} + + +Returns true if the current objective vector is smaller than \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 93 of file moeo\-Real\-Objective\-Vector.h. + +Referenced by moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator$<$=().\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator>@{operator$>$}} +\index{operator>@{operator$>$}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator$>$ (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_6f3b3f40139f9a6ede18297b6eff3189} + + +Returns true if the current objective vector is greater than \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 105 of file moeo\-Real\-Objective\-Vector.h. + +Referenced by moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator$>$=().\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator<=@{operator$<$=}} +\index{operator<=@{operator$<$=}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator$<$= (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_f7ea79ab6b2a6672df9a5725e7d842a0} + + +Returns true if the current objective vector is smaller than or equal to \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 116 of file moeo\-Real\-Objective\-Vector.h. + +References moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator$<$().\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator>=@{operator$>$=}} +\index{operator>=@{operator$>$=}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator$>$= (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_1aadf971866abb81a35fadbe650c9701} + + +Returns true if the current objective vector is greater than or equal to \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 127 of file moeo\-Real\-Objective\-Vector.h. + +References moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator==(), and moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator$>$(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Real\-Objective\-Vector.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealVector.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealVector.eps new file mode 100644 index 000000000..68a3a30ef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealVector.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 126.05 +%%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.96667 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 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 +(moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >) cw +(MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(EO< MOEOObjectiveVector >) cw +(eoObject) cw +(eoPersistent) cw +(eoPrintable) 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 ----- + + (moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 0 box + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >) 0.5 1 box + (MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 2 box + (EO< MOEOObjectiveVector >) 0.5 3 box + (eoObject) 0 4 box + (eoPersistent) 1 4 box + (eoPrintable) 1 5 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +0 1 4 conn +solid +1 0 4 in +solid +1 1 4 in +solid +0 1 4 out +solid +1 1 5 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealVector.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealVector.tex new file mode 100644 index 000000000..708720a20 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRealVector.tex @@ -0,0 +1,52 @@ +\section{moeo\-Real\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$ Class Template Reference} +\label{classmoeoRealVector}\index{moeoRealVector@{moeoRealVector}} +This class is an implementation of a simple double-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector}. + + +{\tt \#include $<$moeo\-Real\-Vector.h$>$} + +Inheritance diagram for moeo\-Real\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.52941cm]{classmoeoRealVector} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Real\-Vector} (unsigned int \_\-size=0, double \_\-value=0.0) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +virtual std::string \bf{class\-Name} () const \label{classmoeoRealVector_0585cfbce7824e8c2a0f336017b9ffd9} + +\begin{CompactList}\small\item\em Returns the class name as a std::string. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ class moeo\-Real\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} + +This class is an implementation of a simple double-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector}. + + + +Definition at line 22 of file moeo\-Real\-Vector.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoRealVector@{moeo\-Real\-Vector}!moeoRealVector@{moeoRealVector}} +\index{moeoRealVector@{moeoRealVector}!moeoRealVector@{moeo\-Real\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ \bf{moeo\-Real\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::\bf{moeo\-Real\-Vector} (unsigned int {\em \_\-size} = {\tt 0}, double {\em \_\-value} = {\tt 0.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealVector_575f601664ea6d9d48e3e11c4beeafed} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-size}]Length of vector (default is 0) \item[{\em \_\-value}]Initial value of all elements (default is default value of type Gene\-Type) \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Real\-Vector.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Real\-Vector.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoReplacement.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoReplacement.eps new file mode 100644 index 000000000..ab3b9798a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoReplacement.eps @@ -0,0 +1,225 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 122.549 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.08 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 3 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoReplacement< MOEOT >) cw +(eoReplacement< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(moeoElitistReplacement< MOEOT >) cw +(moeoEnvironmentalReplacement< MOEOT >) cw +(moeoGenerationalReplacement< MOEOT >) 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 ----- + + (moeoReplacement< MOEOT >) 1 1 box + (eoReplacement< MOEOT >) 1 2 box + (eoBF< A1, A2, R >) 1 3 box + (eoFunctorBase) 1 4 box + (moeoElitistReplacement< MOEOT >) 0 0 box + (moeoEnvironmentalReplacement< MOEOT >) 1 0 box + (moeoGenerationalReplacement< MOEOT >) 2 0 box + +% ----- relations ----- + +solid +0 1 1 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in +solid +1 1 0.25 out +solid +0 2 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoReplacement.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoReplacement.tex new file mode 100644 index 000000000..2a3aeebb4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoReplacement.tex @@ -0,0 +1,27 @@ +\section{moeo\-Replacement$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoReplacement}\index{moeoReplacement@{moeoReplacement}} +Replacement strategy for multi-objective optimization. + + +{\tt \#include $<$moeo\-Replacement.h$>$} + +Inheritance diagram for moeo\-Replacement$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.43137cm]{classmoeoReplacement} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Replacement$<$ MOEOT $>$} + +Replacement strategy for multi-objective optimization. + + + +Definition at line 22 of file moeo\-Replacement.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.eps new file mode 100644 index 000000000..d9a7d8227 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.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 500 +%%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 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoRouletteSelect< MOEOT >) cw +(moeoSelectOne< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoRouletteSelect< MOEOT >) 0 0 box + (moeoSelectOne< MOEOT >) 0 1 box + (eoSelectOne< MOEOT >) 0 2 box + (eoUF< A1, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.tex new file mode 100644 index 000000000..83ad8f48c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.tex @@ -0,0 +1,82 @@ +\section{moeo\-Roulette\-Select$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoRouletteSelect}\index{moeoRouletteSelect@{moeoRouletteSelect}} +Selection strategy that selects ONE individual by using roulette wheel process. + + +{\tt \#include $<$moeo\-Roulette\-Select.h$>$} + +Inheritance diagram for moeo\-Roulette\-Select$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoRouletteSelect} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Roulette\-Select} (unsigned int \_\-t\-Size=2) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +const MOEOT \& \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply the tournament to the given population. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +double \& \bf{t\-Size}\label{classmoeoRouletteSelect_19af84fe966381cbfbe032f69ee0b42b} + +\begin{CompactList}\small\item\em size \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Roulette\-Select$<$ MOEOT $>$} + +Selection strategy that selects ONE individual by using roulette wheel process. + +\begin{Desc} +\item[Warning:]This selection only uses fitness values (and not diversity values). \end{Desc} + + + + +Definition at line 24 of file moeo\-Roulette\-Select.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoRouletteSelect@{moeo\-Roulette\-Select}!moeoRouletteSelect@{moeoRouletteSelect}} +\index{moeoRouletteSelect@{moeoRouletteSelect}!moeoRouletteSelect@{moeo\-Roulette\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Roulette\-Select}$<$ MOEOT $>$::\bf{moeo\-Roulette\-Select} (unsigned int {\em \_\-t\-Size} = {\tt 2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRouletteSelect_4caa45f4c9d1ad2949cc14d2c21b77ea} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-t\-Size}]the number of individuals in the tournament (default: 2) \end{description} +\end{Desc} + + +Definition at line 32 of file moeo\-Roulette\-Select.h. + +References moeo\-Roulette\-Select$<$ MOEOT $>$::t\-Size. + +\subsection{Member Function Documentation} +\index{moeoRouletteSelect@{moeo\-Roulette\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moeoRouletteSelect@{moeo\-Roulette\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const MOEOT\& \bf{moeo\-Roulette\-Select}$<$ MOEOT $>$::operator() (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRouletteSelect_573fe156daf6fdfbae96d2b54a9fc260} + + +Apply the tournament to the given population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 48 of file moeo\-Roulette\-Select.h. + +References moeo\-Roulette\-Select$<$ MOEOT $>$::t\-Size. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Roulette\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.eps new file mode 100644 index 000000000..c325c6d69 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.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 336.7 +%%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.485 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoScalarFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoAchievementFitnessAssignment< MOEOT >) 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 ----- + + (moeoScalarFitnessAssignment< MOEOT >) 0 1 box + (moeoFitnessAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + (moeoAchievementFitnessAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.tex new file mode 100644 index 000000000..39534c2a6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Scalar\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoScalarFitnessAssignment}\index{moeoScalarFitnessAssignment@{moeoScalarFitnessAssignment}} +\doxyref{moeo\-Scalar\-Fitness\-Assignment}{p.}{classmoeoScalarFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for scalar strategies. + + +{\tt \#include $<$moeo\-Scalar\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Scalar\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoScalarFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Scalar\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Scalar\-Fitness\-Assignment}{p.}{classmoeoScalarFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for scalar strategies. + + + +Definition at line 22 of file moeo\-Scalar\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Scalar\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.eps new file mode 100644 index 000000000..5e90b21a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.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 389.105 +%%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.285 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoSelectFromPopAndArch< MOEOT >) cw +(moeoSelectOne< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoSelectFromPopAndArch< MOEOT >) 0 0 box + (moeoSelectOne< MOEOT >) 0 1 box + (eoSelectOne< MOEOT >) 0 2 box + (eoUF< A1, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.tex new file mode 100644 index 000000000..6f2be7c04 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.tex @@ -0,0 +1,89 @@ +\section{moeo\-Select\-From\-Pop\-And\-Arch$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoSelectFromPopAndArch}\index{moeoSelectFromPopAndArch@{moeoSelectFromPopAndArch}} +Elitist selection process that consists in choosing individuals in the archive as well as in the current population. + + +{\tt \#include $<$moeo\-Select\-From\-Pop\-And\-Arch.h$>$} + +Inheritance diagram for moeo\-Select\-From\-Pop\-And\-Arch$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoSelectFromPopAndArch} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Select\-From\-Pop\-And\-Arch} (\bf{moeo\-Select\-One}$<$ MOEOT $>$ \&\_\-pop\-Select\-One, \bf{moeo\-Select\-One}$<$ MOEOT $>$ \_\-arch\-Select\-One, \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch, double \_\-ratio\-From\-Pop=0.5) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +\bf{moeo\-Select\-From\-Pop\-And\-Arch} (\bf{moeo\-Select\-One}$<$ MOEOT $>$ \&\_\-pop\-Select\-One, \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch, double \_\-ratio\-From\-Pop=0.5) +\begin{CompactList}\small\item\em Defaulr ctor - the archive's selection operator is a random selector. \item\end{CompactList}\item +virtual const MOEOT \& \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&pop)\label{classmoeoSelectFromPopAndArch_7b763aef8e25f205159b69b3f746c942} + +\begin{CompactList}\small\item\em The selection process. \item\end{CompactList}\item +virtual void \bf{setup} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop)\label{classmoeoSelectFromPopAndArch_70180aeaa5d647a720276c82b7a0b111} + +\begin{CompactList}\small\item\em Setups some population stats. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Select\-One}$<$ MOEOT $>$ \& \bf{pop\-Select\-One}\label{classmoeoSelectFromPopAndArch_e16fb61bf9c115b0a34528e512d30ac6} + +\begin{CompactList}\small\item\em The population's selection operator. \item\end{CompactList}\item +\bf{moeo\-Select\-One}$<$ MOEOT $>$ \& \bf{arch\-Select\-One}\label{classmoeoSelectFromPopAndArch_a34f3871b3a9f94614a15c381c2fa570} + +\begin{CompactList}\small\item\em The archive's selection operator. \item\end{CompactList}\item +\bf{moeo\-Archive}$<$ MOEOT $>$ \& \bf{arch}\label{classmoeoSelectFromPopAndArch_e87de22341f2225ea94ee2895a7eb4a6} + +\begin{CompactList}\small\item\em The archive. \item\end{CompactList}\item +double \bf{ratio\-From\-Pop}\label{classmoeoSelectFromPopAndArch_78a1e18111b46c447c86a0f77484d970} + +\begin{CompactList}\small\item\em The ratio of selected individuals from the population. \item\end{CompactList}\item +\bf{moeo\-Random\-Select}$<$ MOEOT $>$ \bf{random\-Select\-One}\label{classmoeoSelectFromPopAndArch_d6094492eed214e3bdb0330620a5890a} + +\begin{CompactList}\small\item\em A random selection operator (used as default for arch\-Select\-One). \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Select\-From\-Pop\-And\-Arch$<$ MOEOT $>$} + +Elitist selection process that consists in choosing individuals in the archive as well as in the current population. + + + +Definition at line 26 of file moeo\-Select\-From\-Pop\-And\-Arch.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoSelectFromPopAndArch@{moeo\-Select\-From\-Pop\-And\-Arch}!moeoSelectFromPopAndArch@{moeoSelectFromPopAndArch}} +\index{moeoSelectFromPopAndArch@{moeoSelectFromPopAndArch}!moeoSelectFromPopAndArch@{moeo\-Select\-From\-Pop\-And\-Arch}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Select\-From\-Pop\-And\-Arch}$<$ MOEOT $>$::\bf{moeo\-Select\-From\-Pop\-And\-Arch} (\bf{moeo\-Select\-One}$<$ MOEOT $>$ \& {\em \_\-pop\-Select\-One}, \bf{moeo\-Select\-One}$<$ MOEOT $>$ {\em \_\-arch\-Select\-One}, \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch}, double {\em \_\-ratio\-From\-Pop} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoSelectFromPopAndArch_96b34f67d678a7df7610f28bf10c4e86} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop\-Select\-One}]the population's selection operator \item[{\em \_\-arch\-Select\-One}]the archive's selection operator \item[{\em \_\-arch}]the archive \item[{\em \_\-ratio\-From\-Pop}]the ratio of selected individuals from the population \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Select\-From\-Pop\-And\-Arch.h.\index{moeoSelectFromPopAndArch@{moeo\-Select\-From\-Pop\-And\-Arch}!moeoSelectFromPopAndArch@{moeoSelectFromPopAndArch}} +\index{moeoSelectFromPopAndArch@{moeoSelectFromPopAndArch}!moeoSelectFromPopAndArch@{moeo\-Select\-From\-Pop\-And\-Arch}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Select\-From\-Pop\-And\-Arch}$<$ MOEOT $>$::\bf{moeo\-Select\-From\-Pop\-And\-Arch} (\bf{moeo\-Select\-One}$<$ MOEOT $>$ \& {\em \_\-pop\-Select\-One}, \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch}, double {\em \_\-ratio\-From\-Pop} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoSelectFromPopAndArch_1c225b5f7b5a5ce6e87b46a7ea4a4cd0} + + +Defaulr ctor - the archive's selection operator is a random selector. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop\-Select\-One}]the population's selection operator \item[{\em \_\-arch}]the archive \item[{\em \_\-ratio\-From\-Pop}]the ratio of selected individuals from the population \end{description} +\end{Desc} + + +Definition at line 48 of file moeo\-Select\-From\-Pop\-And\-Arch.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Select\-From\-Pop\-And\-Arch.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectOne.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectOne.eps new file mode 100644 index 000000000..3af7fa4fa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectOne.eps @@ -0,0 +1,233 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 77.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 6.425 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 5 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 +(moeoSelectOne< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +(moeoDetTournamentSelect< MOEOT >) cw +(moeoRandomSelect< MOEOT >) cw +(moeoRouletteSelect< MOEOT >) cw +(moeoSelectFromPopAndArch< MOEOT >) cw +(moeoStochTournamentSelect< MOEOT >) 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 ----- + + (moeoSelectOne< MOEOT >) 2 1 box + (eoSelectOne< MOEOT >) 2 2 box + (eoUF< A1, R >) 2 3 box + (eoFunctorBase) 2 4 box + (moeoDetTournamentSelect< MOEOT >) 0 0 box + (moeoRandomSelect< MOEOT >) 1 0 box + (moeoRouletteSelect< MOEOT >) 2 0 box + (moeoSelectFromPopAndArch< MOEOT >) 3 0 box + (moeoStochTournamentSelect< MOEOT >) 4 0 box + +% ----- relations ----- + +solid +0 2 1 out +solid +1 2 2 in +solid +0 2 2 out +solid +1 2 3 in +solid +0 2 3 out +solid +1 2 4 in +solid +1 2 0.25 out +solid +0 4 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 +solid +0 4 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectOne.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectOne.tex new file mode 100644 index 000000000..fc3c2f417 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSelectOne.tex @@ -0,0 +1,27 @@ +\section{moeo\-Select\-One$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoSelectOne}\index{moeoSelectOne@{moeoSelectOne}} +Selection strategy for multi-objective optimization that selects only one element from a whole population. + + +{\tt \#include $<$moeo\-Select\-One.h$>$} + +Inheritance diagram for moeo\-Select\-One$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.17899cm]{classmoeoSelectOne} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Select\-One$<$ MOEOT $>$} + +Selection strategy for multi-objective optimization that selects only one element from a whole population. + + + +Definition at line 22 of file moeo\-Select\-One.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Select\-One.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.eps new file mode 100644 index 000000000..182d449c9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.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 283.286 +%%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.765 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoSharingDiversityAssignment< MOEOT >) cw +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoFrontByFrontSharingDiversityAssignment< MOEOT >) 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 ----- + + (moeoSharingDiversityAssignment< MOEOT >) 0 1 box + (moeoDiversityAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + (moeoFrontByFrontSharingDiversityAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.tex new file mode 100644 index 000000000..a26431630 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.tex @@ -0,0 +1,178 @@ +\section{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoSharingDiversityAssignment}\index{moeoSharingDiversityAssignment@{moeoSharingDiversityAssignment}} +Sharing assignment scheme originally porposed by: D. + + +{\tt \#include $<$moeo\-Sharing\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoSharingDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoSharingDiversityAssignment_5e92f136f41363dcb8a6df94dbf2f3b3} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Sharing\-Diversity\-Assignment} (\bf{moeo\-Distance}$<$ MOEOT, double $>$ \&\_\-distance, double \_\-niche\-Size=0.5, double \_\-alpha=1.0) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +\bf{moeo\-Sharing\-Diversity\-Assignment} (double \_\-niche\-Size=0.5, double \_\-alpha=1.0) +\begin{CompactList}\small\item\em Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets diversity values for every solution contained in the population \_\-pop. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\end{CompactItemize} +\subsection*{Protected Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{set\-Similarities} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets similarities for every solution contained in the population \_\-pop. \item\end{CompactList}\item +double \bf{sh} (double \_\-dist) +\begin{CompactList}\small\item\em Sharing function. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Distance}$<$ MOEOT, double $>$ \& \bf{distance}\label{classmoeoSharingDiversityAssignment_b81d950d0469ebd4c769994bcea58f8b} + +\begin{CompactList}\small\item\em the distance used to compute the neighborhood of solutions \item\end{CompactList}\item +\bf{moeo\-Euclidean\-Distance}$<$ MOEOT $>$ \bf{default\-Distance}\label{classmoeoSharingDiversityAssignment_ecde6f1a0ba15d9ec563396a585188f0} + +\begin{CompactList}\small\item\em euclidean distancein the objective space (can be used as default) \item\end{CompactList}\item +double \bf{niche\-Size}\label{classmoeoSharingDiversityAssignment_175d978d4b56603a3bcb45fec8395441} + +\begin{CompactList}\small\item\em neighborhood size in terms of radius distance \item\end{CompactList}\item +double \bf{alpha}\label{classmoeoSharingDiversityAssignment_95ed49448a35d5b99cdfd496a33fd45b} + +\begin{CompactList}\small\item\em parameter used to regulate the shape of the sharing function \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} + +Sharing assignment scheme originally porposed by: D. + +E. Goldberg, \char`\"{}Genetic Algorithms in Search, Optimization and Machine Learning\char`\"{}, Addision-Wesley, MA, USA (1989). + + + +Definition at line 28 of file moeo\-Sharing\-Diversity\-Assignment.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!moeoSharingDiversityAssignment@{moeoSharingDiversityAssignment}} +\index{moeoSharingDiversityAssignment@{moeoSharingDiversityAssignment}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Sharing\-Diversity\-Assignment} (\bf{moeo\-Distance}$<$ MOEOT, double $>$ \& {\em \_\-distance}, double {\em \_\-niche\-Size} = {\tt 0.5}, double {\em \_\-alpha} = {\tt 1.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoSharingDiversityAssignment_10ba0d2cdd57ce47244afdf4b1623409} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-distance}]the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) \item[{\em \_\-niche\-Size}]neighborhood size in terms of radius distance (closely related to the way the distances are computed) \item[{\em \_\-alpha}]parameter used to regulate the shape of the sharing function \end{description} +\end{Desc} + + +Definition at line 42 of file moeo\-Sharing\-Diversity\-Assignment.h.\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!moeoSharingDiversityAssignment@{moeoSharingDiversityAssignment}} +\index{moeoSharingDiversityAssignment@{moeoSharingDiversityAssignment}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Sharing\-Diversity\-Assignment} (double {\em \_\-niche\-Size} = {\tt 0.5}, double {\em \_\-alpha} = {\tt 1.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoSharingDiversityAssignment_ccc66529da0cacd3f11a019ebe646668} + + +Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-niche\-Size}]neighborhood size in terms of radius distance (closely related to the way the distances are computed) \item[{\em \_\-alpha}]parameter used to regulate the shape of the sharing function \end{description} +\end{Desc} + + +Definition at line 51 of file moeo\-Sharing\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoSharingDiversityAssignment_6228be85e166172cf03def1a004505d5} + + +Sets diversity values for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 59 of file moeo\-Sharing\-Diversity\-Assignment.h. + +References moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::set\-Similarities().\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoSharingDiversityAssignment_21c8d6e020af23b2be219b7e02248300} + + +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! \end{Desc} + + +Implements \bf{moeo\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoDiversityAssignment_57f400263b36664df6269f1b522cfdcb}. + +Reimplemented in \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontSharingDiversityAssignment_623489a246f86cf24cc5860d32caa743}. + +Definition at line 80 of file moeo\-Sharing\-Diversity\-Assignment.h.\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!setSimilarities@{setSimilarities}} +\index{setSimilarities@{setSimilarities}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::set\-Similarities (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected, virtual]}}\label{classmoeoSharingDiversityAssignment_c01f6ac1abba3799f5c4b6c0608dac55} + + +Sets similarities for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented in \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontSharingDiversityAssignment_a0f6c045237aba2857c4a9ec25679e69}. + +Definition at line 102 of file moeo\-Sharing\-Diversity\-Assignment.h. + +References moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::distance, and moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::sh(). + +Referenced by moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::operator()().\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!sh@{sh}} +\index{sh@{sh}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ double \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::sh (double {\em \_\-dist})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoSharingDiversityAssignment_5b5daaa55e97c6fcd172d61c7837e26c} + + +Sharing function. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-dist}]the distance value \end{description} +\end{Desc} + + +Definition at line 125 of file moeo\-Sharing\-Diversity\-Assignment.h. + +References moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::alpha, and moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::niche\-Size. + +Referenced by moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::set\-Similarities(), and moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::set\-Similarities(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Sharing\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.eps new file mode 100644 index 000000000..6b51f160e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.45 +%%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.775 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 +(moeoSolutionUnaryMetric< ObjectiveVector, R >) cw +(moeoUnaryMetric< const ObjectiveVector &, R >) cw +(eoUF< const ObjectiveVector &, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoSolutionUnaryMetric< ObjectiveVector, R >) 0.5 0 box + (moeoUnaryMetric< const ObjectiveVector &, R >) 0.5 1 box + (eoUF< const ObjectiveVector &, R >) 0 2 box + (moeoMetric) 1 2 box + (eoFunctorBase) 0 3 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.tex new file mode 100644 index 000000000..71e3e9d58 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Solution\-Unary\-Metric$<$ Objective\-Vector, R $>$ Class Template Reference} +\label{classmoeoSolutionUnaryMetric}\index{moeoSolutionUnaryMetric@{moeoSolutionUnaryMetric}} +Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Solution\-Unary\-Metric$<$ Objective\-Vector, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.70861cm]{classmoeoSolutionUnaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector, class R$>$ class moeo\-Solution\-Unary\-Metric$<$ Objective\-Vector, R $>$} + +Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. + + + +Definition at line 43 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.eps new file mode 100644 index 000000000..0ba5b7092 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 117.925 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.24 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 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 ----- + + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0.5 1 box + (moeoBinaryMetric< A1, A2, R >) 0.5 2 box + (eoBF< A1, A2, R >) 0 3 box + (moeoMetric) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0.5 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in +solid +1 0.5 0.25 out +solid +0 0.5 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.tex new file mode 100644 index 000000000..f98bbe8a7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$ Class Template Reference} +\label{classmoeoSolutionVsSolutionBinaryMetric}\index{moeoSolutionVsSolutionBinaryMetric@{moeoSolutionVsSolutionBinaryMetric}} +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.30189cm]{classmoeoSolutionVsSolutionBinaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector, class R$>$ class moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$} + +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. + + + +Definition at line 57 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.eps new file mode 100644 index 000000000..87f5b6ec3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.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 395.257 +%%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.265 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoStochTournamentSelect< MOEOT >) cw +(moeoSelectOne< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoStochTournamentSelect< MOEOT >) 0 0 box + (moeoSelectOne< MOEOT >) 0 1 box + (eoSelectOne< MOEOT >) 0 2 box + (eoUF< A1, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.tex new file mode 100644 index 000000000..0215c08f2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.tex @@ -0,0 +1,102 @@ +\section{moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoStochTournamentSelect}\index{moeoStochTournamentSelect@{moeoStochTournamentSelect}} +Selection strategy that selects ONE individual by stochastic tournament. + + +{\tt \#include $<$moeo\-Stoch\-Tournament\-Select.h$>$} + +Inheritance diagram for moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoStochTournamentSelect} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Stoch\-Tournament\-Select} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator, double \_\-t\-Rate=1.0) +\begin{CompactList}\small\item\em Full Ctor. \item\end{CompactList}\item +\bf{moeo\-Stoch\-Tournament\-Select} (double \_\-t\-Rate=1.0) +\begin{CompactList}\small\item\em Ctor without comparator. \item\end{CompactList}\item +const MOEOT \& \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply the tournament to the given population. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Comparator}$<$ MOEOT $>$ \& \bf{comparator}\label{classmoeoStochTournamentSelect_a8ae24cb50092cc77872a447b6602009} + +\begin{CompactList}\small\item\em the comparator (used to compare 2 individuals) \item\end{CompactList}\item +\bf{moeo\-Fitness\-Then\-Diversity\-Comparator}$<$ MOEOT $>$ \bf{default\-Comparator}\label{classmoeoStochTournamentSelect_ec34173496ad3dd0cd118b5233a53855} + +\begin{CompactList}\small\item\em a fitness then diversity comparator can be used as default \item\end{CompactList}\item +double \bf{t\-Rate}\label{classmoeoStochTournamentSelect_659d064e1333ee9a3e9808a15a2f53f6} + +\begin{CompactList}\small\item\em the tournament rate \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$} + +Selection strategy that selects ONE individual by stochastic tournament. + + + +Definition at line 24 of file moeo\-Stoch\-Tournament\-Select.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}!moeoStochTournamentSelect@{moeoStochTournamentSelect}} +\index{moeoStochTournamentSelect@{moeoStochTournamentSelect}!moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Stoch\-Tournament\-Select}$<$ MOEOT $>$::\bf{moeo\-Stoch\-Tournament\-Select} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator}, double {\em \_\-t\-Rate} = {\tt 1.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoStochTournamentSelect_dfd4eb2c6d148fd3cab2fb670ae7f1d4} + + +Full Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \item[{\em \_\-t\-Rate}]the tournament rate \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-Stoch\-Tournament\-Select.h. + +References moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$::t\-Rate.\index{moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}!moeoStochTournamentSelect@{moeoStochTournamentSelect}} +\index{moeoStochTournamentSelect@{moeoStochTournamentSelect}!moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Stoch\-Tournament\-Select}$<$ MOEOT $>$::\bf{moeo\-Stoch\-Tournament\-Select} (double {\em \_\-t\-Rate} = {\tt 1.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoStochTournamentSelect_a7d9a735f65193a943ca2cdce780e80d} + + +Ctor without comparator. + +A \doxyref{moeo\-Fitness\-Then\-Diversity\-Comparator}{p.}{classmoeoFitnessThenDiversityComparator} is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-t\-Rate}]the tournament rate \end{description} +\end{Desc} + + +Definition at line 53 of file moeo\-Stoch\-Tournament\-Select.h. + +References moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$::t\-Rate. + +\subsection{Member Function Documentation} +\index{moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const MOEOT\& \bf{moeo\-Stoch\-Tournament\-Select}$<$ MOEOT $>$::operator() (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoStochTournamentSelect_2323cbf99554b37dc3724c8ea26e52c1} + + +Apply the tournament to the given population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 73 of file moeo\-Stoch\-Tournament\-Select.h. + +References moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$::comparator, and moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$::t\-Rate. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Stoch\-Tournament\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.eps new file mode 100644 index 000000000..c3dc0c5dd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.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 292.398 +%%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.71 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) 0 0 box + (moeoIndicatorBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoFitnessAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.tex new file mode 100644 index 000000000..3186f1ddb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoUnaryIndicatorBasedFitnessAssignment}\index{moeoUnaryIndicatorBasedFitnessAssignment@{moeoUnaryIndicatorBasedFitnessAssignment}} +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} for unary indicators. + + +{\tt \#include $<$moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoUnaryIndicatorBasedFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} for unary indicators. + + + +Definition at line 22 of file moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.eps new file mode 100644 index 000000000..aa9d7b900 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.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 176.471 +%%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.83333 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 +(moeoUnaryMetric< A, R >) cw +(eoUF< A, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoUnaryMetric< A, R >) 0.5 0 box + (eoUF< A, R >) 0 1 box + (moeoMetric) 1 1 box + (eoFunctorBase) 0 2 box + (eoFunctorBase) 1 2 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +0 1 1 conn +solid +1 0 1 in +solid +0 0 1 out +solid +1 1 1 in +solid +0 1 1 out +solid +1 0 2 in +solid +1 1 2 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.tex new file mode 100644 index 000000000..33a9a8088 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Unary\-Metric$<$ A, R $>$ Class Template Reference} +\label{classmoeoUnaryMetric}\index{moeoUnaryMetric@{moeoUnaryMetric}} +Base class for unary metrics. + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Unary\-Metric$<$ A, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmoeoUnaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class A, class R$>$ class moeo\-Unary\-Metric$<$ A, R $>$} + +Base class for unary metrics. + + + +Definition at line 29 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVector.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVector.eps new file mode 100644 index 000000000..f0dc8dc31 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVector.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 100.806 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.96 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >) cw +(MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(EO< MOEOObjectiveVector >) cw +(eoObject) cw +(eoPersistent) cw +(eoPrintable) 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 ----- + + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >) 0.5 0 box + (MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 1 box + (EO< MOEOObjectiveVector >) 0.5 2 box + (eoObject) 0 3 box + (eoPersistent) 1 3 box + (eoPrintable) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVector.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVector.tex new file mode 100644 index 000000000..26a55b536 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVector.tex @@ -0,0 +1,135 @@ +\section{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$ Class Template Reference} +\label{classmoeoVector}\index{moeoVector@{moeoVector}} +Base class for fixed length chromosomes, just derives from \doxyref{MOEO}{p.}{classMOEO} and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). + + +{\tt \#include $<$moeo\-Vector.h$>$} + +Inheritance diagram for moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.82258cm]{classmoeoVector} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef Gene\-Type \bf{Atom\-Type}\label{classmoeoVector_9d4400084dec28c37e392bb8b0a0b452} + +\begin{CompactList}\small\item\em the atomic type \item\end{CompactList}\item +typedef std::vector$<$ Gene\-Type $>$ \bf{Container\-Type}\label{classmoeoVector_b0fb83132e1f2c8b8258013a01aeb364} + +\begin{CompactList}\small\item\em the container type \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Vector} (unsigned int \_\-size=0, Gene\-Type \_\-value=Gene\-Type()) +\begin{CompactList}\small\item\em Default ctor. \item\end{CompactList}\item +void \bf{value} (const std::vector$<$ Gene\-Type $>$ \&\_\-v) +\begin{CompactList}\small\item\em We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. \item\end{CompactList}\item +bool \bf{operator$<$} (const \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$ \&\_\-moeo) const +\begin{CompactList}\small\item\em To avoid conflicts between \doxyref{MOEO::operator$<$}{p.}{classMOEO_119ef916de4955298febaf3e1c8ad705} and std::vector$<$Gene\-Type$>$::operator$<$. \item\end{CompactList}\item +virtual void \bf{print\-On} (std::ostream \&\_\-os) const +\begin{CompactList}\small\item\em Writing object. \item\end{CompactList}\item +virtual void \bf{read\-From} (std::istream \&\_\-is) +\begin{CompactList}\small\item\em Reading object. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ class moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$} + +Base class for fixed length chromosomes, just derives from \doxyref{MOEO}{p.}{classMOEO} and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). + +Gene\-Type must have the following methods: void ctor (needed for the std::vector$<$$>$), copy ctor. + + + +Definition at line 25 of file moeo\-Vector.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoVector@{moeo\-Vector}!moeoVector@{moeoVector}} +\index{moeoVector@{moeoVector}!moeoVector@{moeo\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::\bf{moeo\-Vector} (unsigned int {\em \_\-size} = {\tt 0}, Gene\-Type {\em \_\-value} = {\tt GeneType()})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoVector_b109dd4d5ae93cdc4d039eb3c3b07664} + + +Default ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-size}]Length of vector (default is 0) \item[{\em \_\-value}]Initial value of all elements (default is default value of type Gene\-Type) \end{description} +\end{Desc} + + +Definition at line 47 of file moeo\-Vector.h. + +\subsection{Member Function Documentation} +\index{moeoVector@{moeo\-Vector}!value@{value}} +\index{value@{value}!moeoVector@{moeo\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ void \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::value (const std::vector$<$ Gene\-Type $>$ \& {\em \_\-v})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoVector_a7fadd876fe492717815510f68a921c5} + + +We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-v}]a vector of Gene\-Type \end{description} +\end{Desc} + + +Definition at line 56 of file moeo\-Vector.h.\index{moeoVector@{moeo\-Vector}!operator<@{operator$<$}} +\index{operator<@{operator$<$}!moeoVector@{moeo\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ bool \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::operator$<$ (const \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$ \& {\em \_\-moeo}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoVector_d7a5feff640f00e5d6a29c3ebd11e90b} + + +To avoid conflicts between \doxyref{MOEO::operator$<$}{p.}{classMOEO_119ef916de4955298febaf3e1c8ad705} and std::vector$<$Gene\-Type$>$::operator$<$. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo}]the object to compare with \end{description} +\end{Desc} + + +Definition at line 79 of file moeo\-Vector.h.\index{moeoVector@{moeo\-Vector}!printOn@{printOn}} +\index{printOn@{printOn}!moeoVector@{moeo\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ virtual void \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::print\-On (std::ostream \& {\em \_\-os}) const\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoVector_d0a92cb26483ffab754ac4a0efb76308} + + +Writing object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-os}]output stream \end{description} +\end{Desc} + + +Reimplemented from \bf{MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classMOEO_a3b6074b3289585bf4dc6998e8397e24}. + +Reimplemented in \bf{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classmoeoBitVector_78f821c548cf46d8bcd30aa8a52ffb7c}. + +Definition at line 89 of file moeo\-Vector.h.\index{moeoVector@{moeo\-Vector}!readFrom@{readFrom}} +\index{readFrom@{readFrom}!moeoVector@{moeo\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ virtual void \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::read\-From (std::istream \& {\em \_\-is})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9} + + +Reading object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-is}]input stream \end{description} +\end{Desc} + + +Reimplemented from \bf{MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classMOEO_1bbd9cb1a7709592bf4bc29dff8c5273}. + +Reimplemented in \bf{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classmoeoBitVector_31cd3f894615d0a27dd116a5c8082521}. + +Definition at line 102 of file moeo\-Vector.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Vector.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.eps new file mode 100644 index 000000000..85372a8a3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 104.167 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.8 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 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 +(moeoVectorUnaryMetric< ObjectiveVector, R >) cw +(moeoUnaryMetric< const std::vector< ObjectiveVector > &, R >) cw +(eoUF< const std::vector< ObjectiveVector > &, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoVectorUnaryMetric< ObjectiveVector, R >) 0.5 0 box + (moeoUnaryMetric< const std::vector< ObjectiveVector > &, R >) 0.5 1 box + (eoUF< const std::vector< ObjectiveVector > &, R >) 0 2 box + (moeoMetric) 1 2 box + (eoFunctorBase) 0 3 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.tex new file mode 100644 index 000000000..c805f24f2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Vector\-Unary\-Metric$<$ Objective\-Vector, R $>$ Class Template Reference} +\label{classmoeoVectorUnaryMetric}\index{moeoVectorUnaryMetric@{moeoVectorUnaryMetric}} +Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Vector\-Unary\-Metric$<$ Objective\-Vector, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.91667cm]{classmoeoVectorUnaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector, class R$>$ class moeo\-Vector\-Unary\-Metric$<$ Objective\-Vector, R $>$} + +Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). + + + +Definition at line 50 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.eps new file mode 100644 index 000000000..f1b6e0933 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 115.274 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.3375 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/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 +(moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >) 0.5 0 box + (moeoBinaryMetric< A1, A2, R >) 0.5 1 box + (eoBF< A1, A2, R >) 0 2 box + (moeoMetric) 1 2 box + (eoFunctorBase) 0 3 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.tex new file mode 100644 index 000000000..bcb97e8c4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, R $>$ Class Template Reference} +\label{classmoeoVectorVsVectorBinaryMetric}\index{moeoVectorVsVectorBinaryMetric@{moeoVectorVsVectorBinaryMetric}} +Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.22767cm]{classmoeoVectorVsVectorBinaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector, class R$>$ class moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, R $>$} + +Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). + + + +Definition at line 64 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/doxygen.sty b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/doxygen.sty new file mode 100644 index 000000000..b0079fc97 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/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 Fri Jul 6 09:41:04 2007 for Paradis\-EO-MOEO by Doxygen }]{} +\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Jul 6 09:41:04 2007 for Paradis\-EO-MOEO 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/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/hierarchy.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/hierarchy.tex new file mode 100644 index 000000000..f20cb80c6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/hierarchy.tex @@ -0,0 +1,230 @@ +\section{Paradis\-EO-MOEO Class Hierarchy} +This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList} +\item eo\-Functor\-Base{\tt [external]}\begin{CompactList} +\item eo\-BF$<$ A1, A2, R $>${\tt [external]}\begin{CompactList} +\item eo\-Replacement$<$ EOT $>${\tt [external]}\begin{CompactList} +\item eo\-Generational\-Replacement$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Generational\-Replacement$<$ MOEOT $>$}{\pageref{classmoeoGenerationalReplacement}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Replacement$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Replacement$<$ MOEOT $>$}{\pageref{classmoeoReplacement}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Elitist\-Replacement$<$ MOEOT $>$}{\pageref{classmoeoElitistReplacement}}{} +\item \contentsline{section}{moeo\-Environmental\-Replacement$<$ MOEOT $>$}{\pageref{classmoeoEnvironmentalReplacement}}{} +\item \contentsline{section}{moeo\-Generational\-Replacement$<$ MOEOT $>$}{\pageref{classmoeoGenerationalReplacement}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Select$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Select}{\pageref{classmoeoEasyEA_1_1eoDummySelect}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ A1, A2, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$}{\pageref{classmoeoSolutionVsSolutionBinaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$}{\pageref{classmoeoNormalizedSolutionVsSolutionBinaryMetric}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, double $>$}{\pageref{classmoeoSolutionVsSolutionBinaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, double $>$}{\pageref{classmoeoNormalizedSolutionVsSolutionBinaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$}{\pageref{classmoeoAdditiveEpsilonBinaryMetric}}{} +\item \contentsline{section}{moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$}{\pageref{classmoeoHypervolumeBinaryMetric}}{} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, R $>$}{\pageref{classmoeoVectorVsVectorBinaryMetric}}{} +\item \contentsline{section}{moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, double $>$}{\pageref{classmoeoVectorVsVectorBinaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Contribution\-Metric$<$ Objective\-Vector $>$}{\pageref{classmoeoContributionMetric}}{} +\item \contentsline{section}{moeo\-Entropy\-Metric$<$ Objective\-Vector $>$}{\pageref{classmoeoEntropyMetric}}{} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Comparator$<$ MOEOT $>$}{\pageref{classmoeoComparator}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Aggregative\-Comparator$<$ MOEOT $>$}{\pageref{classmoeoAggregativeComparator}}{} +\item \contentsline{section}{moeo\-Diversity\-Then\-Fitness\-Comparator$<$ MOEOT $>$}{\pageref{classmoeoDiversityThenFitnessComparator}}{} +\item \contentsline{section}{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator}{\pageref{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator}}{} +\item \contentsline{section}{moeo\-Fitness\-Then\-Diversity\-Comparator$<$ MOEOT $>$}{\pageref{classmoeoFitnessThenDiversityComparator}}{} +\item \contentsline{section}{moeo\-One\-Objective\-Comparator$<$ MOEOT $>$}{\pageref{classmoeoOneObjectiveComparator}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Distance$<$ MOEOT, Type $>$}{\pageref{classmoeoDistance}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$}{\pageref{classmoeoNormalizedDistance}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Distance$<$ MOEOT, double $>$}{\pageref{classmoeoDistance}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Normalized\-Distance$<$ MOEOT $>$}{\pageref{classmoeoNormalizedDistance}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Euclidean\-Distance$<$ MOEOT $>$}{\pageref{classmoeoEuclideanDistance}}{} +\item \contentsline{section}{moeo\-Manhattan\-Distance$<$ MOEOT $>$}{\pageref{classmoeoManhattanDistance}}{} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$}{\pageref{classmoeoObjectiveVectorComparator}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$}{\pageref{classmoeoGDominanceObjectiveVectorComparator}}{} +\item \contentsline{section}{moeo\-Objective\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$}{\pageref{classmoeoObjectiveObjectiveVectorComparator}}{} +\item \contentsline{section}{moeo\-Pareto\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$}{\pageref{classmoeoParetoObjectiveVectorComparator}}{} +\end{CompactList} +\end{CompactList} +\item eo\-BF$<$ const const Objective\-Vector \&, Objective\-Vector \&, double $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const Objective\-Vector \&, Objective\-Vector \&, double $>$}{\pageref{classmoeoBinaryMetric}}{} +\end{CompactList} +\item eo\-BF$<$ const const Objective\-Vector \&, Objective\-Vector \&, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const Objective\-Vector \&, Objective\-Vector \&, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\end{CompactList} +\item eo\-BF$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, double $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, double $>$}{\pageref{classmoeoBinaryMetric}}{} +\end{CompactList} +\item eo\-BF$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\end{CompactList} +\item eo\-BF$<$ Type, moeo\-Archive$<$ MOEOT $>$ \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-LS$<$ MOEOT, Type $>$}{\pageref{classmoeoLS}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Combined\-LS$<$ MOEOT, Type $>$}{\pageref{classmoeoCombinedLS}}{} +\end{CompactList} +\end{CompactList} +\item eo\-F$<$ void $>${\tt [external]}\begin{CompactList} +\item eo\-Updater{\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Archive\-Objective\-Vector\-Saving\-Updater$<$ MOEOT $>$}{\pageref{classmoeoArchiveObjectiveVectorSavingUpdater}}{} +\item \contentsline{section}{moeo\-Archive\-Updater$<$ MOEOT $>$}{\pageref{classmoeoArchiveUpdater}}{} +\item \contentsline{section}{moeo\-Binary\-Metric\-Saving\-Updater$<$ MOEOT $>$}{\pageref{classmoeoBinaryMetricSavingUpdater}}{} +\item \contentsline{section}{moeo\-Hybrid\-LS$<$ MOEOT $>$}{\pageref{classmoeoHybridLS}}{} +\end{CompactList} +\end{CompactList} +\item eo\-UF$<$ A1, R $>${\tt [external]}\begin{CompactList} +\item eo\-Algo$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-EA$<$ MOEOT $>$}{\pageref{classmoeoEA}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Easy\-EA$<$ MOEOT $>$}{\pageref{classmoeoEasyEA}}{} +\item \contentsline{section}{moeo\-IBEA$<$ MOEOT $>$}{\pageref{classmoeoIBEA}}{} +\item \contentsline{section}{moeo\-NSGA$<$ MOEOT $>$}{\pageref{classmoeoNSGA}}{} +\item \contentsline{section}{moeo\-NSGAII$<$ MOEOT $>$}{\pageref{classmoeoNSGAII}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Eval\-Func$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Eval}{\pageref{classmoeoEasyEA_1_1eoDummyEval}}{} +\item \contentsline{section}{moeo\-Eval\-Func$<$ MOEOT $>$}{\pageref{classmoeoEvalFunc}}{} +\end{CompactList} +\item eo\-Select\-One$<$ EOT, Worth\-T $>${\tt [external]}\begin{CompactList} +\item eo\-Random\-Select$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Random\-Select$<$ MOEOT $>$}{\pageref{classmoeoRandomSelect}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Select\-One$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Select\-One$<$ MOEOT $>$}{\pageref{classmoeoSelectOne}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Det\-Tournament\-Select$<$ MOEOT $>$}{\pageref{classmoeoDetTournamentSelect}}{} +\item \contentsline{section}{moeo\-Random\-Select$<$ MOEOT $>$}{\pageref{classmoeoRandomSelect}}{} +\item \contentsline{section}{moeo\-Roulette\-Select$<$ MOEOT $>$}{\pageref{classmoeoRouletteSelect}}{} +\item \contentsline{section}{moeo\-Select\-From\-Pop\-And\-Arch$<$ MOEOT $>$}{\pageref{classmoeoSelectFromPopAndArch}}{} +\item \contentsline{section}{moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$}{\pageref{classmoeoStochTournamentSelect}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Transform$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Transform}{\pageref{classmoeoEasyEA_1_1eoDummyTransform}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Convert\-Pop\-To\-Objective\-Vectors$<$ MOEOT, Objective\-Vector $>$}{\pageref{classmoeoConvertPopToObjectiveVectors}}{} +\end{CompactList} +\item eo\-UF$<$ A, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ A, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\end{CompactList} +\item eo\-UF$<$ const eo\-Pop$<$ MOEOT $>$ \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Distance\-Matrix$<$ MOEOT, Type $>$}{\pageref{classmoeoDistanceMatrix}}{} +\end{CompactList} +\item eo\-UF$<$ const Objective\-Vector \&, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ const Objective\-Vector \&, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Solution\-Unary\-Metric$<$ Objective\-Vector, R $>$}{\pageref{classmoeoSolutionUnaryMetric}}{} +\end{CompactList} +\end{CompactList} +\item eo\-UF$<$ const std::vector$<$ Objective\-Vector $>$ \&, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ const std::vector$<$ Objective\-Vector $>$ \&, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Vector\-Unary\-Metric$<$ Objective\-Vector, R $>$}{\pageref{classmoeoVectorUnaryMetric}}{} +\end{CompactList} +\end{CompactList} +\item eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoDiversityAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoCrowdingDiversityAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoFrontByFrontCrowdingDiversityAssignment}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoDummyDiversityAssignment}}{} +\item \contentsline{section}{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoSharingDiversityAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoFrontByFrontSharingDiversityAssignment}}{} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoFitnessAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Criterion\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoCriterionBasedFitnessAssignment}}{} +\item \contentsline{section}{moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoDummyFitnessAssignment}}{} +\item \contentsline{section}{moeo\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoIndicatorBasedFitnessAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoBinaryIndicatorBasedFitnessAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoExpBinaryIndicatorBasedFitnessAssignment}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoUnaryIndicatorBasedFitnessAssignment}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Pareto\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoParetoBasedFitnessAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoFastNonDominatedSortingFitnessAssignment}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Scalar\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoScalarFitnessAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoAchievementFitnessAssignment}}{} +\end{CompactList} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Metric}{\pageref{classmoeoMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ A1, A2, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const Objective\-Vector \&, Objective\-Vector \&, double $>$}{\pageref{classmoeoBinaryMetric}}{} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const Objective\-Vector \&, Objective\-Vector \&, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, double $>$}{\pageref{classmoeoBinaryMetric}}{} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ A, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ const Objective\-Vector \&, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ const std::vector$<$ Objective\-Vector $>$ \&, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Object{\tt [external]}\begin{CompactList} +\item EO$<$ MOEOObjective\-Vector $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$}{\pageref{classMOEO}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$}{\pageref{classmoeoVector}}{} +\item \contentsline{section}{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$}{\pageref{classmoeoVector}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$}{\pageref{classmoeoBitVector}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, double $>$}{\pageref{classmoeoVector}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Real\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$}{\pageref{classmoeoRealVector}}{} +\end{CompactList} +\end{CompactList} +\end{CompactList} +\item eo\-Pop$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Archive$<$ MOEOT $>$}{\pageref{classmoeoArchive}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Printable{\tt [external]}\begin{CompactList} +\item eo\-Persistent{\tt [external]}\begin{CompactList} +\item EO$<$ MOEOObjective\-Vector $>${\tt [external]}\item eo\-Pop$<$ MOEOT $>${\tt [external]}\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Algo}{\pageref{classmoeoAlgo}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-EA$<$ MOEOT $>$}{\pageref{classmoeoEA}}{} +\item \contentsline{section}{moeo\-LS$<$ MOEOT, Type $>$}{\pageref{classmoeoLS}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Elitist\-Replacement$<$ MOEOT $>$::Cmp}{\pageref{classmoeoElitistReplacement_1_1Cmp}}{} +\item \contentsline{section}{moeo\-Environmental\-Replacement$<$ MOEOT $>$::Cmp}{\pageref{classmoeoEnvironmentalReplacement_1_1Cmp}}{} +\item \contentsline{section}{moeo\-Objective\-Vector$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$}{\pageref{classmoeoObjectiveVector}}{} +\item \contentsline{section}{moeo\-Objective\-Vector$<$ Objective\-Vector\-Traits, double $>$}{\pageref{classmoeoObjectiveVector}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$}{\pageref{classmoeoRealObjectiveVector}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Objective\-Vector\-Traits}{\pageref{classmoeoObjectiveVectorTraits}}{} +\end{CompactList} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/main.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/main.tex new file mode 100644 index 000000000..8b7f04a2e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/main.tex @@ -0,0 +1,5 @@ +\section{intro}\label{main_intro} +Paradis\-EO-MOEO is a white-box object-oriented generic framework dedicated to the flexible design of evolutionary multi-objective algorithms. This paradigm-free software embeds some features and techniques for Pareto-based resolution and aims to provide a set of classes allowing to ease and speed up the development of computationally efficient programs. It is based on a clear conceptual distinction between the solution methods and the multi-objective problems they are intended to solve. This separation confers a maximum design and code reuse. Paradis\-EO-MOEO provides a broad range of archive-related features (such as elitism or performance metrics) and the most common Pareto-based fitness assignment strategies (MOGA, NSGA, SPEA, IBEA and more). Furthermore, parallel and distributed models as well as hybridization mechanisms can be applied to an algorithm designed within Paradis\-EO-MOEO using the whole version of Paradis\-EO.\section{Tutorials}\label{main_tutorials} +Tutorials for Paradis\-EO-MOEO are available {\tt here}.\section{install}\label{main_install} +The installation procedure of the package is detailed in the README file in the top-directory of the source-tree.\section{design}\label{main_design} +For an introduction to the design of Paradis\-EO-MOEO, you can look at the {\tt Paradis\-EO website}. \ No newline at end of file diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/refman.tex b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/refman.tex new file mode 100644 index 000000000..421e63d02 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/latex/refman.tex @@ -0,0 +1,119 @@ +\documentclass[a4paper]{book} +\usepackage{a4wide} +\usepackage{makeidx} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage{multicol} +\usepackage{float} +\usepackage{textcomp} +\usepackage{alltt} +\usepackage{doxygen} +\makeindex +\setcounter{tocdepth}{1} +\renewcommand{\footrulewidth}{0.4pt} +\begin{document} +\begin{titlepage} +\vspace*{7cm} +\begin{center} +{\Large Paradis\-EO-MOEO Reference Manual\\[1ex]\large 1.0-beta }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.4.7}\\ +\vspace*{0.5cm} +{\small Fri Jul 6 09:41:04 2007}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\chapter{Welcome to Paradis\-EO-MOEO } +\label{index}\input{main} +\chapter{Paradis\-EO-MOEO Hierarchical Index} +\input{hierarchy} +\chapter{Paradis\-EO-MOEO Class Index} +\input{annotated} +\chapter{Paradis\-EO-MOEO Class Documentation} +\input{classMOEO} +\include{classmoeoAchievementFitnessAssignment} +\include{classmoeoAdditiveEpsilonBinaryMetric} +\include{classmoeoAggregativeComparator} +\include{classmoeoAlgo} +\include{classmoeoArchive} +\include{classmoeoArchiveObjectiveVectorSavingUpdater} +\include{classmoeoArchiveUpdater} +\include{classmoeoBinaryIndicatorBasedFitnessAssignment} +\include{classmoeoBinaryMetric} +\include{classmoeoBinaryMetricSavingUpdater} +\include{classmoeoBitVector} +\include{classmoeoCombinedLS} +\include{classmoeoComparator} +\include{classmoeoContributionMetric} +\include{classmoeoConvertPopToObjectiveVectors} +\include{classmoeoCriterionBasedFitnessAssignment} +\include{classmoeoCrowdingDiversityAssignment} +\include{classmoeoDetTournamentSelect} +\include{classmoeoDistance} +\include{classmoeoDistanceMatrix} +\include{classmoeoDiversityAssignment} +\include{classmoeoDiversityThenFitnessComparator} +\include{classmoeoDummyDiversityAssignment} +\include{classmoeoDummyFitnessAssignment} +\include{classmoeoEA} +\include{classmoeoEasyEA} +\include{classmoeoEasyEA_1_1eoDummyEval} +\include{classmoeoEasyEA_1_1eoDummySelect} +\include{classmoeoEasyEA_1_1eoDummyTransform} +\include{classmoeoElitistReplacement} +\include{classmoeoElitistReplacement_1_1Cmp} +\include{classmoeoEntropyMetric} +\include{classmoeoEnvironmentalReplacement} +\include{classmoeoEnvironmentalReplacement_1_1Cmp} +\include{classmoeoEuclideanDistance} +\include{classmoeoEvalFunc} +\include{classmoeoExpBinaryIndicatorBasedFitnessAssignment} +\include{classmoeoFastNonDominatedSortingFitnessAssignment} +\include{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator} +\include{classmoeoFitnessAssignment} +\include{classmoeoFitnessThenDiversityComparator} +\include{classmoeoFrontByFrontCrowdingDiversityAssignment} +\include{classmoeoFrontByFrontSharingDiversityAssignment} +\include{classmoeoGDominanceObjectiveVectorComparator} +\include{classmoeoGenerationalReplacement} +\include{classmoeoHybridLS} +\include{classmoeoHypervolumeBinaryMetric} +\include{classmoeoIBEA} +\include{classmoeoIndicatorBasedFitnessAssignment} +\include{classmoeoLS} +\include{classmoeoManhattanDistance} +\include{classmoeoMetric} +\include{classmoeoNormalizedDistance} +\include{classmoeoNormalizedSolutionVsSolutionBinaryMetric} +\include{classmoeoNSGA} +\include{classmoeoNSGAII} +\include{classmoeoObjectiveObjectiveVectorComparator} +\include{classmoeoObjectiveVector} +\include{classmoeoObjectiveVectorComparator} +\include{classmoeoObjectiveVectorTraits} +\include{classmoeoOneObjectiveComparator} +\include{classmoeoParetoBasedFitnessAssignment} +\include{classmoeoParetoObjectiveVectorComparator} +\include{classmoeoRandomSelect} +\include{classmoeoRealObjectiveVector} +\include{classmoeoRealVector} +\include{classmoeoReplacement} +\include{classmoeoRouletteSelect} +\include{classmoeoScalarFitnessAssignment} +\include{classmoeoSelectFromPopAndArch} +\include{classmoeoSelectOne} +\include{classmoeoSharingDiversityAssignment} +\include{classmoeoSolutionUnaryMetric} +\include{classmoeoSolutionVsSolutionBinaryMetric} +\include{classmoeoStochTournamentSelect} +\include{classmoeoUnaryIndicatorBasedFitnessAssignment} +\include{classmoeoUnaryMetric} +\include{classmoeoVector} +\include{classmoeoVectorUnaryMetric} +\include{classmoeoVectorVsVectorBinaryMetric} +\printindex +\end{document} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/MOEO.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/MOEO.3 new file mode 100644 index 000000000..abe00ef66 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/MOEO.3 @@ -0,0 +1,253 @@ +.TH "MOEO" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +MOEO \- Base class allowing to represent a solution (an individual) for multi-objective optimization. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBEO< MOEOObjectiveVector >\fP. +.PP +Inherited by \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >\fP, \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP, and \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of a solution \fP" +.ti -1c +.RI "typedef MOEOFitness \fBFitness\fP" +.br +.RI "\fIthe fitness type of a solution \fP" +.ti -1c +.RI "typedef MOEODiversity \fBDiversity\fP" +.br +.RI "\fIthe diversity type of a solution \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBMOEO\fP ()" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "virtual \fB~MOEO\fP ()" +.br +.RI "\fIVirtual dtor. \fP" +.ti -1c +.RI "\fBObjectiveVector\fP \fBobjectiveVector\fP () const " +.br +.RI "\fIReturns the objective vector of the current solution. \fP" +.ti -1c +.RI "void \fBobjectiveVector\fP (const \fBObjectiveVector\fP &_objectiveVectorValue)" +.br +.RI "\fISets the objective vector of the current solution. \fP" +.ti -1c +.RI "void \fBinvalidateObjectiveVector\fP ()" +.br +.RI "\fISets the objective vector as invalid. \fP" +.ti -1c +.RI "bool \fBinvalidObjectiveVector\fP () const " +.br +.RI "\fIReturns true if the objective vector is invalid, false otherwise. \fP" +.ti -1c +.RI "\fBFitness\fP \fBfitness\fP () const " +.br +.RI "\fIReturns the fitness value of the current solution. \fP" +.ti -1c +.RI "void \fBfitness\fP (const \fBFitness\fP &_fitnessValue)" +.br +.RI "\fISets the fitness value of the current solution. \fP" +.ti -1c +.RI "void \fBinvalidateFitness\fP ()" +.br +.RI "\fISets the fitness value as invalid. \fP" +.ti -1c +.RI "bool \fBinvalidFitness\fP () const " +.br +.RI "\fIReturns true if the fitness value is invalid, false otherwise. \fP" +.ti -1c +.RI "\fBDiversity\fP \fBdiversity\fP () const " +.br +.RI "\fIReturns the diversity value of the current solution. \fP" +.ti -1c +.RI "void \fBdiversity\fP (const \fBDiversity\fP &_diversityValue)" +.br +.RI "\fISets the diversity value of the current solution. \fP" +.ti -1c +.RI "void \fBinvalidateDiversity\fP ()" +.br +.RI "\fISets the diversity value as invalid. \fP" +.ti -1c +.RI "bool \fBinvalidDiversity\fP () const " +.br +.RI "\fIReturns true if the diversity value is invalid, false otherwise. \fP" +.ti -1c +.RI "void \fBinvalidate\fP ()" +.br +.RI "\fISets the objective vector, the fitness value and the diversity value as invalid. \fP" +.ti -1c +.RI "bool \fBinvalid\fP () const " +.br +.RI "\fIReturns true if the fitness value is invalid, false otherwise. \fP" +.ti -1c +.RI "bool \fBoperator<\fP (const \fBMOEO\fP &_other) const " +.br +.RI "\fIReturns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \fP" +.ti -1c +.RI "virtual std::string \fBclassName\fP () const " +.br +.RI "\fIReturn the class id (the class name as a std::string). \fP" +.ti -1c +.RI "virtual void \fBprintOn\fP (std::ostream &_os) const " +.br +.RI "\fIWriting object. \fP" +.ti -1c +.RI "virtual void \fBreadFrom\fP (std::istream &_is)" +.br +.RI "\fIReading object. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBObjectiveVector\fP \fBobjectiveVectorValue\fP" +.br +.RI "\fIthe objective vector of this solution \fP" +.ti -1c +.RI "bool \fBinvalidObjectiveVectorValue\fP" +.br +.RI "\fItrue if the objective vector is invalid \fP" +.ti -1c +.RI "\fBFitness\fP \fBfitnessValue\fP" +.br +.RI "\fIthe fitness value of this solution \fP" +.ti -1c +.RI "bool \fBinvalidFitnessValue\fP" +.br +.RI "\fItrue if the fitness value is invalid \fP" +.ti -1c +.RI "\fBDiversity\fP \fBdiversityValue\fP" +.br +.RI "\fIthe diversity value of this solution \fP" +.ti -1c +.RI "bool \fBinvalidDiversityValue\fP" +.br +.RI "\fItrue if the diversity value is invalid \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >" +Base class allowing to represent a solution (an individual) for multi-objective optimization. + +The template argument MOEOObjectiveVector allows to represent the solution in the objective space (it can be a \fBmoeoObjectiveVector\fP object). The template argument MOEOFitness is an object reflecting the quality of the solution in term of convergence (the fitness of a solution is always to be maximized). The template argument MOEODiversity is an object reflecting the quality of the solution in term of diversity (the diversity of a solution is always to be maximized). All template arguments must have a void and a copy constructor. Using some specific representations, you will have to define a copy constructor if the default one is not what you want. In the same cases, you will also have to define the affectation operator (operator=). Then, you will explicitly have to call the parent copy constructor and the parent affectation operator at the beginning of the corresponding implementation. Besides, note that, contrary to the mono-objective case (and to \fBEO\fP) where the fitness value of a solution is confused with its objective value, the fitness value differs of the objectives values in the multi-objective case. +.PP +Definition at line 34 of file MOEO.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVector (const \fBObjectiveVector\fP & _objectiveVectorValue)\fC [inline]\fP" +.PP +Sets the objective vector of the current solution. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVectorValue\fP the new objective vector +.RE +.PP + +.PP +Definition at line 85 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidObjectiveVectorValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVectorValue. +.SS "template void \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::fitness (const \fBFitness\fP & _fitnessValue)\fC [inline]\fP" +.PP +Sets the fitness value of the current solution. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessValue\fP the new fitness value +.RE +.PP + +.PP +Definition at line 127 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::fitnessValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidFitnessValue. +.SS "template void \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::diversity (const \fBDiversity\fP & _diversityValue)\fC [inline]\fP" +.PP +Sets the diversity value of the current solution. +.PP +\fBParameters:\fP +.RS 4 +\fI_diversityValue\fP the new diversity value +.RE +.PP + +.PP +Definition at line 169 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::diversityValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidDiversityValue. +.SS "template bool \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::operator< (const \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity > & _other) const\fC [inline]\fP" +.PP +Returns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +.PP +You should implement another function in the sub-class of \fBMOEO\fP to have another sorting mecanism. +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBMOEO\fP object to compare with +.RE +.PP + +.PP +Definition at line 220 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVector(). +.SS "template virtual void \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn (std::ostream & _os) const\fC [inline, virtual]\fP" +.PP +Writing object. +.PP +\fBParameters:\fP +.RS 4 +\fI_os\fP output stream +.RE +.PP + +.PP +Reimplemented from \fBEO< MOEOObjectiveVector >\fP. +.PP +Reimplemented in \fBmoeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP, \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >\fP, \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP, and \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >\fP. +.PP +Definition at line 239 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidObjectiveVector(), and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVectorValue. +.SS "template virtual void \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom (std::istream & _is)\fC [inline, virtual]\fP" +.PP +Reading object. +.PP +\fBParameters:\fP +.RS 4 +\fI_is\fP input stream +.RE +.PP + +.PP +Reimplemented from \fBEO< MOEOObjectiveVector >\fP. +.PP +Reimplemented in \fBmoeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP, \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >\fP, \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP, and \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >\fP. +.PP +Definition at line 256 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidateObjectiveVector(), MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidObjectiveVectorValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVectorValue. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAchievementFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAchievementFitnessAssignment.3 new file mode 100644 index 000000000..615e6ff2f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAchievementFitnessAssignment.3 @@ -0,0 +1,185 @@ +.TH "moeoAchievementFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoAchievementFitnessAssignment \- Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoScalarFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoAchievementFitnessAssignment\fP (\fBObjectiveVector\fP &_reference, std::vector< double > &_lambdas, double _spn=0.0001)" +.br +.RI "\fIDefault ctor. \fP" +.ti -1c +.RI "\fBmoeoAchievementFitnessAssignment\fP (\fBObjectiveVector\fP &_reference, double _spn=0.0001)" +.br +.RI "\fICtor with default values for lambdas (1/nObjectives). \fP" +.ti -1c +.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for every solution contained in the population _pop. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account (nothing to do). \fP" +.ti -1c +.RI "void \fBsetReference\fP (const \fBObjectiveVector\fP &_reference)" +.br +.RI "\fISets the reference point. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "double \fBinf\fP () const " +.br +.RI "\fIReturns a big value (regarded as infinite). \fP" +.ti -1c +.RI "void \fBcompute\fP (MOEOT &_moeo)" +.br +.RI "\fIComputes the fitness value for a solution. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBObjectiveVector\fP \fBreference\fP" +.br +.RI "\fIthe reference point \fP" +.ti -1c +.RI "std::vector< double > \fBlambdas\fP" +.br +.RI "\fIthe weighted coefficients vector \fP" +.ti -1c +.RI "double \fBspn\fP" +.br +.RI "\fIan arbitrary small positive number (0 < _spn << 1) \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoAchievementFitnessAssignment< MOEOT >" +Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). +.PP +Definition at line 24 of file moeoAchievementFitnessAssignment.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::\fBmoeoAchievementFitnessAssignment\fP (\fBObjectiveVector\fP & _reference, std::vector< double > & _lambdas, double _spn = \fC0.0001\fP)\fC [inline]\fP" +.PP +Default ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_reference\fP reference point vector +.br +\fI_lambdas\fP weighted coefficients vector +.br +\fI_spn\fP arbitrary small positive number (0 < _spn << 1) +.RE +.PP + +.PP +Definition at line 38 of file moeoAchievementFitnessAssignment.h. +.PP +References moeoAchievementFitnessAssignment< MOEOT >::spn. +.SS "template \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::\fBmoeoAchievementFitnessAssignment\fP (\fBObjectiveVector\fP & _reference, double _spn = \fC0.0001\fP)\fC [inline]\fP" +.PP +Ctor with default values for lambdas (1/nObjectives). +.PP +\fBParameters:\fP +.RS 4 +\fI_reference\fP reference point vector +.br +\fI_spn\fP arbitrary small positive number (0 < _spn << 1) +.RE +.PP + +.PP +Definition at line 54 of file moeoAchievementFitnessAssignment.h. +.PP +References moeoAchievementFitnessAssignment< MOEOT >::lambdas, and moeoAchievementFitnessAssignment< MOEOT >::spn. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the fitness values for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 75 of file moeoAchievementFitnessAssignment.h. +.PP +References moeoAchievementFitnessAssignment< MOEOT >::compute(). +.SS "template void \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account (nothing to do). +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implements \fBmoeoFitnessAssignment< MOEOT >\fP. +.PP +Definition at line 89 of file moeoAchievementFitnessAssignment.h. +.SS "template void \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::setReference (const \fBObjectiveVector\fP & _reference)\fC [inline]\fP" +.PP +Sets the reference point. +.PP +\fBParameters:\fP +.RS 4 +\fI_reference\fP the new reference point +.RE +.PP + +.PP +Definition at line 99 of file moeoAchievementFitnessAssignment.h. +.PP +References moeoAchievementFitnessAssignment< MOEOT >::reference. +.SS "template void \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::compute (MOEOT & _moeo)\fC [inline, private]\fP" +.PP +Computes the fitness value for a solution. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo\fP the solution +.RE +.PP + +.PP +Definition at line 128 of file moeoAchievementFitnessAssignment.h. +.PP +References moeoAchievementFitnessAssignment< MOEOT >::inf(), moeoAchievementFitnessAssignment< MOEOT >::lambdas, moeoAchievementFitnessAssignment< MOEOT >::reference, and moeoAchievementFitnessAssignment< MOEOT >::spn. +.PP +Referenced by moeoAchievementFitnessAssignment< MOEOT >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAdditiveEpsilonBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAdditiveEpsilonBinaryMetric.3 new file mode 100644 index 000000000..993fdc5bd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAdditiveEpsilonBinaryMetric.3 @@ -0,0 +1,86 @@ +.TH "moeoAdditiveEpsilonBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoAdditiveEpsilonBinaryMetric \- Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "double \fBoperator()\fP (const ObjectiveVector &_o1, const ObjectiveVector &_o2)" +.br +.RI "\fIReturns the minimal distance by which the objective vector _o1 must be translated in all objectives so that it weakly dominates the objective vector _o2. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "double \fBepsilon\fP (const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj)" +.br +.RI "\fIReturns the epsilon value by which the objective vector _o1 must be translated in the objective _obj so that it dominates the objective vector _o2. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >" +Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. + +M., Grunert da Fonseca V.: Performance Assessment of Multiobjective Optimizers: An Analysis and Review. IEEE Transactions on Evolutionary Computation 7(2), pp.117–132 (2003). +.PP +Definition at line 24 of file moeoAdditiveEpsilonBinaryMetric.h. +.SH "Member Function Documentation" +.PP +.SS "template double \fBmoeoAdditiveEpsilonBinaryMetric\fP< ObjectiveVector >::operator() (const ObjectiveVector & _o1, const ObjectiveVector & _o2)\fC [inline]\fP" +.PP +Returns the minimal distance by which the objective vector _o1 must be translated in all objectives so that it weakly dominates the objective vector _o2. +.PP +\fBWarning:\fP +.RS 4 +don't forget to set the bounds for every objective before the call of this function +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_o1\fP the first objective vector +.br +\fI_o2\fP the second objective vector +.RE +.PP + +.PP +Definition at line 35 of file moeoAdditiveEpsilonBinaryMetric.h. +.PP +References moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::epsilon(). +.SS "template double \fBmoeoAdditiveEpsilonBinaryMetric\fP< ObjectiveVector >::epsilon (const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj)\fC [inline, private]\fP" +.PP +Returns the epsilon value by which the objective vector _o1 must be translated in the objective _obj so that it dominates the objective vector _o2. +.PP +\fBParameters:\fP +.RS 4 +\fI_o1\fP the first objective vector +.br +\fI_o2\fP the second objective vector +.br +\fI_obj\fP the index of the objective +.RE +.PP + +.PP +Definition at line 64 of file moeoAdditiveEpsilonBinaryMetric.h. +.PP +References moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::bounds. +.PP +Referenced by moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAggregativeComparator.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAggregativeComparator.3 new file mode 100644 index 000000000..05d0ef1ae --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAggregativeComparator.3 @@ -0,0 +1,83 @@ +.TH "moeoAggregativeComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoAggregativeComparator \- Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoComparator< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoAggregativeComparator\fP (double _weightFitness=1.0, double _weightDiversity=1.0)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "const bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 < _moeo2 according to the aggregation of their fitness and diversity values. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "double \fBweightFitness\fP" +.br +.RI "\fIthe weight for fitness \fP" +.ti -1c +.RI "double \fBweightDiversity\fP" +.br +.RI "\fIthe weight for diversity \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoAggregativeComparator< MOEOT >" +Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. +.PP +Definition at line 22 of file moeoAggregativeComparator.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoAggregativeComparator\fP< MOEOT >::\fBmoeoAggregativeComparator\fP (double _weightFitness = \fC1.0\fP, double _weightDiversity = \fC1.0\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_weightFitness\fP the weight for fitness +.br +\fI_weightDiversity\fP the weight for diversity +.RE +.PP + +.PP +Definition at line 31 of file moeoAggregativeComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoAggregativeComparator\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns true if _moeo1 < _moeo2 according to the aggregation of their fitness and diversity values. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 40 of file moeoAggregativeComparator.h. +.PP +References moeoAggregativeComparator< MOEOT >::weightDiversity, and moeoAggregativeComparator< MOEOT >::weightFitness. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAlgo.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAlgo.3 new file mode 100644 index 000000000..226863d9b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoAlgo.3 @@ -0,0 +1,23 @@ +.TH "moeoAlgo" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoAlgo \- Abstract class for multi-objective algorithms. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherited by \fBmoeoEA< MOEOT >\fP, \fBmoeoLS< MOEOT, Type >\fP, and \fBmoeoLS< MOEOT, MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP +Abstract class for multi-objective algorithms. +.PP +Definition at line 19 of file moeoAlgo.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchive.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchive.3 new file mode 100644 index 000000000..1b5a1e9fa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchive.3 @@ -0,0 +1,172 @@ +.TH "moeoArchive" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoArchive \- An archive is a secondary population that stores non-dominated solutions. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoPop< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type of an objective vector for a solution. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoArchive\fP ()" +.br +.RI "\fIDefault ctor. \fP" +.ti -1c +.RI "\fBmoeoArchive\fP (\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > &_comparator)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "bool \fBdominates\fP (const \fBObjectiveVector\fP &_objectiveVector) const " +.br +.RI "\fIReturns true if the current archive dominates _objectiveVector according to the \fBmoeoObjectiveVectorComparator\fP given in the constructor. \fP" +.ti -1c +.RI "bool \fBcontains\fP (const \fBObjectiveVector\fP &_objectiveVector) const " +.br +.RI "\fIReturns true if the current archive already contains a solution with the same objective values than _objectiveVector. \fP" +.ti -1c +.RI "void \fBupdate\fP (const MOEOT &_moeo)" +.br +.RI "\fIUpdates the archive with a given individual _moeo. \fP" +.ti -1c +.RI "void \fBupdate\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIUpdates the archive with a given population _pop. \fP" +.ti -1c +.RI "bool \fBequals\fP (const \fBmoeoArchive\fP< MOEOT > &_arch)" +.br +.RI "\fIReturns true if the current archive contains the same objective vectors than the given archive _arch. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > & \fBcomparator\fP" +.br +.RI "\fIThe \fBmoeoObjectiveVectorComparator\fP used to compare solutions. \fP" +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > \fBparetoComparator\fP" +.br +.RI "\fIA \fBmoeoObjectiveVectorComparator\fP based on Pareto dominance (used as default). \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoArchive< MOEOT >" +An archive is a secondary population that stores non-dominated solutions. +.PP +Definition at line 24 of file moeoArchive.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoArchive\fP< MOEOT >::\fBmoeoArchive\fP ()\fC [inline]\fP" +.PP +Default ctor. +.PP +The \fBmoeoObjectiveVectorComparator\fP used to compare solutions is based on Pareto dominance +.PP +Definition at line 44 of file moeoArchive.h. +.SS "template \fBmoeoArchive\fP< MOEOT >::\fBmoeoArchive\fP (\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > & _comparator)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_comparator\fP the \fBmoeoObjectiveVectorComparator\fP used to compare solutions +.RE +.PP + +.PP +Definition at line 52 of file moeoArchive.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoeoArchive\fP< MOEOT >::dominates (const \fBObjectiveVector\fP & _objectiveVector) const\fC [inline]\fP" +.PP +Returns true if the current archive dominates _objectiveVector according to the \fBmoeoObjectiveVectorComparator\fP given in the constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector\fP the objective vector to compare with the current archive +.RE +.PP + +.PP +Definition at line 60 of file moeoArchive.h. +.PP +References moeoArchive< MOEOT >::comparator. +.SS "template bool \fBmoeoArchive\fP< MOEOT >::contains (const \fBObjectiveVector\fP & _objectiveVector) const\fC [inline]\fP" +.PP +Returns true if the current archive already contains a solution with the same objective values than _objectiveVector. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector\fP the objective vector to compare with the current archive +.RE +.PP + +.PP +Definition at line 78 of file moeoArchive.h. +.PP +Referenced by moeoArchive< MOEOT >::equals(). +.SS "template void \fBmoeoArchive\fP< MOEOT >::update (const MOEOT & _moeo)\fC [inline]\fP" +.PP +Updates the archive with a given individual _moeo. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo\fP the given individual +.RE +.PP + +.PP +Definition at line 95 of file moeoArchive.h. +.PP +References moeoArchive< MOEOT >::comparator. +.PP +Referenced by moeoArchive< MOEOT >::update(). +.SS "template void \fBmoeoArchive\fP< MOEOT >::update (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline]\fP" +.PP +Updates the archive with a given population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the given population +.RE +.PP + +.PP +Definition at line 138 of file moeoArchive.h. +.PP +References moeoArchive< MOEOT >::update(). +.SS "template bool \fBmoeoArchive\fP< MOEOT >::equals (const \fBmoeoArchive\fP< MOEOT > & _arch)\fC [inline]\fP" +.PP +Returns true if the current archive contains the same objective vectors than the given archive _arch. +.PP +\fBParameters:\fP +.RS 4 +\fI_arch\fP the given archive +.RE +.PP + +.PP +Definition at line 151 of file moeoArchive.h. +.PP +References moeoArchive< MOEOT >::contains(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchiveObjectiveVectorSavingUpdater.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchiveObjectiveVectorSavingUpdater.3 new file mode 100644 index 000000000..1892067ab --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchiveObjectiveVectorSavingUpdater.3 @@ -0,0 +1,81 @@ +.TH "moeoArchiveObjectiveVectorSavingUpdater" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoArchiveObjectiveVectorSavingUpdater \- This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUpdater\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoArchiveObjectiveVectorSavingUpdater\fP (\fBmoeoArchive\fP< MOEOT > &_arch, const std::string &_filename, bool _count=false, int _id=-1)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fISaves the fitness of the archive's members into the file. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoArchive\fP< MOEOT > & \fBarch\fP" +.br +.RI "\fIlocal archive \fP" +.ti -1c +.RI "std::string \fBfilename\fP" +.br +.RI "\fItarget filename \fP" +.ti -1c +.RI "bool \fBcount\fP" +.br +.RI "\fIthis variable is set to true if a new file have to be created each time () is called and to false if the file only HAVE to be updated \fP" +.ti -1c +.RI "unsigned int \fBcounter\fP" +.br +.RI "\fIcounter \fP" +.ti -1c +.RI "int \fBid\fP" +.br +.RI "\fIown ID \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoArchiveObjectiveVectorSavingUpdater< MOEOT >" +This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. +.PP +Definition at line 28 of file moeoArchiveObjectiveVectorSavingUpdater.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoArchiveObjectiveVectorSavingUpdater\fP< MOEOT >::\fBmoeoArchiveObjectiveVectorSavingUpdater\fP (\fBmoeoArchive\fP< MOEOT > & _arch, const std::string & _filename, bool _count = \fCfalse\fP, int _id = \fC-1\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_arch\fP local archive +.br +\fI_filename\fP target filename +.br +\fI_count\fP put this variable to true if you want a new file to be created each time () is called and to false if you only want the file to be updated +.br +\fI_id\fP own ID +.RE +.PP + +.PP +Definition at line 39 of file moeoArchiveObjectiveVectorSavingUpdater.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchiveUpdater.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchiveUpdater.3 new file mode 100644 index 000000000..8943e0320 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoArchiveUpdater.3 @@ -0,0 +1,65 @@ +.TH "moeoArchiveUpdater" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoArchiveUpdater \- This class allows to update the archive at each generation with newly found non-dominated solutions. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUpdater\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoArchiveUpdater\fP (\fBmoeoArchive\fP< MOEOT > &_arch, const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fIUpdates the archive with newly found non-dominated solutions contained in the main population. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoArchive\fP< MOEOT > & \fBarch\fP" +.br +.RI "\fIthe archive of non-dominated solutions \fP" +.ti -1c +.RI "const \fBeoPop\fP< MOEOT > & \fBpop\fP" +.br +.RI "\fIthe main population \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoArchiveUpdater< MOEOT >" +This class allows to update the archive at each generation with newly found non-dominated solutions. +.PP +Definition at line 24 of file moeoArchiveUpdater.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoArchiveUpdater\fP< MOEOT >::\fBmoeoArchiveUpdater\fP (\fBmoeoArchive\fP< MOEOT > & _arch, const \fBeoPop\fP< MOEOT > & _pop)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_arch\fP an archive of non-dominated solutions +.br +\fI_pop\fP the main population +.RE +.PP + +.PP +Definition at line 33 of file moeoArchiveUpdater.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryIndicatorBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryIndicatorBasedFitnessAssignment.3 new file mode 100644 index 000000000..e52a68d35 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryIndicatorBasedFitnessAssignment.3 @@ -0,0 +1,27 @@ +.TH "moeoBinaryIndicatorBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoBinaryIndicatorBasedFitnessAssignment \- \fBmoeoIndicatorBasedFitnessAssignment\fP for binary indicators. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoIndicatorBasedFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >" +\fBmoeoIndicatorBasedFitnessAssignment\fP for binary indicators. +.PP +Definition at line 22 of file moeoBinaryIndicatorBasedFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryMetric.3 new file mode 100644 index 000000000..2dba6c225 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryMetric.3 @@ -0,0 +1,27 @@ +.TH "moeoBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoBinaryMetric \- Base class for binary metrics. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< A1, A2, R >\fP, and \fBmoeoMetric\fP. +.PP +Inherited by \fBmoeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >\fP, \fBmoeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >\fP, \fBmoeoVectorVsVectorBinaryMetric< ObjectiveVector, R >\fP, and \fBmoeoVectorVsVectorBinaryMetric< ObjectiveVector, double >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoBinaryMetric< A1, A2, R >" +Base class for binary metrics. +.PP +Definition at line 36 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryMetricSavingUpdater.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryMetricSavingUpdater.3 new file mode 100644 index 000000000..f4d2e3640 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBinaryMetricSavingUpdater.3 @@ -0,0 +1,91 @@ +.TH "moeoBinaryMetricSavingUpdater" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoBinaryMetricSavingUpdater \- This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUpdater\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe objective vector type of a solution. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoBinaryMetricSavingUpdater\fP (\fBmoeoVectorVsVectorBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const \fBeoPop\fP< MOEOT > &_pop, std::string _filename)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fISaves the metric's value for the current generation. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoVectorVsVectorBinaryMetric\fP< \fBObjectiveVector\fP, double > & \fBmetric\fP" +.br +.RI "\fIbinary metric comparing two Pareto sets \fP" +.ti -1c +.RI "const \fBeoPop\fP< MOEOT > & \fBpop\fP" +.br +.RI "\fImain population \fP" +.ti -1c +.RI "\fBeoPop\fP< MOEOT > \fBoldPop\fP" +.br +.RI "\fI(n-1) population \fP" +.ti -1c +.RI "std::string \fBfilename\fP" +.br +.RI "\fItarget filename \fP" +.ti -1c +.RI "bool \fBfirstGen\fP" +.br +.RI "\fIis it the first generation ? \fP" +.ti -1c +.RI "unsigned int \fBcounter\fP" +.br +.RI "\fIcounter \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoBinaryMetricSavingUpdater< MOEOT >" +This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. +.PP +Definition at line 28 of file moeoBinaryMetricSavingUpdater.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoBinaryMetricSavingUpdater\fP< MOEOT >::\fBmoeoBinaryMetricSavingUpdater\fP (\fBmoeoVectorVsVectorBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const \fBeoPop\fP< MOEOT > & _pop, std::string _filename)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_metric\fP the binary metric comparing two Pareto sets +.br +\fI_pop\fP the main population +.br +\fI_filename\fP the target filename +.RE +.PP + +.PP +Definition at line 42 of file moeoBinaryMetricSavingUpdater.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBitVector.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBitVector.3 new file mode 100644 index 000000000..9def6e6f2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoBitVector.3 @@ -0,0 +1,91 @@ +.TH "moeoBitVector" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoBitVector \- This class is an implementationeo of a simple bit-valued \fBmoeoVector\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoBitVector\fP (unsigned int _size=0, bool _value=false)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "virtual std::string \fBclassName\fP () const " +.br +.RI "\fIReturns the class name as a std::string. \fP" +.ti -1c +.RI "virtual void \fBprintOn\fP (std::ostream &_os) const " +.br +.RI "\fIWriting object. \fP" +.ti -1c +.RI "virtual void \fBreadFrom\fP (std::istream &_is)" +.br +.RI "\fIReading object. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >" +This class is an implementationeo of a simple bit-valued \fBmoeoVector\fP. +.PP +Definition at line 22 of file moeoBitVector.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoBitVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::\fBmoeoBitVector\fP (unsigned int _size = \fC0\fP, bool _value = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_size\fP Length of vector (default is 0) +.br +\fI_value\fP Initial value of all elements (default is default value of type GeneType) +.RE +.PP + +.PP +Definition at line 37 of file moeoBitVector.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoBitVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn (std::ostream & _os) const\fC [inline, virtual]\fP" +.PP +Writing object. +.PP +\fBParameters:\fP +.RS 4 +\fI_os\fP output stream +.RE +.PP + +.PP +Reimplemented from \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP. +.PP +Definition at line 54 of file moeoBitVector.h. +.SS "template virtual void \fBmoeoBitVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom (std::istream & _is)\fC [inline, virtual]\fP" +.PP +Reading object. +.PP +\fBParameters:\fP +.RS 4 +\fI_is\fP input stream +.RE +.PP + +.PP +Reimplemented from \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP. +.PP +Definition at line 67 of file moeoBitVector.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCombinedLS.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCombinedLS.3 new file mode 100644 index 000000000..ece6ac862 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCombinedLS.3 @@ -0,0 +1,101 @@ +.TH "moeoCombinedLS" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoCombinedLS \- This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoLS< MOEOT, Type >< MOEOT, Type >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoCombinedLS\fP (\fBmoeoLS\fP< MOEOT, Type > &_first_mols)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBadd\fP (\fBmoeoLS\fP< MOEOT, Type > &_mols)" +.br +.RI "\fIAdds a new local search to combine. \fP" +.ti -1c +.RI "void \fBoperator()\fP (Type _type, \fBmoeoArchive\fP< MOEOT > &_arch)" +.br +.RI "\fIGives a new solution in order to explore the neigborhood. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "std::vector< \fBmoeoLS\fP< MOEOT, Type > * > \fBcombinedLS\fP" +.br +.RI "\fIthe vector that contains the combined LS \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoCombinedLS< MOEOT, Type >" +This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. +.PP +Definition at line 25 of file moeoCombinedLS.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoCombinedLS\fP< MOEOT, Type >::\fBmoeoCombinedLS\fP (\fBmoeoLS\fP< MOEOT, Type > & _first_mols)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_first_mols\fP the first multi-objective local search to add +.RE +.PP + +.PP +Definition at line 33 of file moeoCombinedLS.h. +.PP +References moeoCombinedLS< MOEOT, Type >::combinedLS. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoCombinedLS\fP< MOEOT, Type >::add (\fBmoeoLS\fP< MOEOT, Type > & _mols)\fC [inline]\fP" +.PP +Adds a new local search to combine. +.PP +\fBParameters:\fP +.RS 4 +\fI_mols\fP the multi-objective local search to add +.RE +.PP + +.PP +Definition at line 42 of file moeoCombinedLS.h. +.PP +References moeoCombinedLS< MOEOT, Type >::combinedLS. +.SS "template void \fBmoeoCombinedLS\fP< MOEOT, Type >::operator() (Type _type, \fBmoeoArchive\fP< MOEOT > & _arch)\fC [inline, virtual]\fP" +.PP +Gives a new solution in order to explore the neigborhood. +.PP +The new non-dominated solutions are added to the archive +.PP +\fBParameters:\fP +.RS 4 +\fI_type\fP the object to apply the local search to +.br +\fI_arch\fP the archive of non-dominated solutions +.RE +.PP + +.PP +Implements \fBeoBF< Type, moeoArchive< MOEOT > &, void >\fP. +.PP +Definition at line 53 of file moeoCombinedLS.h. +.PP +References moeoCombinedLS< MOEOT, Type >::combinedLS. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoComparator.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoComparator.3 new file mode 100644 index 000000000..c23eae7c2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoComparator.3 @@ -0,0 +1,27 @@ +.TH "moeoComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoComparator \- Functor allowing to compare two solutions. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const const MOEOT &, MOEOT &, bool >\fP. +.PP +Inherited by \fBmoeoAggregativeComparator< MOEOT >\fP, \fBmoeoDiversityThenFitnessComparator< MOEOT >\fP, \fBmoeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator\fP, \fBmoeoFitnessThenDiversityComparator< MOEOT >\fP, and \fBmoeoOneObjectiveComparator< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoComparator< MOEOT >" +Functor allowing to compare two solutions. +.PP +Definition at line 22 of file moeoComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoContributionMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoContributionMetric.3 new file mode 100644 index 000000000..5aa0721ab --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoContributionMetric.3 @@ -0,0 +1,129 @@ +.TH "moeoContributionMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoContributionMetric \- The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoVectorVsVectorBinaryMetric< ObjectiveVector, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "double \fBoperator()\fP (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)" +.br +.RI "\fIReturns the contribution of the Pareto set '_set1' relatively to the Pareto set '_set2'. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "unsigned int \fBcard_C\fP (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)" +.br +.RI "\fIReturns the number of solutions both in '_set1' and '_set2'. \fP" +.ti -1c +.RI "unsigned int \fBcard_W\fP (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)" +.br +.RI "\fIReturns the number of solutions in '_set1' dominating at least one solution of '_set2'. \fP" +.ti -1c +.RI "unsigned int \fBcard_N\fP (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)" +.br +.RI "\fIReturns the number of solutions in '_set1' having no relation of dominance with those from '_set2'. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< ObjectiveVector > \fBparetoComparator\fP" +.br +.RI "\fIFunctor to compare two objective vectors according to Pareto dominance relation. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoContributionMetric< ObjectiveVector >" +The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. + +of the 2000 Congress on Evolutionary Computation, IEEE Press, pp. 317-324) +.PP +Definition at line 24 of file moeoContributionMetric.h. +.SH "Member Function Documentation" +.PP +.SS "template double \fBmoeoContributionMetric\fP< ObjectiveVector >::operator() (const std::vector< ObjectiveVector > & _set1, const std::vector< ObjectiveVector > & _set2)\fC [inline]\fP" +.PP +Returns the contribution of the Pareto set '_set1' relatively to the Pareto set '_set2'. +.PP +\fBParameters:\fP +.RS 4 +\fI_set1\fP the first Pareto set +.br +\fI_set2\fP the second Pareto set +.RE +.PP + +.PP +Definition at line 33 of file moeoContributionMetric.h. +.PP +References moeoContributionMetric< ObjectiveVector >::card_C(), moeoContributionMetric< ObjectiveVector >::card_N(), and moeoContributionMetric< ObjectiveVector >::card_W(). +.SS "template unsigned int \fBmoeoContributionMetric\fP< ObjectiveVector >::card_C (const std::vector< ObjectiveVector > & _set1, const std::vector< ObjectiveVector > & _set2)\fC [inline, private]\fP" +.PP +Returns the number of solutions both in '_set1' and '_set2'. +.PP +\fBParameters:\fP +.RS 4 +\fI_set1\fP the first Pareto set +.br +\fI_set2\fP the second Pareto set +.RE +.PP + +.PP +Definition at line 54 of file moeoContributionMetric.h. +.PP +Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). +.SS "template unsigned int \fBmoeoContributionMetric\fP< ObjectiveVector >::card_W (const std::vector< ObjectiveVector > & _set1, const std::vector< ObjectiveVector > & _set2)\fC [inline, private]\fP" +.PP +Returns the number of solutions in '_set1' dominating at least one solution of '_set2'. +.PP +\fBParameters:\fP +.RS 4 +\fI_set1\fP the first Pareto set +.br +\fI_set2\fP the second Pareto set +.RE +.PP + +.PP +Definition at line 71 of file moeoContributionMetric.h. +.PP +References moeoContributionMetric< ObjectiveVector >::paretoComparator. +.PP +Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). +.SS "template unsigned int \fBmoeoContributionMetric\fP< ObjectiveVector >::card_N (const std::vector< ObjectiveVector > & _set1, const std::vector< ObjectiveVector > & _set2)\fC [inline, private]\fP" +.PP +Returns the number of solutions in '_set1' having no relation of dominance with those from '_set2'. +.PP +\fBParameters:\fP +.RS 4 +\fI_set1\fP the first Pareto set +.br +\fI_set2\fP the second Pareto set +.RE +.PP + +.PP +Definition at line 89 of file moeoContributionMetric.h. +.PP +References moeoContributionMetric< ObjectiveVector >::paretoComparator. +.PP +Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoConvertPopToObjectiveVectors.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoConvertPopToObjectiveVectors.3 new file mode 100644 index 000000000..8da73673a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoConvertPopToObjectiveVectors.3 @@ -0,0 +1,47 @@ +.TH "moeoConvertPopToObjectiveVectors" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoConvertPopToObjectiveVectors \- Functor allowing to get a vector of objective vectors from a population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< A1, R >< eoPop< MOEOT >, std::vector< ObjectiveVector > >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const std::vector< ObjectiveVector > \fBoperator()\fP (const \fBeoPop\fP< MOEOT > _pop)" +.br +.RI "\fIReturns a vector of the objective vectors from the population _pop. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >" +Functor allowing to get a vector of objective vectors from a population. +.PP +Definition at line 23 of file moeoConvertPopToObjectiveVectors.h. +.SH "Member Function Documentation" +.PP +.SS "template const std::vector< ObjectiveVector > \fBmoeoConvertPopToObjectiveVectors\fP< MOEOT, ObjectiveVector >::operator() (const \fBeoPop\fP< MOEOT > _pop)\fC [inline]\fP" +.PP +Returns a vector of the objective vectors from the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 31 of file moeoConvertPopToObjectiveVectors.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCriterionBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCriterionBasedFitnessAssignment.3 new file mode 100644 index 000000000..1042ad029 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCriterionBasedFitnessAssignment.3 @@ -0,0 +1,25 @@ +.TH "moeoCriterionBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoCriterionBasedFitnessAssignment \- \fBmoeoCriterionBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for criterion-based strategies. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoCriterionBasedFitnessAssignment< MOEOT >" +\fBmoeoCriterionBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for criterion-based strategies. +.PP +Definition at line 22 of file moeoCriterionBasedFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCrowdingDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCrowdingDiversityAssignment.3 new file mode 100644 index 000000000..efb3498b2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoCrowdingDiversityAssignment.3 @@ -0,0 +1,126 @@ +.TH "moeoCrowdingDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoCrowdingDiversityAssignment \- Diversity assignment sheme based on crowding proposed in: K. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoDiversityAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoFrontByFrontCrowdingDiversityAssignment< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "double \fBinf\fP () const " +.br +.RI "\fIReturns a big value (regarded as infinite). \fP" +.ti -1c +.RI "double \fBtiny\fP () const " +.br +.RI "\fIReturns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIComputes diversity values for every solution contained in the population _pop. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.in -1c +.SS "Protected Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBsetDistances\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the distance values. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoCrowdingDiversityAssignment< MOEOT >" +Diversity assignment sheme based on crowding proposed in: K. + +Deb, A. Pratap, S. Agarwal, T. Meyarivan, 'A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II', IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). +.PP +Definition at line 25 of file moeoCrowdingDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoCrowdingDiversityAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Computes diversity values for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 55 of file moeoCrowdingDiversityAssignment.h. +.PP +References moeoCrowdingDiversityAssignment< MOEOT >::inf(), and moeoCrowdingDiversityAssignment< MOEOT >::setDistances(). +.SS "template void \fBmoeoCrowdingDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! +.RE +.PP + +.PP +Implements \fBmoeoDiversityAssignment< MOEOT >\fP. +.PP +Reimplemented in \fBmoeoFrontByFrontCrowdingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 78 of file moeoCrowdingDiversityAssignment.h. +.SS "template virtual void \fBmoeoCrowdingDiversityAssignment\fP< MOEOT >::setDistances (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, protected, virtual]\fP" +.PP +Sets the distance values. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented in \fBmoeoFrontByFrontCrowdingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 90 of file moeoCrowdingDiversityAssignment.h. +.PP +References moeoCrowdingDiversityAssignment< MOEOT >::inf(). +.PP +Referenced by moeoCrowdingDiversityAssignment< MOEOT >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDetTournamentSelect.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDetTournamentSelect.3 new file mode 100644 index 000000000..dcaf2a369 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDetTournamentSelect.3 @@ -0,0 +1,107 @@ +.TH "moeoDetTournamentSelect" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDetTournamentSelect \- Selection strategy that selects ONE individual by deterministic tournament. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSelectOne< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoDetTournamentSelect\fP (\fBmoeoComparator\fP< MOEOT > &_comparator, unsigned int _tSize=2)" +.br +.RI "\fIFull Ctor. \fP" +.ti -1c +.RI "\fBmoeoDetTournamentSelect\fP (unsigned int _tSize=2)" +.br +.RI "\fICtor without comparator. \fP" +.ti -1c +.RI "const MOEOT & \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply the tournament to the given population. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoComparator\fP< MOEOT > & \fBcomparator\fP" +.br +.RI "\fIthe comparator (used to compare 2 individuals) \fP" +.ti -1c +.RI "\fBmoeoFitnessThenDiversityComparator\fP< MOEOT > \fBdefaultComparator\fP" +.br +.RI "\fIa fitness then diversity comparator can be used as default \fP" +.ti -1c +.RI "unsigned int \fBtSize\fP" +.br +.RI "\fIthe number of individuals in the tournament \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDetTournamentSelect< MOEOT >" +Selection strategy that selects ONE individual by deterministic tournament. +.PP +Definition at line 24 of file moeoDetTournamentSelect.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoDetTournamentSelect\fP< MOEOT >::\fBmoeoDetTournamentSelect\fP (\fBmoeoComparator\fP< MOEOT > & _comparator, unsigned int _tSize = \fC2\fP)\fC [inline]\fP" +.PP +Full Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_comparator\fP the comparator (used to compare 2 individuals) +.br +\fI_tSize\fP the number of individuals in the tournament (default: 2) +.RE +.PP + +.PP +Definition at line 33 of file moeoDetTournamentSelect.h. +.PP +References moeoDetTournamentSelect< MOEOT >::tSize. +.SS "template \fBmoeoDetTournamentSelect\fP< MOEOT >::\fBmoeoDetTournamentSelect\fP (unsigned int _tSize = \fC2\fP)\fC [inline]\fP" +.PP +Ctor without comparator. +.PP +A \fBmoeoFitnessThenDiversityComparator\fP is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_tSize\fP the number of individuals in the tournament (default: 2) +.RE +.PP + +.PP +Definition at line 49 of file moeoDetTournamentSelect.h. +.PP +References moeoDetTournamentSelect< MOEOT >::tSize. +.SH "Member Function Documentation" +.PP +.SS "template const MOEOT& \fBmoeoDetTournamentSelect\fP< MOEOT >::operator() (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline]\fP" +.PP +Apply the tournament to the given population. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 65 of file moeoDetTournamentSelect.h. +.PP +References moeoDetTournamentSelect< MOEOT >::comparator, and moeoDetTournamentSelect< MOEOT >::tSize. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDistance.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDistance.3 new file mode 100644 index 000000000..03ad058c8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDistance.3 @@ -0,0 +1,93 @@ +.TH "moeoDistance" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDistance \- The base class for distance computation. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const const MOEOT &, MOEOT &, Type >\fP. +.PP +Inherited by \fBmoeoNormalizedDistance< MOEOT, Type >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBsetup\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fINothing to do. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (double _min, double _max, unsigned int _obj)" +.br +.RI "\fINothing to do. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (\fBeoRealInterval\fP _realInterval, unsigned int _obj)" +.br +.RI "\fINothing to do. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDistance< MOEOT, Type >" +The base class for distance computation. +.PP +Definition at line 22 of file moeoDistance.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoDistance\fP< MOEOT, Type >::setup (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Nothing to do. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented in \fBmoeoNormalizedDistance< MOEOT, Type >\fP, and \fBmoeoNormalizedDistance< MOEOT >\fP. +.PP +Definition at line 30 of file moeoDistance.h. +.SS "template virtual void \fBmoeoDistance\fP< MOEOT, Type >::setup (double _min, double _max, unsigned int _obj)\fC [inline, virtual]\fP" +.PP +Nothing to do. +.PP +\fBParameters:\fP +.RS 4 +\fI_min\fP lower bound +.br +\fI_max\fP upper bound +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Reimplemented in \fBmoeoNormalizedDistance< MOEOT, Type >\fP, and \fBmoeoNormalizedDistance< MOEOT >\fP. +.PP +Definition at line 40 of file moeoDistance.h. +.SS "template virtual void \fBmoeoDistance\fP< MOEOT, Type >::setup (\fBeoRealInterval\fP _realInterval, unsigned int _obj)\fC [inline, virtual]\fP" +.PP +Nothing to do. +.PP +\fBParameters:\fP +.RS 4 +\fI_realInterval\fP the \fBeoRealInterval\fP object +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Reimplemented in \fBmoeoNormalizedDistance< MOEOT, Type >\fP, and \fBmoeoNormalizedDistance< MOEOT >\fP. +.PP +Definition at line 49 of file moeoDistance.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDistanceMatrix.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDistanceMatrix.3 new file mode 100644 index 000000000..b773ecc9b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDistanceMatrix.3 @@ -0,0 +1,79 @@ +.TH "moeoDistanceMatrix" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDistanceMatrix \- A matrix to compute distances between every pair of individuals contained in a population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< const eoPop< MOEOT > &, void >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoDistanceMatrix\fP (unsigned int _size, \fBmoeoDistance\fP< MOEOT, Type > &_distance)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the distance between every pair of individuals contained in the population _pop. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoDistance\fP< MOEOT, Type > & \fBdistance\fP" +.br +.RI "\fIthe distance to use \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDistanceMatrix< MOEOT, Type >" +A matrix to compute distances between every pair of individuals contained in a population. +.PP +Definition at line 24 of file moeoDistanceMatrix.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoDistanceMatrix\fP< MOEOT, Type >::\fBmoeoDistanceMatrix\fP (unsigned int _size, \fBmoeoDistance\fP< MOEOT, Type > & _distance)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_size\fP size for every dimension of the matrix +.br +\fI_distance\fP the distance to use +.RE +.PP + +.PP +Definition at line 37 of file moeoDistanceMatrix.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoDistanceMatrix\fP< MOEOT, Type >::operator() (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the distance between every pair of individuals contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< const eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 51 of file moeoDistanceMatrix.h. +.PP +References moeoDistanceMatrix< MOEOT, Type >::distance. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDiversityAssignment.3 new file mode 100644 index 000000000..624f95504 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDiversityAssignment.3 @@ -0,0 +1,81 @@ +.TH "moeoDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDiversityAssignment \- Functor that sets the diversity values of a whole population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Inherited by \fBmoeoCrowdingDiversityAssignment< MOEOT >\fP, \fBmoeoDummyDiversityAssignment< MOEOT >\fP, and \fBmoeoSharingDiversityAssignment< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type for objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)=0" +.br +.RI "\fIUpdates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, MOEOT &_moeo)" +.br +.RI "\fIUpdates the diversity values of the whole population _pop by taking the deletion of the individual _moeo into account. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDiversityAssignment< MOEOT >" +Functor that sets the diversity values of a whole population. +.PP +Definition at line 23 of file moeoDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [pure virtual]\fP" +.PP +Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implemented in \fBmoeoCrowdingDiversityAssignment< MOEOT >\fP, \fBmoeoDummyDiversityAssignment< MOEOT >\fP, \fBmoeoFrontByFrontCrowdingDiversityAssignment< MOEOT >\fP, \fBmoeoFrontByFrontSharingDiversityAssignment< MOEOT >\fP, and \fBmoeoSharingDiversityAssignment< MOEOT >\fP. +.PP +Referenced by moeoDiversityAssignment< MOEOT >::updateByDeleting(). +.SS "template void \fBmoeoDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, MOEOT & _moeo)\fC [inline]\fP" +.PP +Updates the diversity values of the whole population _pop by taking the deletion of the individual _moeo into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_moeo\fP the individual +.RE +.PP + +.PP +Definition at line 44 of file moeoDiversityAssignment.h. +.PP +References moeoDiversityAssignment< MOEOT >::updateByDeleting(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDiversityThenFitnessComparator.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDiversityThenFitnessComparator.3 new file mode 100644 index 000000000..2a396ab3e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDiversityThenFitnessComparator.3 @@ -0,0 +1,49 @@ +.TH "moeoDiversityThenFitnessComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDiversityThenFitnessComparator \- Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoComparator< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 < _moeo2 according to their diversity values, then according to their fitness values. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDiversityThenFitnessComparator< MOEOT >" +Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. +.PP +Definition at line 22 of file moeoDiversityThenFitnessComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoDiversityThenFitnessComparator\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns true if _moeo1 < _moeo2 according to their diversity values, then according to their fitness values. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 31 of file moeoDiversityThenFitnessComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDummyDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDummyDiversityAssignment.3 new file mode 100644 index 000000000..b0b6084ef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDummyDiversityAssignment.3 @@ -0,0 +1,77 @@ +.TH "moeoDummyDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDummyDiversityAssignment \- \fBmoeoDummyDiversityAssignment\fP is a \fBmoeoDiversityAssignment\fP that gives the value '0' as the individual's diversity for a whole population if it is invalid. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoDiversityAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type for objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the diversity to '0' for every individuals of the population _pop if it is invalid. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDummyDiversityAssignment< MOEOT >" +\fBmoeoDummyDiversityAssignment\fP is a \fBmoeoDiversityAssignment\fP that gives the value '0' as the individual's diversity for a whole population if it is invalid. +.PP +Definition at line 22 of file moeoDummyDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoDummyDiversityAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the diversity to '0' for every individuals of the population _pop if it is invalid. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 34 of file moeoDummyDiversityAssignment.h. +.SS "template void \fBmoeoDummyDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implements \fBmoeoDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 52 of file moeoDummyDiversityAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDummyFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDummyFitnessAssignment.3 new file mode 100644 index 000000000..5e3695170 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoDummyFitnessAssignment.3 @@ -0,0 +1,77 @@ +.TH "moeoDummyFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDummyFitnessAssignment \- \fBmoeoDummyFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP that gives the value '0' as the individual's fitness for a whole population if it is invalid. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type for objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness to '0' for every individuals of the population _pop if it is invalid. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDummyFitnessAssignment< MOEOT >" +\fBmoeoDummyFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP that gives the value '0' as the individual's fitness for a whole population if it is invalid. +.PP +Definition at line 22 of file moeoDummyFitnessAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoDummyFitnessAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the fitness to '0' for every individuals of the population _pop if it is invalid. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 34 of file moeoDummyFitnessAssignment.h. +.SS "template void \fBmoeoDummyFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implements \fBmoeoFitnessAssignment< MOEOT >\fP. +.PP +Definition at line 52 of file moeoDummyFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEA.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEA.3 new file mode 100644 index 000000000..4e47016a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEA.3 @@ -0,0 +1,27 @@ +.TH "moeoEA" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEA \- Abstract class for multi-objective evolutionary algorithms. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoAlgo\fP, and \fBeoAlgo< MOEOT >\fP. +.PP +Inherited by \fBmoeoEasyEA< MOEOT >\fP, \fBmoeoIBEA< MOEOT >\fP, \fBmoeoNSGA< MOEOT >\fP, and \fBmoeoNSGAII< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoEA< MOEOT >" +Abstract class for multi-objective evolutionary algorithms. +.PP +Definition at line 23 of file moeoEA.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA.3 new file mode 100644 index 000000000..27bf6fb2a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA.3 @@ -0,0 +1,283 @@ +.TH "moeoEasyEA" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEasyEA \- An easy class to design multi-objective evolutionary algorithms. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoEA< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoBreed\fP< MOEOT > &_breed, \fBmoeoReplacement\fP< MOEOT > &_replace, \fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)" +.br +.RI "\fICtor taking a breed and merge. \fP" +.ti -1c +.RI "\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoPopEvalFunc\fP< MOEOT > &_popEval, \fBeoBreed\fP< MOEOT > &_breed, \fBmoeoReplacement\fP< MOEOT > &_replace, \fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)" +.br +.RI "\fICtor taking a breed, a merge and a eoPopEval. \fP" +.ti -1c +.RI "\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoBreed\fP< MOEOT > &_breed, \fBeoMerge\fP< MOEOT > &_merge, \fBeoReduce\fP< MOEOT > &_reduce, \fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)" +.br +.RI "\fICtor taking a breed, a merge and a reduce. \fP" +.ti -1c +.RI "\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoSelect\fP< MOEOT > &_select, \fBeoTransform\fP< MOEOT > &_transform, \fBmoeoReplacement\fP< MOEOT > &_replace, \fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)" +.br +.RI "\fICtor taking a select, a transform and a replacement. \fP" +.ti -1c +.RI "\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoSelect\fP< MOEOT > &_select, \fBeoTransform\fP< MOEOT > &_transform, \fBeoMerge\fP< MOEOT > &_merge, \fBeoReduce\fP< MOEOT > &_reduce, \fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)" +.br +.RI "\fICtor taking a select, a transform, a merge and a reduce. \fP" +.ti -1c +.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApplies a few generation of evolution to the population _pop. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBeoContinue\fP< MOEOT > & \fBcontinuator\fP" +.br +.RI "\fIthe stopping criteria \fP" +.ti -1c +.RI "\fBeoEvalFunc\fP< MOEOT > & \fBeval\fP" +.br +.RI "\fIthe evaluation functions \fP" +.ti -1c +.RI "\fBeoPopLoopEval\fP< MOEOT > \fBloopEval\fP" +.br +.RI "\fIto evaluate the whole population \fP" +.ti -1c +.RI "\fBeoPopEvalFunc\fP< MOEOT > & \fBpopEval\fP" +.br +.RI "\fIto evaluate the whole population \fP" +.ti -1c +.RI "\fBeoSelectTransform\fP< MOEOT > \fBselectTransform\fP" +.br +.RI "\fIbreed: a select followed by a transform \fP" +.ti -1c +.RI "\fBeoBreed\fP< MOEOT > & \fBbreed\fP" +.br +.RI "\fIthe breeder \fP" +.ti -1c +.RI "\fBeoMergeReduce\fP< MOEOT > \fBmergeReduce\fP" +.br +.RI "\fIreplacement: a merge followed by a reduce \fP" +.ti -1c +.RI "\fBmoeoReplacement\fP< MOEOT > & \fBreplace\fP" +.br +.RI "\fIthe replacment strategy \fP" +.ti -1c +.RI "\fBmoeoFitnessAssignment\fP< MOEOT > & \fBfitnessEval\fP" +.br +.RI "\fIthe fitness assignment strategy \fP" +.ti -1c +.RI "\fBmoeoDiversityAssignment\fP< MOEOT > & \fBdiversityEval\fP" +.br +.RI "\fIthe diversity assignment strategy \fP" +.ti -1c +.RI "bool \fBevalFitAndDivBeforeSelection\fP" +.br +.RI "\fIif this parameter is set to 'true', the fitness and the diversity of the whole population will be re-evaluated before the selection process \fP" +.ti -1c +.RI "\fBmoeoEasyEA::eoDummyEval\fP \fBdummyEval\fP" +.br +.RI "\fIa dummy eval \fP" +.ti -1c +.RI "\fBmoeoEasyEA::eoDummySelect\fP \fBdummySelect\fP" +.br +.RI "\fIa dummy select \fP" +.ti -1c +.RI "\fBmoeoEasyEA::eoDummyTransform\fP \fBdummyTransform\fP" +.br +.RI "\fIa dummy transform \fP" +.ti -1c +.RI "\fBeoNoElitism\fP< MOEOT > \fBdummyMerge\fP" +.br +.RI "\fIa dummy merge \fP" +.ti -1c +.RI "\fBeoTruncate\fP< MOEOT > \fBdummyReduce\fP" +.br +.RI "\fIa dummy reduce \fP" +.in -1c +.SS "Classes" + +.in +1c +.ti -1c +.RI "class \fBeoDummyEval\fP" +.br +.RI "\fIa dummy eval \fP" +.ti -1c +.RI "class \fBeoDummySelect\fP" +.br +.RI "\fIa dummy select \fP" +.ti -1c +.RI "class \fBeoDummyTransform\fP" +.br +.RI "\fIa dummy transform \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEasyEA< MOEOT >" +An easy class to design multi-objective evolutionary algorithms. +.PP +Definition at line 33 of file moeoEasyEA.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoEasyEA\fP< MOEOT >::\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoBreed\fP< MOEOT > & _breed, \fBmoeoReplacement\fP< MOEOT > & _replace, \fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor taking a breed and merge. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP the stopping criteria +.br +\fI_eval\fP the evaluation functions +.br +\fI_breed\fP the breeder +.br +\fI_replace\fP the replacement strategy +.br +\fI_fitnessEval\fP the fitness evaluation scheme +.br +\fI_diversityEval\fP the diversity evaluation scheme +.br +\fI_evalFitAndDivBeforeSelection\fP put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process +.RE +.PP + +.PP +Definition at line 47 of file moeoEasyEA.h. +.SS "template \fBmoeoEasyEA\fP< MOEOT >::\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoPopEvalFunc\fP< MOEOT > & _popEval, \fBeoBreed\fP< MOEOT > & _breed, \fBmoeoReplacement\fP< MOEOT > & _replace, \fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor taking a breed, a merge and a eoPopEval. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP the stopping criteria +.br +\fI_popEval\fP the evaluation functions for the whole population +.br +\fI_breed\fP the breeder +.br +\fI_replace\fP the replacement strategy +.br +\fI_fitnessEval\fP the fitness evaluation scheme +.br +\fI_diversityEval\fP the diversity evaluation scheme +.br +\fI_evalFitAndDivBeforeSelection\fP put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process +.RE +.PP + +.PP +Definition at line 65 of file moeoEasyEA.h. +.SS "template \fBmoeoEasyEA\fP< MOEOT >::\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoBreed\fP< MOEOT > & _breed, \fBeoMerge\fP< MOEOT > & _merge, \fBeoReduce\fP< MOEOT > & _reduce, \fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor taking a breed, a merge and a reduce. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP the stopping criteria +.br +\fI_eval\fP the evaluation functions +.br +\fI_breed\fP the breeder +.br +\fI_merge\fP the merge scheme +.br +\fI_reduce\fP the reduce scheme +.br +\fI_fitnessEval\fP the fitness evaluation scheme +.br +\fI_diversityEval\fP the diversity evaluation scheme +.br +\fI_evalFitAndDivBeforeSelection\fP put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process +.RE +.PP + +.PP +Definition at line 84 of file moeoEasyEA.h. +.SS "template \fBmoeoEasyEA\fP< MOEOT >::\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoSelect\fP< MOEOT > & _select, \fBeoTransform\fP< MOEOT > & _transform, \fBmoeoReplacement\fP< MOEOT > & _replace, \fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor taking a select, a transform and a replacement. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP the stopping criteria +.br +\fI_eval\fP the evaluation functions +.br +\fI_select\fP the selection scheme +.br +\fI_transform\fP the tranformation scheme +.br +\fI_replace\fP the replacement strategy +.br +\fI_fitnessEval\fP the fitness evaluation scheme +.br +\fI_diversityEval\fP the diversity evaluation scheme +.br +\fI_evalFitAndDivBeforeSelection\fP put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process +.RE +.PP + +.PP +Definition at line 103 of file moeoEasyEA.h. +.SS "template \fBmoeoEasyEA\fP< MOEOT >::\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoSelect\fP< MOEOT > & _select, \fBeoTransform\fP< MOEOT > & _transform, \fBeoMerge\fP< MOEOT > & _merge, \fBeoReduce\fP< MOEOT > & _reduce, \fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor taking a select, a transform, a merge and a reduce. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP the stopping criteria +.br +\fI_eval\fP the evaluation functions +.br +\fI_select\fP the selection scheme +.br +\fI_transform\fP the tranformation scheme +.br +\fI_merge\fP the merge scheme +.br +\fI_reduce\fP the reduce scheme +.br +\fI_fitnessEval\fP the fitness evaluation scheme +.br +\fI_diversityEval\fP the diversity evaluation scheme +.br +\fI_evalFitAndDivBeforeSelection\fP put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process +.RE +.PP + +.PP +Definition at line 123 of file moeoEasyEA.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoEasyEA\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Applies a few generation of evolution to the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 135 of file moeoEasyEA.h. +.PP +References moeoEasyEA< MOEOT >::breed, moeoEasyEA< MOEOT >::continuator, moeoEasyEA< MOEOT >::diversityEval, moeoEasyEA< MOEOT >::evalFitAndDivBeforeSelection, moeoEasyEA< MOEOT >::fitnessEval, moeoEasyEA< MOEOT >::popEval, and moeoEasyEA< MOEOT >::replace. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyEval.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyEval.3 new file mode 100644 index 000000000..8c633b811 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyEval.3 @@ -0,0 +1,33 @@ +.TH "moeoEasyEA::eoDummyEval" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEasyEA::eoDummyEval \- a dummy eval + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoEvalFunc< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (MOEOT &)" +.br +.RI "\fIthe dummy functor \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEasyEA< MOEOT >::eoDummyEval" +a dummy eval +.PP +Definition at line 200 of file moeoEasyEA.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummySelect.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummySelect.3 new file mode 100644 index 000000000..262690d20 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummySelect.3 @@ -0,0 +1,33 @@ +.TH "moeoEasyEA::eoDummySelect" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEasyEA::eoDummySelect \- a dummy select + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoSelect< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &, \fBeoPop\fP< MOEOT > &)" +.br +.RI "\fIthe dummy functor \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEasyEA< MOEOT >::eoDummySelect" +a dummy select +.PP +Definition at line 204 of file moeoEasyEA.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyTransform.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyTransform.3 new file mode 100644 index 000000000..f617e33d0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyTransform.3 @@ -0,0 +1,33 @@ +.TH "moeoEasyEA::eoDummyTransform" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEasyEA::eoDummyTransform \- a dummy transform + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoTransform< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &)" +.br +.RI "\fIthe dummy functor \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEasyEA< MOEOT >::eoDummyTransform" +a dummy transform +.PP +Definition at line 208 of file moeoEasyEA.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoElitistReplacement.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoElitistReplacement.3 new file mode 100644 index 000000000..da12f3489 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoElitistReplacement.3 @@ -0,0 +1,163 @@ +.TH "moeoElitistReplacement" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoElitistReplacement \- Elitist replacement strategy that consists in keeping the N best individuals. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoReplacement< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityAssignment, \fBmoeoComparator\fP< MOEOT > &_comparator)" +.br +.RI "\fIFull constructor. \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityAssignment)" +.br +.RI "\fIConstructor without comparator. \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoComparator\fP< MOEOT > &_comparator)" +.br +.RI "\fIConstructor without moeoDiversityAssignement. \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment)" +.br +.RI "\fIConstructor without moeoDiversityAssignement nor \fBmoeoComparator\fP. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_parents, \fBeoPop\fP< MOEOT > &_offspring)" +.br +.RI "\fIReplaces the first population by adding the individuals of the second one, sorting with a \fBmoeoComparator\fP and resizing the whole population obtained. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoFitnessAssignment\fP< MOEOT > & \fBfitnessAssignment\fP" +.br +.RI "\fIthe fitness assignment strategy \fP" +.ti -1c +.RI "\fBmoeoDiversityAssignment\fP< MOEOT > & \fBdiversityAssignment\fP" +.br +.RI "\fIthe diversity assignment strategy \fP" +.ti -1c +.RI "\fBmoeoDummyDiversityAssignment\fP< MOEOT > \fBdefaultDiversity\fP" +.br +.RI "\fIa dummy diversity assignment can be used as default \fP" +.ti -1c +.RI "\fBmoeoFitnessThenDiversityComparator\fP< MOEOT > \fBdefaultComparator\fP" +.br +.RI "\fIa fitness then diversity comparator can be used as default \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement::Cmp\fP \fBcomparator\fP" +.br +.RI "\fIthis object is used to compare solutions in order to sort the population \fP" +.in -1c +.SS "Classes" + +.in +1c +.ti -1c +.RI "class \fBCmp\fP" +.br +.RI "\fIthis object is used to compare solutions in order to sort the population \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoElitistReplacement< MOEOT >" +Elitist replacement strategy that consists in keeping the N best individuals. +.PP +Definition at line 26 of file moeoElitistReplacement.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoElitistReplacement\fP< MOEOT >::\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityAssignment, \fBmoeoComparator\fP< MOEOT > & _comparator)\fC [inline]\fP" +.PP +Full constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_diversityAssignment\fP the diversity assignment strategy +.br +\fI_comparator\fP the comparator (used to compare 2 individuals) +.RE +.PP + +.PP +Definition at line 36 of file moeoElitistReplacement.h. +.SS "template \fBmoeoElitistReplacement\fP< MOEOT >::\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityAssignment)\fC [inline]\fP" +.PP +Constructor without comparator. +.PP +A moeoFitThenDivComparator is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_diversityAssignment\fP the diversity assignment strategy +.RE +.PP + +.PP +Definition at line 46 of file moeoElitistReplacement.h. +.SS "template \fBmoeoElitistReplacement\fP< MOEOT >::\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoComparator\fP< MOEOT > & _comparator)\fC [inline]\fP" +.PP +Constructor without moeoDiversityAssignement. +.PP +A dummy diversity is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_comparator\fP the comparator (used to compare 2 individuals) +.RE +.PP + +.PP +Definition at line 56 of file moeoElitistReplacement.h. +.SS "template \fBmoeoElitistReplacement\fP< MOEOT >::\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment)\fC [inline]\fP" +.PP +Constructor without moeoDiversityAssignement nor \fBmoeoComparator\fP. +.PP +A moeoFitThenDivComparator and a dummy diversity are used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.RE +.PP + +.PP +Definition at line 66 of file moeoElitistReplacement.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoElitistReplacement\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _parents, \fBeoPop\fP< MOEOT > & _offspring)\fC [inline]\fP" +.PP +Replaces the first population by adding the individuals of the second one, sorting with a \fBmoeoComparator\fP and resizing the whole population obtained. +.PP +\fBParameters:\fP +.RS 4 +\fI_parents\fP the population composed of the parents (the population you want to replace) +.br +\fI_offspring\fP the offspring population +.RE +.PP + +.PP +Definition at line 76 of file moeoElitistReplacement.h. +.PP +References moeoElitistReplacement< MOEOT >::comparator, moeoElitistReplacement< MOEOT >::diversityAssignment, and moeoElitistReplacement< MOEOT >::fitnessAssignment. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoElitistReplacement_Cmp.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoElitistReplacement_Cmp.3 new file mode 100644 index 000000000..8778368a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoElitistReplacement_Cmp.3 @@ -0,0 +1,57 @@ +.TH "moeoElitistReplacement::Cmp" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoElitistReplacement::Cmp \- this object is used to compare solutions in order to sort the population + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBCmp\fP (\fBmoeoComparator\fP< MOEOT > &_comp)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 is greater than _moeo2 according to the comparator _moeo1 the first individual _moeo2 the first individual. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoComparator\fP< MOEOT > & \fBcomp\fP" +.br +.RI "\fIthe comparator \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoElitistReplacement< MOEOT >::Cmp" +this object is used to compare solutions in order to sort the population +.PP +Definition at line 105 of file moeoElitistReplacement.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoElitistReplacement\fP< MOEOT >::Cmp::Cmp (\fBmoeoComparator\fP< MOEOT > & _comp)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_comp\fP the comparator +.RE +.PP + +.PP +Definition at line 112 of file moeoElitistReplacement.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEntropyMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEntropyMetric.3 new file mode 100644 index 000000000..507f0b8b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEntropyMetric.3 @@ -0,0 +1,163 @@ +.TH "moeoEntropyMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEntropyMetric \- The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoVectorVsVectorBinaryMetric< ObjectiveVector, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "double \fBoperator()\fP (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)" +.br +.RI "\fIReturns the entropy of the Pareto set '_set1' relatively to the Pareto set '_set2'. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBremoveDominated\fP (std::vector< ObjectiveVector > &_f)" +.br +.RI "\fIRemoves the dominated individuals contained in _f. \fP" +.ti -1c +.RI "void \fBprenormalize\fP (const std::vector< ObjectiveVector > &_f)" +.br +.RI "\fIPrenormalization. \fP" +.ti -1c +.RI "void \fBnormalize\fP (std::vector< ObjectiveVector > &_f)" +.br +.RI "\fINormalization. \fP" +.ti -1c +.RI "void \fBcomputeUnion\fP (const std::vector< ObjectiveVector > &_f1, const std::vector< ObjectiveVector > &_f2, std::vector< ObjectiveVector > &_f)" +.br +.RI "\fIComputation of the union of _f1 and _f2 in _f. \fP" +.ti -1c +.RI "unsigned int \fBhowManyInNicheOf\fP (const std::vector< ObjectiveVector > &_f, const ObjectiveVector &_s, unsigned int _size)" +.br +.RI "\fIHow many in niche. \fP" +.ti -1c +.RI "double \fBeuclidianDistance\fP (const ObjectiveVector &_set1, const ObjectiveVector &_to, unsigned int _deg=2)" +.br +.RI "\fIEuclidian distance. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "std::vector< double > \fBvect_min_val\fP" +.br +.RI "\fIvector of min values \fP" +.ti -1c +.RI "std::vector< double > \fBvect_max_val\fP" +.br +.RI "\fIvector of max values \fP" +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< ObjectiveVector > \fBparetoComparator\fP" +.br +.RI "\fIFunctor to compare two objective vectors according to Pareto dominance relation. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEntropyMetric< ObjectiveVector >" +The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. + +of the 2002 Congress on Evolutionary Computation, IEEE Press, pp. 1155-1156) +.PP +Definition at line 25 of file moeoEntropyMetric.h. +.SH "Member Function Documentation" +.PP +.SS "template double \fBmoeoEntropyMetric\fP< ObjectiveVector >::operator() (const std::vector< ObjectiveVector > & _set1, const std::vector< ObjectiveVector > & _set2)\fC [inline]\fP" +.PP +Returns the entropy of the Pareto set '_set1' relatively to the Pareto set '_set2'. +.PP +\fBParameters:\fP +.RS 4 +\fI_set1\fP the first Pareto set +.br +\fI_set2\fP the second Pareto set +.RE +.PP + +.PP +Definition at line 34 of file moeoEntropyMetric.h. +.PP +References moeoEntropyMetric< ObjectiveVector >::computeUnion(), moeoEntropyMetric< ObjectiveVector >::howManyInNicheOf(), moeoEntropyMetric< ObjectiveVector >::normalize(), moeoEntropyMetric< ObjectiveVector >::prenormalize(), and moeoEntropyMetric< ObjectiveVector >::removeDominated(). +.SS "template void \fBmoeoEntropyMetric\fP< ObjectiveVector >::removeDominated (std::vector< ObjectiveVector > & _f)\fC [inline, private]\fP" +.PP +Removes the dominated individuals contained in _f. +.PP +\fBParameters:\fP +.RS 4 +\fI_f\fP a Pareto set +.RE +.PP + +.PP +Definition at line 85 of file moeoEntropyMetric.h. +.PP +References moeoEntropyMetric< ObjectiveVector >::paretoComparator. +.PP +Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +.SS "template void \fBmoeoEntropyMetric\fP< ObjectiveVector >::prenormalize (const std::vector< ObjectiveVector > & _f)\fC [inline, private]\fP" +.PP +Prenormalization. +.PP +\fBParameters:\fP +.RS 4 +\fI_f\fP a Pareto set +.RE +.PP + +.PP +Definition at line 107 of file moeoEntropyMetric.h. +.PP +References moeoEntropyMetric< ObjectiveVector >::vect_max_val, and moeoEntropyMetric< ObjectiveVector >::vect_min_val. +.PP +Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +.SS "template void \fBmoeoEntropyMetric\fP< ObjectiveVector >::normalize (std::vector< ObjectiveVector > & _f)\fC [inline, private]\fP" +.PP +Normalization. +.PP +\fBParameters:\fP +.RS 4 +\fI_f\fP a Pareto set +.RE +.PP + +.PP +Definition at line 129 of file moeoEntropyMetric.h. +.PP +References moeoEntropyMetric< ObjectiveVector >::vect_max_val, and moeoEntropyMetric< ObjectiveVector >::vect_min_val. +.PP +Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +.SS "template void \fBmoeoEntropyMetric\fP< ObjectiveVector >::computeUnion (const std::vector< ObjectiveVector > & _f1, const std::vector< ObjectiveVector > & _f2, std::vector< ObjectiveVector > & _f)\fC [inline, private]\fP" +.PP +Computation of the union of _f1 and _f2 in _f. +.PP +\fBParameters:\fP +.RS 4 +\fI_f1\fP the first Pareto set +.br +\fI_f2\fP the second Pareto set +.br +\fI_f\fP the final Pareto set +.RE +.PP + +.PP +Definition at line 142 of file moeoEntropyMetric.h. +.PP +Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement.3 new file mode 100644 index 000000000..0dd3021f3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement.3 @@ -0,0 +1,171 @@ +.TH "moeoEnvironmentalReplacement" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEnvironmentalReplacement \- Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoReplacement< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type for objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityAssignment, \fBmoeoComparator\fP< MOEOT > &_comparator)" +.br +.RI "\fIFull constructor. \fP" +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityAssignment)" +.br +.RI "\fIConstructor without comparator. \fP" +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoComparator\fP< MOEOT > &_comparator)" +.br +.RI "\fIConstructor without moeoDiversityAssignement. \fP" +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment)" +.br +.RI "\fIConstructor without moeoDiversityAssignement nor \fBmoeoComparator\fP. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_parents, \fBeoPop\fP< MOEOT > &_offspring)" +.br +.RI "\fIReplaces the first population by adding the individuals of the second one, sorting with a \fBmoeoComparator\fP and resizing the whole population obtained. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoFitnessAssignment\fP< MOEOT > & \fBfitnessAssignment\fP" +.br +.RI "\fIthe fitness assignment strategy \fP" +.ti -1c +.RI "\fBmoeoDiversityAssignment\fP< MOEOT > & \fBdiversityAssignment\fP" +.br +.RI "\fIthe diversity assignment strategy \fP" +.ti -1c +.RI "\fBmoeoDummyDiversityAssignment\fP< MOEOT > \fBdefaultDiversity\fP" +.br +.RI "\fIa dummy diversity assignment can be used as default \fP" +.ti -1c +.RI "\fBmoeoFitnessThenDiversityComparator\fP< MOEOT > \fBdefaultComparator\fP" +.br +.RI "\fIa fitness then diversity comparator can be used as default \fP" +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement::Cmp\fP \fBcomparator\fP" +.br +.RI "\fIthis object is used to compare solutions in order to sort the population \fP" +.in -1c +.SS "Classes" + +.in +1c +.ti -1c +.RI "class \fBCmp\fP" +.br +.RI "\fIthis object is used to compare solutions in order to sort the population \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEnvironmentalReplacement< MOEOT >" +Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. +.PP +Definition at line 26 of file moeoEnvironmentalReplacement.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoEnvironmentalReplacement\fP< MOEOT >::\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityAssignment, \fBmoeoComparator\fP< MOEOT > & _comparator)\fC [inline]\fP" +.PP +Full constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_diversityAssignment\fP the diversity assignment strategy +.br +\fI_comparator\fP the comparator (used to compare 2 individuals) +.RE +.PP + +.PP +Definition at line 40 of file moeoEnvironmentalReplacement.h. +.SS "template \fBmoeoEnvironmentalReplacement\fP< MOEOT >::\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityAssignment)\fC [inline]\fP" +.PP +Constructor without comparator. +.PP +A moeoFitThenDivComparator is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_diversityAssignment\fP the diversity assignment strategy +.RE +.PP + +.PP +Definition at line 50 of file moeoEnvironmentalReplacement.h. +.SS "template \fBmoeoEnvironmentalReplacement\fP< MOEOT >::\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoComparator\fP< MOEOT > & _comparator)\fC [inline]\fP" +.PP +Constructor without moeoDiversityAssignement. +.PP +A dummy diversity is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_comparator\fP the comparator (used to compare 2 individuals) +.RE +.PP + +.PP +Definition at line 60 of file moeoEnvironmentalReplacement.h. +.SS "template \fBmoeoEnvironmentalReplacement\fP< MOEOT >::\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment)\fC [inline]\fP" +.PP +Constructor without moeoDiversityAssignement nor \fBmoeoComparator\fP. +.PP +A moeoFitThenDivComparator and a dummy diversity are used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.RE +.PP + +.PP +Definition at line 70 of file moeoEnvironmentalReplacement.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoEnvironmentalReplacement\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _parents, \fBeoPop\fP< MOEOT > & _offspring)\fC [inline]\fP" +.PP +Replaces the first population by adding the individuals of the second one, sorting with a \fBmoeoComparator\fP and resizing the whole population obtained. +.PP +\fBParameters:\fP +.RS 4 +\fI_parents\fP the population composed of the parents (the population you want to replace) +.br +\fI_offspring\fP the offspring population +.RE +.PP + +.PP +Definition at line 80 of file moeoEnvironmentalReplacement.h. +.PP +References moeoEnvironmentalReplacement< MOEOT >::comparator, moeoEnvironmentalReplacement< MOEOT >::diversityAssignment, and moeoEnvironmentalReplacement< MOEOT >::fitnessAssignment. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement_Cmp.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement_Cmp.3 new file mode 100644 index 000000000..002e0b2dd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement_Cmp.3 @@ -0,0 +1,57 @@ +.TH "moeoEnvironmentalReplacement::Cmp" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEnvironmentalReplacement::Cmp \- this object is used to compare solutions in order to sort the population + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBCmp\fP (\fBmoeoComparator\fP< MOEOT > &_comp)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 is greater than _moeo2 according to the comparator _moeo1 the first individual _moeo2 the first individual. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoComparator\fP< MOEOT > & \fBcomp\fP" +.br +.RI "\fIthe comparator \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEnvironmentalReplacement< MOEOT >::Cmp" +this object is used to compare solutions in order to sort the population +.PP +Definition at line 121 of file moeoEnvironmentalReplacement.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoEnvironmentalReplacement\fP< MOEOT >::Cmp::Cmp (\fBmoeoComparator\fP< MOEOT > & _comp)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_comp\fP the comparator +.RE +.PP + +.PP +Definition at line 128 of file moeoEnvironmentalReplacement.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEuclideanDistance.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEuclideanDistance.3 new file mode 100644 index 000000000..ce8a9d940 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEuclideanDistance.3 @@ -0,0 +1,61 @@ +.TH "moeoEuclideanDistance" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEuclideanDistance \- A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoNormalizedDistance< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const double \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns the euclidian distance between _moeo1 and _moeo2 in the objective space. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEuclideanDistance< MOEOT >" +A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. + +between 0 and 1). A distance value then lies between 0 and sqrt(nObjectives). +.PP +Definition at line 24 of file moeoEuclideanDistance.h. +.SH "Member Function Documentation" +.PP +.SS "template const double \fBmoeoEuclideanDistance\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns the euclidian distance between _moeo1 and _moeo2 in the objective space. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 37 of file moeoEuclideanDistance.h. +.PP +References moeoNormalizedDistance< MOEOT >::bounds. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEvalFunc.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEvalFunc.3 new file mode 100644 index 000000000..5a2358207 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoEvalFunc.3 @@ -0,0 +1,21 @@ +.TH "moeoEvalFunc" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEvalFunc \- +.SH SYNOPSIS +.br +.PP +Inherits \fBeoEvalFunc< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoEvalFunc< MOEOT >" + +.PP +Definition at line 22 of file moeoEvalFunc.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoExpBinaryIndicatorBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoExpBinaryIndicatorBasedFitnessAssignment.3 new file mode 100644 index 000000000..7101d8f9b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoExpBinaryIndicatorBasedFitnessAssignment.3 @@ -0,0 +1,223 @@ +.TH "moeoExpBinaryIndicatorBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoExpBinaryIndicatorBasedFitnessAssignment \- Fitness assignment sheme based on an indicator proposed in: E. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoBinaryIndicatorBasedFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type of objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP (\fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for every solution contained in the population _pop. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.ti -1c +.RI "double \fBupdateByAdding\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the adding of the objective vector _objVec into account and returns the fitness value of _objVec. \fP" +.in -1c +.SS "Protected Member Functions" + +.in +1c +.ti -1c +.RI "void \fBsetup\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the bounds for every objective using the min and the max value for every objective vector of _pop. \fP" +.ti -1c +.RI "void \fBcomputeValues\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fICompute every indicator value in values (values[i] = I(_v[i], _o)). \fP" +.ti -1c +.RI "void \fBsetFitnesses\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness value of the whple population. \fP" +.ti -1c +.RI "double \fBcomputeFitness\fP (const unsigned int _idx)" +.br +.RI "\fIReturns the fitness value of the _idx th individual of the population. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & \fBmetric\fP" +.br +.RI "\fIthe quality indicator \fP" +.ti -1c +.RI "double \fBkappa\fP" +.br +.RI "\fIthe scaling factor \fP" +.ti -1c +.RI "std::vector< std::vector< double > > \fBvalues\fP" +.br +.RI "\fIthe computed indicator values \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >" +Fitness assignment sheme based on an indicator proposed in: E. + +Zitzler, S. Künzli, 'Indicator-Based Selection in Multiobjective Search', Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This strategy is, for instance, used in IBEA. +.PP +Definition at line 29 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::\fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP (\fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_metric\fP the quality indicator +.br +\fI_kappa\fP the scaling factor +.RE +.PP + +.PP +Definition at line 42 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the fitness values for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 50 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeValues(), moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses(), and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setup(). +.SS "template void \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implements \fBmoeoFitnessAssignment< MOEOT >\fP. +.PP +Definition at line 66 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric. +.SS "template double \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::updateByAdding (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the adding of the objective vector _objVec into account and returns the fitness value of _objVec. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Definition at line 87 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric. +.SS "template void \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::setup (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline, protected]\fP" +.PP +Sets the bounds for every objective using the min and the max value for every objective vector of _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 130 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric, and moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >::setup(). +.PP +Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +.SS "template void \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::computeValues (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline, protected]\fP" +.PP +Compute every indicator value in values (values[i] = I(_v[i], _o)). +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 152 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::values. +.PP +Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +.SS "template void \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::setFitnesses (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, protected]\fP" +.PP +Sets the fitness value of the whple population. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 174 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeFitness(). +.PP +Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +.SS "template double \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::computeFitness (const unsigned int _idx)\fC [inline, protected]\fP" +.PP +Returns the fitness value of the _idx th individual of the population. +.PP +\fBParameters:\fP +.RS 4 +\fI_idx\fP the index +.RE +.PP + +.PP +Definition at line 187 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::values. +.PP +Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment.3 new file mode 100644 index 000000000..30604d117 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment.3 @@ -0,0 +1,189 @@ +.TH "moeoFastNonDominatedSortingFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFastNonDominatedSortingFitnessAssignment \- Fitness assignment sheme based on Pareto-dominance count proposed in: N. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoParetoBasedFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoFastNonDominatedSortingFitnessAssignment\fP ()" +.br +.RI "\fIDefault ctor. \fP" +.ti -1c +.RI "\fBmoeoFastNonDominatedSortingFitnessAssignment\fP (\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > &_comparator)" +.br +.RI "\fICtor where you can choose your own way to compare objective vectors. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for every solution contained in the population _pop. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoneObjective\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for mono-objective problems. \fP" +.ti -1c +.RI "void \fBtwoObjectives\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size. \fP" +.ti -1c +.RI "void \fBmObjectives\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for problems with more than two objectives with a complexity of O(n² log n), where n stands for the population size. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > & \fBcomparator\fP" +.br +.RI "\fIFunctor to compare two objective vectors. \fP" +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > \fBparetoComparator\fP" +.br +.RI "\fIFunctor to compare two objective vectors according to Pareto dominance relation. \fP" +.ti -1c +.RI "\fBmoeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator\fP \fBobjComparator\fP" +.br +.RI "\fIFunctor allowing to compare two solutions according to their first objective value, then their second, and so on. \fP" +.in -1c +.SS "Classes" + +.in +1c +.ti -1c +.RI "class \fBObjectiveComparator\fP" +.br +.RI "\fIFunctor allowing to compare two solutions according to their first objective value, then their second, and so on. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFastNonDominatedSortingFitnessAssignment< MOEOT >" +Fitness assignment sheme based on Pareto-dominance count proposed in: N. + +Srinivas, K. Deb, 'Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms', Evolutionary Computation vol. 2, no. 3, pp. 221-248 (1994) and in: K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, 'A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II', IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). This strategy is, for instance, used in NSGA and NSGA-II. +.PP +Definition at line 32 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::\fBmoeoFastNonDominatedSortingFitnessAssignment\fP (\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > & _comparator)\fC [inline]\fP" +.PP +Ctor where you can choose your own way to compare objective vectors. +.PP +\fBParameters:\fP +.RS 4 +\fI_comparator\fP the functor used to compare objective vectors +.RE +.PP + +.PP +Definition at line 51 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the fitness values for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 59 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.PP +References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::mObjectives(), and moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::oneObjective(). +.SS "template void \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implements \fBmoeoFitnessAssignment< MOEOT >\fP. +.PP +Definition at line 101 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.PP +References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::comparator. +.SS "template void \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::oneObjective (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, private]\fP" +.PP +Sets the fitness values for mono-objective problems. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 143 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.PP +References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::objComparator. +.PP +Referenced by moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::operator()(). +.SS "template void \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::twoObjectives (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, private]\fP" +.PP +Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 165 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.SS "template void \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::mObjectives (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, private]\fP" +.PP +Sets the fitness values for problems with more than two objectives with a complexity of O(n² log n), where n stands for the population size. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 175 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.PP +References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::comparator. +.PP +Referenced by moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment_ObjectiveComparator.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment_ObjectiveComparator.3 new file mode 100644 index 000000000..201d05526 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment_ObjectiveComparator.3 @@ -0,0 +1,57 @@ +.TH "moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator \- Functor allowing to compare two solutions according to their first objective value, then their second, and so on. + +.PP +.SH SYNOPSIS +.br +.PP +Inherits \fBmoeoComparator< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 < _moeo2 on the first objective, then on the second, and so on. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoObjectiveObjectiveVectorComparator\fP< \fBObjectiveVector\fP > \fBcmp\fP" +.br +.RI "\fIthe corresponding comparator for objective vectors \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator" +Functor allowing to compare two solutions according to their first objective value, then their second, and so on. +.PP +Definition at line 121 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::ObjectiveComparator::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns true if _moeo1 < _moeo2 on the first objective, then on the second, and so on. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 129 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.PP +References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator::cmp. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFitnessAssignment.3 new file mode 100644 index 000000000..b8f19b169 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFitnessAssignment.3 @@ -0,0 +1,81 @@ +.TH "moeoFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFitnessAssignment \- Functor that sets the fitness values of a whole population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Inherited by \fBmoeoCriterionBasedFitnessAssignment< MOEOT >\fP, \fBmoeoDummyFitnessAssignment< MOEOT >\fP, \fBmoeoIndicatorBasedFitnessAssignment< MOEOT >\fP, \fBmoeoParetoBasedFitnessAssignment< MOEOT >\fP, and \fBmoeoScalarFitnessAssignment< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type for objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)=0" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, MOEOT &_moeo)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the individual _moeo into account. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFitnessAssignment< MOEOT >" +Functor that sets the fitness values of a whole population. +.PP +Definition at line 23 of file moeoFitnessAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [pure virtual]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implemented in \fBmoeoAchievementFitnessAssignment< MOEOT >\fP, \fBmoeoDummyFitnessAssignment< MOEOT >\fP, \fBmoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >\fP, and \fBmoeoFastNonDominatedSortingFitnessAssignment< MOEOT >\fP. +.PP +Referenced by moeoFitnessAssignment< MOEOT >::updateByDeleting(). +.SS "template void \fBmoeoFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, MOEOT & _moeo)\fC [inline]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the individual _moeo into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_moeo\fP the individual +.RE +.PP + +.PP +Definition at line 44 of file moeoFitnessAssignment.h. +.PP +References moeoFitnessAssignment< MOEOT >::updateByDeleting(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFitnessThenDiversityComparator.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFitnessThenDiversityComparator.3 new file mode 100644 index 000000000..fc187a7e6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFitnessThenDiversityComparator.3 @@ -0,0 +1,49 @@ +.TH "moeoFitnessThenDiversityComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFitnessThenDiversityComparator \- Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoComparator< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 < _moeo2 according to their fitness values, then according to their diversity values. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFitnessThenDiversityComparator< MOEOT >" +Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. +.PP +Definition at line 22 of file moeoFitnessThenDiversityComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoFitnessThenDiversityComparator\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns true if _moeo1 < _moeo2 according to their fitness values, then according to their diversity values. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 31 of file moeoFitnessThenDiversityComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFrontByFrontCrowdingDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFrontByFrontCrowdingDiversityAssignment.3 new file mode 100644 index 000000000..966646c22 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFrontByFrontCrowdingDiversityAssignment.3 @@ -0,0 +1,112 @@ +.TH "moeoFrontByFrontCrowdingDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFrontByFrontCrowdingDiversityAssignment \- Diversity assignment sheme based on crowding proposed in: K. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoCrowdingDiversityAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBsetDistances\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the distance values. \fP" +.ti -1c +.RI "unsigned int \fBlastIndex\fP (\fBeoPop\fP< MOEOT > &_pop, unsigned int _start)" +.br +.RI "\fIReturns the index of the last individual having the same fitness value than _pop[_start]. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >" +Diversity assignment sheme based on crowding proposed in: K. + +Deb, A. Pratap, S. Agarwal, T. Meyarivan, 'A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II', IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). Tis strategy assigns diversity values FRONT BY FRONT. It is, for instance, used in NSGA-II. +.PP +Definition at line 25 of file moeoFrontByFrontCrowdingDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoFrontByFrontCrowdingDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! +.RE +.PP + +.PP +Reimplemented from \fBmoeoCrowdingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 40 of file moeoFrontByFrontCrowdingDiversityAssignment.h. +.SS "template void \fBmoeoFrontByFrontCrowdingDiversityAssignment\fP< MOEOT >::setDistances (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, private, virtual]\fP" +.PP +Sets the distance values. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented from \fBmoeoCrowdingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 55 of file moeoFrontByFrontCrowdingDiversityAssignment.h. +.PP +References moeoCrowdingDiversityAssignment< MOEOT >::inf(), moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::lastIndex(), and moeoCrowdingDiversityAssignment< MOEOT >::tiny(). +.SS "template unsigned int \fBmoeoFrontByFrontCrowdingDiversityAssignment\fP< MOEOT >::lastIndex (\fBeoPop\fP< MOEOT > & _pop, unsigned int _start)\fC [inline, private]\fP" +.PP +Returns the index of the last individual having the same fitness value than _pop[_start]. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_start\fP the index to start from +.RE +.PP + +.PP +Definition at line 121 of file moeoFrontByFrontCrowdingDiversityAssignment.h. +.PP +Referenced by moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::setDistances(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFrontByFrontSharingDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFrontByFrontSharingDiversityAssignment.3 new file mode 100644 index 000000000..c21530d0e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoFrontByFrontSharingDiversityAssignment.3 @@ -0,0 +1,130 @@ +.TH "moeoFrontByFrontSharingDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFrontByFrontSharingDiversityAssignment \- Sharing assignment scheme on the way it is used in NSGA. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSharingDiversityAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoFrontByFrontSharingDiversityAssignment\fP (\fBmoeoDistance\fP< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=2.0)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "\fBmoeoFrontByFrontSharingDiversityAssignment\fP (double _nicheSize=0.5, double _alpha=2.0)" +.br +.RI "\fICtor with an euclidean distance (with normalized objective values) in the objective space is used as default. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBsetSimilarities\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets similarities FRONT BY FRONT for every solution contained in the population _pop. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFrontByFrontSharingDiversityAssignment< MOEOT >" +Sharing assignment scheme on the way it is used in NSGA. +.PP +Definition at line 22 of file moeoFrontByFrontSharingDiversityAssignment.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoFrontByFrontSharingDiversityAssignment\fP< MOEOT >::\fBmoeoFrontByFrontSharingDiversityAssignment\fP (\fBmoeoDistance\fP< MOEOT, double > & _distance, double _nicheSize = \fC0.5\fP, double _alpha = \fC2.0\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_distance\fP the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) +.br +\fI_nicheSize\fP neighborhood size in terms of radius distance (closely related to the way the distances are computed) +.br +\fI_alpha\fP parameter used to regulate the shape of the sharing function +.RE +.PP + +.PP +Definition at line 36 of file moeoFrontByFrontSharingDiversityAssignment.h. +.SS "template \fBmoeoFrontByFrontSharingDiversityAssignment\fP< MOEOT >::\fBmoeoFrontByFrontSharingDiversityAssignment\fP (double _nicheSize = \fC0.5\fP, double _alpha = \fC2.0\fP)\fC [inline]\fP" +.PP +Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_nicheSize\fP neighborhood size in terms of radius distance (closely related to the way the distances are computed) +.br +\fI_alpha\fP parameter used to regulate the shape of the sharing function +.RE +.PP + +.PP +Definition at line 45 of file moeoFrontByFrontSharingDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoFrontByFrontSharingDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! +.RE +.PP + +.PP +Reimplemented from \fBmoeoSharingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 56 of file moeoFrontByFrontSharingDiversityAssignment.h. +.SS "template void \fBmoeoFrontByFrontSharingDiversityAssignment\fP< MOEOT >::setSimilarities (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, private, virtual]\fP" +.PP +Sets similarities FRONT BY FRONT for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented from \fBmoeoSharingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 74 of file moeoFrontByFrontSharingDiversityAssignment.h. +.PP +References moeoSharingDiversityAssignment< MOEOT >::distance, moeoSharingDiversityAssignment< MOEOT >::nicheSize, and moeoSharingDiversityAssignment< MOEOT >::sh(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoGDominanceObjectiveVectorComparator.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoGDominanceObjectiveVectorComparator.3 new file mode 100644 index 000000000..0507dd666 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoGDominanceObjectiveVectorComparator.3 @@ -0,0 +1,107 @@ +.TH "moeoGDominanceObjectiveVectorComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoGDominanceObjectiveVectorComparator \- This functor class allows to compare 2 objective vectors according to g-dominance. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoObjectiveVectorComparator< ObjectiveVector >< ObjectiveVector >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoGDominanceObjectiveVectorComparator\fP (ObjectiveVector &_ref)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "const bool \fBoperator()\fP (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)" +.br +.RI "\fIReturns true if _objectiveVector1 is g-dominated by _objectiveVector2. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "unsigned int \fBflag\fP (const ObjectiveVector &_objectiveVector)" +.br +.RI "\fIReturns the flag of _objectiveVector according to the reference point. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "ObjectiveVector & \fBref\fP" +.br +.RI "\fIthe reference point \fP" +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< ObjectiveVector > \fBparetoComparator\fP" +.br +.RI "\fIPareto comparator. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoGDominanceObjectiveVectorComparator< ObjectiveVector >" +This functor class allows to compare 2 objective vectors according to g-dominance. + +The concept of g-dominance as been introduced in: J. Molina, L. V. Santana, A. G. Hernandez-Diaz, C. A. Coello Coello, R. Caballero, 'g-dominance: Reference point based dominance' (2007) +.PP +Definition at line 25 of file moeoGDominanceObjectiveVectorComparator.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoGDominanceObjectiveVectorComparator\fP< ObjectiveVector >::\fBmoeoGDominanceObjectiveVectorComparator\fP (ObjectiveVector & _ref)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_ref\fP the reference point +.RE +.PP + +.PP +Definition at line 33 of file moeoGDominanceObjectiveVectorComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoGDominanceObjectiveVectorComparator\fP< ObjectiveVector >::operator() (const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)\fC [inline]\fP" +.PP +Returns true if _objectiveVector1 is g-dominated by _objectiveVector2. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector1\fP the first objective vector +.br +\fI_objectiveVector2\fP the second objective vector +.RE +.PP + +.PP +Definition at line 42 of file moeoGDominanceObjectiveVectorComparator.h. +.PP +References moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::flag(), and moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::paretoComparator. +.SS "template unsigned int \fBmoeoGDominanceObjectiveVectorComparator\fP< ObjectiveVector >::flag (const ObjectiveVector & _objectiveVector)\fC [inline, private]\fP" +.PP +Returns the flag of _objectiveVector according to the reference point. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector\fP the first objective vector +.RE +.PP + +.PP +Definition at line 76 of file moeoGDominanceObjectiveVectorComparator.h. +.PP +References moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::ref. +.PP +Referenced by moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoGenerationalReplacement.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoGenerationalReplacement.3 new file mode 100644 index 000000000..5fb0153d0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoGenerationalReplacement.3 @@ -0,0 +1,51 @@ +.TH "moeoGenerationalReplacement" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoGenerationalReplacement \- Generational replacement: only the new individuals are preserved. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoReplacement< MOEOT >< MOEOT >\fP, and \fBeoGenerationalReplacement< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_parents, \fBeoPop\fP< MOEOT > &_offspring)" +.br +.RI "\fISwaps _parents and _offspring. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoGenerationalReplacement< MOEOT >" +Generational replacement: only the new individuals are preserved. +.PP +Definition at line 23 of file moeoGenerationalReplacement.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoGenerationalReplacement\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _parents, \fBeoPop\fP< MOEOT > & _offspring)\fC [inline]\fP" +.PP +Swaps _parents and _offspring. +.PP +\fBParameters:\fP +.RS 4 +\fI_parents\fP the parents population +.br +\fI_offspring\fP the offspring population +.RE +.PP + +.PP +Reimplemented from \fBeoGenerationalReplacement< MOEOT >\fP. +.PP +Definition at line 32 of file moeoGenerationalReplacement.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoHybridLS.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoHybridLS.3 new file mode 100644 index 000000000..ea18560ee --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoHybridLS.3 @@ -0,0 +1,77 @@ +.TH "moeoHybridLS" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoHybridLS \- This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUpdater\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoHybridLS\fP (\fBeoContinue\fP< MOEOT > &_term, \fBeoSelect\fP< MOEOT > &_select, \fBmoeoLS\fP< MOEOT, MOEOT > &_mols, \fBmoeoArchive\fP< MOEOT > &_arch)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fIApplies the multi-objective local search to selected individuals contained in the archive if the stopping criteria is not verified. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBeoContinue\fP< MOEOT > & \fBterm\fP" +.br +.RI "\fIstopping criteria \fP" +.ti -1c +.RI "\fBeoSelect\fP< MOEOT > & \fBselect\fP" +.br +.RI "\fIselector \fP" +.ti -1c +.RI "\fBmoeoLS\fP< MOEOT, MOEOT > & \fBmols\fP" +.br +.RI "\fImulti-objective local search \fP" +.ti -1c +.RI "\fBmoeoArchive\fP< MOEOT > & \fBarch\fP" +.br +.RI "\fIarchive \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoHybridLS< MOEOT >" +This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. +.PP +Definition at line 28 of file moeoHybridLS.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoHybridLS\fP< MOEOT >::\fBmoeoHybridLS\fP (\fBeoContinue\fP< MOEOT > & _term, \fBeoSelect\fP< MOEOT > & _select, \fBmoeoLS\fP< MOEOT, MOEOT > & _mols, \fBmoeoArchive\fP< MOEOT > & _arch)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_term\fP stopping criteria +.br +\fI_select\fP selector +.br +\fI_mols\fP a multi-objective local search +.br +\fI_arch\fP the archive +.RE +.PP + +.PP +Definition at line 39 of file moeoHybridLS.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoHypervolumeBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoHypervolumeBinaryMetric.3 new file mode 100644 index 000000000..d922d03ea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoHypervolumeBinaryMetric.3 @@ -0,0 +1,120 @@ +.TH "moeoHypervolumeBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoHypervolumeBinaryMetric \- Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., Künzli S. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoHypervolumeBinaryMetric\fP (double _rho=1.1)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "double \fBoperator()\fP (const ObjectiveVector &_o1, const ObjectiveVector &_o2)" +.br +.RI "\fIReturns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "double \fBhypervolume\fP (const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj, const bool _flag=false)" +.br +.RI "\fIReturns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho for the objective _obj. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "double \fBrho\fP" +.br +.RI "\fIvalue used to compute the reference point from the worst values for each objective \fP" +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< ObjectiveVector > \fBparetoComparator\fP" +.br +.RI "\fIFunctor to compare two objective vectors according to Pareto dominance relation. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoHypervolumeBinaryMetric< ObjectiveVector >" +Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., Künzli S. + +: Indicator-Based Selection in Multiobjective Search. In Parallel Problem Solving from Nature (PPSN VIII). Lecture Notes in Computer Science 3242, Springer, Birmingham, UK pp.832–842 (2004). This indicator is based on the hypervolume concept introduced in Zitzler, E., Thiele, L.: Multiobjective Optimization Using Evolutionary Algorithms - A Comparative Case Study. Parallel Problem Solving from Nature (PPSN-V), pp.292-301 (1998). +.PP +Definition at line 29 of file moeoHypervolumeBinaryMetric.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoHypervolumeBinaryMetric\fP< ObjectiveVector >::\fBmoeoHypervolumeBinaryMetric\fP (double _rho = \fC1.1\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_rho\fP value used to compute the reference point from the worst values for each objective (default : 1.1) +.RE +.PP + +.PP +Definition at line 37 of file moeoHypervolumeBinaryMetric.h. +.PP +References moeoHypervolumeBinaryMetric< ObjectiveVector >::rho. +.SH "Member Function Documentation" +.PP +.SS "template double \fBmoeoHypervolumeBinaryMetric\fP< ObjectiveVector >::operator() (const ObjectiveVector & _o1, const ObjectiveVector & _o2)\fC [inline]\fP" +.PP +Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho. +.PP +\fBWarning:\fP +.RS 4 +don't forget to set the bounds for every objective before the call of this function +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_o1\fP the first objective vector +.br +\fI_o2\fP the second objective vector +.RE +.PP + +.PP +Definition at line 63 of file moeoHypervolumeBinaryMetric.h. +.PP +References moeoHypervolumeBinaryMetric< ObjectiveVector >::hypervolume(), and moeoHypervolumeBinaryMetric< ObjectiveVector >::paretoComparator. +.SS "template double \fBmoeoHypervolumeBinaryMetric\fP< ObjectiveVector >::hypervolume (const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj, const bool _flag = \fCfalse\fP)\fC [inline, private]\fP" +.PP +Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho for the objective _obj. +.PP +\fBParameters:\fP +.RS 4 +\fI_o1\fP the first objective vector +.br +\fI_o2\fP the second objective vector +.br +\fI_obj\fP the objective index +.br +\fI_flag\fP used for iteration, if _flag=true _o2 is not talen into account (default : false) +.RE +.PP + +.PP +Definition at line 96 of file moeoHypervolumeBinaryMetric.h. +.PP +References moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::bounds, and moeoHypervolumeBinaryMetric< ObjectiveVector >::rho. +.PP +Referenced by moeoHypervolumeBinaryMetric< ObjectiveVector >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoIBEA.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoIBEA.3 new file mode 100644 index 000000000..3f5a0347c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoIBEA.3 @@ -0,0 +1,231 @@ +.TH "moeoIBEA" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoIBEA \- IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoEA< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type of objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fISimple ctor with a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fISimple ctor with a \fBeoTransform\fP. \fP" +.ti -1c +.RI "\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoQuadOp\fP< MOEOT > &_crossover, double _pCross, \fBeoMonOp\fP< MOEOT > &_mutation, double _pMut, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fICtor with a crossover, a mutation and their corresponding rates. \fP" +.ti -1c +.RI "\fBmoeoIBEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoIBEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. \fP" +.ti -1c +.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply a few generation of evolution to the population _pop until the stopping criteria is verified. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBeoGenContinue\fP< MOEOT > \fBdefaultGenContinuator\fP" +.br +.RI "\fIa continuator based on the number of generations (used as default) \fP" +.ti -1c +.RI "\fBeoContinue\fP< MOEOT > & \fBcontinuator\fP" +.br +.RI "\fIstopping criteria \fP" +.ti -1c +.RI "\fBeoPopLoopEval\fP< MOEOT > \fBpopEval\fP" +.br +.RI "\fIevaluation function used to evaluate the whole population \fP" +.ti -1c +.RI "\fBmoeoDetTournamentSelect\fP< MOEOT > \fBselect\fP" +.br +.RI "\fIbinary tournament selection \fP" +.ti -1c +.RI "\fBmoeoIndicatorBasedFitnessAssignment\fP< MOEOT > \fBfitnessAssignment\fP" +.br +.RI "\fIfitness assignment used in IBEA \fP" +.ti -1c +.RI "\fBmoeoDummyDiversityAssignment\fP< MOEOT > \fBdummyDiversityAssignment\fP" +.br +.RI "\fIdummy diversity assignment \fP" +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement\fP< MOEOT > \fBreplace\fP" +.br +.RI "\fIelitist replacement \fP" +.ti -1c +.RI "\fBeoSGAGenOp\fP< MOEOT > \fBdefaultSGAGenOp\fP" +.br +.RI "\fIan object for genetic operators (used as default) \fP" +.ti -1c +.RI "\fBeoGeneralBreeder\fP< MOEOT > \fBgenBreed\fP" +.br +.RI "\fIgeneral breeder \fP" +.ti -1c +.RI "\fBeoBreed\fP< MOEOT > & \fBbreed\fP" +.br +.RI "\fIbreeder \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoIBEA< MOEOT >" +IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. + +Zitzler, S. Künzli, 'Indicator-Based Selection in Multiobjective Search', Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This class builds the IBEA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +.PP +Definition at line 38 of file moeoIBEA.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoIBEA\fP< MOEOT >::\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_metric\fP metric +.br +\fI_kappa\fP scaling factor kappa +.RE +.PP + +.PP +Definition at line 54 of file moeoIBEA.h. +.SS "template \fBmoeoIBEA\fP< MOEOT >::\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_metric\fP metric +.br +\fI_kappa\fP scaling factor kappa +.RE +.PP + +.PP +Definition at line 68 of file moeoIBEA.h. +.SS "template \fBmoeoIBEA\fP< MOEOT >::\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoQuadOp\fP< MOEOT > & _crossover, double _pCross, \fBeoMonOp\fP< MOEOT > & _mutation, double _pMut, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Ctor with a crossover, a mutation and their corresponding rates. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_crossover\fP crossover +.br +\fI_pCross\fP crossover probability +.br +\fI_mutation\fP mutation +.br +\fI_pMut\fP mutation probability +.br +\fI_metric\fP metric +.br +\fI_kappa\fP scaling factor kappa +.RE +.PP + +.PP +Definition at line 85 of file moeoIBEA.h. +.SS "template \fBmoeoIBEA\fP< MOEOT >::\fBmoeoIBEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_metric\fP metric +.br +\fI_kappa\fP scaling factor kappa +.RE +.PP + +.PP +Definition at line 100 of file moeoIBEA.h. +.SS "template \fBmoeoIBEA\fP< MOEOT >::\fBmoeoIBEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_metric\fP metric +.br +\fI_kappa\fP scaling factor kappa +.RE +.PP + +.PP +Definition at line 114 of file moeoIBEA.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoIBEA\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 124 of file moeoIBEA.h. +.PP +References moeoIBEA< MOEOT >::breed, moeoIBEA< MOEOT >::continuator, moeoIBEA< MOEOT >::dummyDiversityAssignment, moeoIBEA< MOEOT >::fitnessAssignment, moeoIBEA< MOEOT >::popEval, and moeoIBEA< MOEOT >::replace. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoIndicatorBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoIndicatorBasedFitnessAssignment.3 new file mode 100644 index 000000000..918e0f1ce --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoIndicatorBasedFitnessAssignment.3 @@ -0,0 +1,27 @@ +.TH "moeoIndicatorBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoIndicatorBasedFitnessAssignment \- \fBmoeoIndicatorBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for Indicator-based strategies. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoBinaryIndicatorBasedFitnessAssignment< MOEOT >\fP, and \fBmoeoUnaryIndicatorBasedFitnessAssignment< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoIndicatorBasedFitnessAssignment< MOEOT >" +\fBmoeoIndicatorBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for Indicator-based strategies. +.PP +Definition at line 22 of file moeoIndicatorBasedFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoLS.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoLS.3 new file mode 100644 index 000000000..a1a392b32 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoLS.3 @@ -0,0 +1,29 @@ +.TH "moeoLS" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoLS \- Abstract class for local searches applied to multi-objective optimization. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoAlgo\fP, and \fBeoBF< Type, moeoArchive< MOEOT > &, void >\fP. +.PP +Inherited by \fBmoeoCombinedLS< MOEOT, Type >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoLS< MOEOT, Type >" +Abstract class for local searches applied to multi-objective optimization. + +Starting from a Type (i.e.: an individual, a pop, an archive...), it produces a set of new non-dominated solutions. +.PP +Definition at line 25 of file moeoLS.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoManhattanDistance.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoManhattanDistance.3 new file mode 100644 index 000000000..4e5bb31c3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoManhattanDistance.3 @@ -0,0 +1,61 @@ +.TH "moeoManhattanDistance" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoManhattanDistance \- A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoNormalizedDistance< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const double \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns the Manhattan distance between _moeo1 and _moeo2 in the objective space. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoManhattanDistance< MOEOT >" +A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. + +between 0 and 1). A distance value then lies between 0 and nObjectives. +.PP +Definition at line 24 of file moeoManhattanDistance.h. +.SH "Member Function Documentation" +.PP +.SS "template const double \fBmoeoManhattanDistance\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns the Manhattan distance between _moeo1 and _moeo2 in the objective space. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 37 of file moeoManhattanDistance.h. +.PP +References moeoNormalizedDistance< MOEOT >::bounds. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoMetric.3 new file mode 100644 index 000000000..9336994f0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoMetric.3 @@ -0,0 +1,25 @@ +.TH "moeoMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoMetric \- Base class for performance metrics (also known as quality indicators). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoFunctorBase\fP. +.PP +Inherited by \fBmoeoBinaryMetric< A1, A2, R >\fP, \fBmoeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, double >\fP, \fBmoeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, R >\fP, \fBmoeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, double >\fP, \fBmoeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R >\fP, \fBmoeoUnaryMetric< A, R >\fP, \fBmoeoUnaryMetric< const ObjectiveVector &, R >\fP, and \fBmoeoUnaryMetric< const std::vector< ObjectiveVector > &, R >\fP. +.PP +.SH "Detailed Description" +.PP +Base class for performance metrics (also known as quality indicators). +.PP +Definition at line 22 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNSGA.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNSGA.3 new file mode 100644 index 000000000..c41f10c24 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNSGA.3 @@ -0,0 +1,213 @@ +.TH "moeoNSGA" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoNSGA \- NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoEA< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op, double _nicheSize=0.5)" +.br +.RI "\fISimple ctor with a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op, double _nicheSize=0.5)" +.br +.RI "\fISimple ctor with a \fBeoTransform\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoQuadOp\fP< MOEOT > &_crossover, double _pCross, \fBeoMonOp\fP< MOEOT > &_mutation, double _pMut, double _nicheSize=0.5)" +.br +.RI "\fICtor with a crossover, a mutation and their corresponding rates. \fP" +.ti -1c +.RI "\fBmoeoNSGA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op, double _nicheSize=0.5)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op, double _nicheSize=0.5)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. \fP" +.ti -1c +.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply a few generation of evolution to the population _pop until the stopping criteria is verified. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBeoGenContinue\fP< MOEOT > \fBdefaultGenContinuator\fP" +.br +.RI "\fIa continuator based on the number of generations (used as default) \fP" +.ti -1c +.RI "\fBeoContinue\fP< MOEOT > & \fBcontinuator\fP" +.br +.RI "\fIstopping criteria \fP" +.ti -1c +.RI "\fBeoPopLoopEval\fP< MOEOT > \fBpopEval\fP" +.br +.RI "\fIevaluation function used to evaluate the whole population \fP" +.ti -1c +.RI "\fBmoeoDetTournamentSelect\fP< MOEOT > \fBselect\fP" +.br +.RI "\fIbinary tournament selection \fP" +.ti -1c +.RI "\fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT > \fBfitnessAssignment\fP" +.br +.RI "\fIfitness assignment used in NSGA-II \fP" +.ti -1c +.RI "\fBmoeoFrontByFrontSharingDiversityAssignment\fP< MOEOT > \fBdiversityAssignment\fP" +.br +.RI "\fIdiversity assignment used in NSGA-II \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement\fP< MOEOT > \fBreplace\fP" +.br +.RI "\fIelitist replacement \fP" +.ti -1c +.RI "\fBeoSGAGenOp\fP< MOEOT > \fBdefaultSGAGenOp\fP" +.br +.RI "\fIan object for genetic operators (used as default) \fP" +.ti -1c +.RI "\fBeoGeneralBreeder\fP< MOEOT > \fBgenBreed\fP" +.br +.RI "\fIgeneral breeder \fP" +.ti -1c +.RI "\fBeoBreed\fP< MOEOT > & \fBbreed\fP" +.br +.RI "\fIbreeder \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoNSGA< MOEOT >" +NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. + +Srinivas, K. Deb, 'Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms'. Evolutionary Computation, Vol. 2(3), No 2, pp. 221-248 (1994). This class builds the NSGA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +.PP +Definition at line 37 of file moeoNSGA.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoNSGA\fP< MOEOT >::\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op, double _nicheSize = \fC0.5\fP)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_nicheSize\fP niche size +.RE +.PP + +.PP +Definition at line 48 of file moeoNSGA.h. +.SS "template \fBmoeoNSGA\fP< MOEOT >::\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op, double _nicheSize = \fC0.5\fP)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_nicheSize\fP niche size +.RE +.PP + +.PP +Definition at line 61 of file moeoNSGA.h. +.SS "template \fBmoeoNSGA\fP< MOEOT >::\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoQuadOp\fP< MOEOT > & _crossover, double _pCross, \fBeoMonOp\fP< MOEOT > & _mutation, double _pMut, double _nicheSize = \fC0.5\fP)\fC [inline]\fP" +.PP +Ctor with a crossover, a mutation and their corresponding rates. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_crossover\fP crossover +.br +\fI_pCross\fP crossover probability +.br +\fI_mutation\fP mutation +.br +\fI_pMut\fP mutation probability +.br +\fI_nicheSize\fP niche size +.RE +.PP + +.PP +Definition at line 77 of file moeoNSGA.h. +.SS "template \fBmoeoNSGA\fP< MOEOT >::\fBmoeoNSGA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op, double _nicheSize = \fC0.5\fP)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_nicheSize\fP niche size +.RE +.PP + +.PP +Definition at line 91 of file moeoNSGA.h. +.SS "template \fBmoeoNSGA\fP< MOEOT >::\fBmoeoNSGA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op, double _nicheSize = \fC0.5\fP)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_nicheSize\fP niche size +.RE +.PP + +.PP +Definition at line 104 of file moeoNSGA.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoNSGA\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 114 of file moeoNSGA.h. +.PP +References moeoNSGA< MOEOT >::breed, moeoNSGA< MOEOT >::continuator, moeoNSGA< MOEOT >::diversityAssignment, moeoNSGA< MOEOT >::fitnessAssignment, moeoNSGA< MOEOT >::popEval, and moeoNSGA< MOEOT >::replace. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNSGAII.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNSGAII.3 new file mode 100644 index 000000000..362c6f4fa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNSGAII.3 @@ -0,0 +1,203 @@ +.TH "moeoNSGAII" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoNSGAII \- NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoEA< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op)" +.br +.RI "\fISimple ctor with a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op)" +.br +.RI "\fISimple ctor with a \fBeoTransform\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoQuadOp\fP< MOEOT > &_crossover, double _pCross, \fBeoMonOp\fP< MOEOT > &_mutation, double _pMut)" +.br +.RI "\fICtor with a crossover, a mutation and their corresponding rates. \fP" +.ti -1c +.RI "\fBmoeoNSGAII\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGAII\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. \fP" +.ti -1c +.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply a few generation of evolution to the population _pop until the stopping criteria is verified. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBeoGenContinue\fP< MOEOT > \fBdefaultGenContinuator\fP" +.br +.RI "\fIa continuator based on the number of generations (used as default) \fP" +.ti -1c +.RI "\fBeoContinue\fP< MOEOT > & \fBcontinuator\fP" +.br +.RI "\fIstopping criteria \fP" +.ti -1c +.RI "\fBeoPopLoopEval\fP< MOEOT > \fBpopEval\fP" +.br +.RI "\fIevaluation function used to evaluate the whole population \fP" +.ti -1c +.RI "\fBmoeoDetTournamentSelect\fP< MOEOT > \fBselect\fP" +.br +.RI "\fIbinary tournament selection \fP" +.ti -1c +.RI "\fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT > \fBfitnessAssignment\fP" +.br +.RI "\fIfitness assignment used in NSGA-II \fP" +.ti -1c +.RI "\fBmoeoFrontByFrontCrowdingDiversityAssignment\fP< MOEOT > \fBdiversityAssignment\fP" +.br +.RI "\fIdiversity assignment used in NSGA-II \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement\fP< MOEOT > \fBreplace\fP" +.br +.RI "\fIelitist replacement \fP" +.ti -1c +.RI "\fBeoSGAGenOp\fP< MOEOT > \fBdefaultSGAGenOp\fP" +.br +.RI "\fIan object for genetic operators (used as default) \fP" +.ti -1c +.RI "\fBeoGeneralBreeder\fP< MOEOT > \fBgenBreed\fP" +.br +.RI "\fIgeneral breeder \fP" +.ti -1c +.RI "\fBeoBreed\fP< MOEOT > & \fBbreed\fP" +.br +.RI "\fIbreeder \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoNSGAII< MOEOT >" +NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. + +Agrawal, A. Pratap, and T. Meyarivan : 'A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-II'. In IEEE Transactions on Evolutionary Computation, Vol. 6, No 2, pp 182-197 (April 2002). This class builds the NSGA-II algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +.PP +Definition at line 37 of file moeoNSGAII.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoNSGAII\fP< MOEOT >::\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.RE +.PP + +.PP +Definition at line 47 of file moeoNSGAII.h. +.SS "template \fBmoeoNSGAII\fP< MOEOT >::\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.RE +.PP + +.PP +Definition at line 59 of file moeoNSGAII.h. +.SS "template \fBmoeoNSGAII\fP< MOEOT >::\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoQuadOp\fP< MOEOT > & _crossover, double _pCross, \fBeoMonOp\fP< MOEOT > & _mutation, double _pMut)\fC [inline]\fP" +.PP +Ctor with a crossover, a mutation and their corresponding rates. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_crossover\fP crossover +.br +\fI_pCross\fP crossover probability +.br +\fI_mutation\fP mutation +.br +\fI_pMut\fP mutation probability +.RE +.PP + +.PP +Definition at line 74 of file moeoNSGAII.h. +.SS "template \fBmoeoNSGAII\fP< MOEOT >::\fBmoeoNSGAII\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.RE +.PP + +.PP +Definition at line 87 of file moeoNSGAII.h. +.SS "template \fBmoeoNSGAII\fP< MOEOT >::\fBmoeoNSGAII\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.RE +.PP + +.PP +Definition at line 99 of file moeoNSGAII.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoNSGAII\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 109 of file moeoNSGAII.h. +.PP +References moeoNSGAII< MOEOT >::breed, moeoNSGAII< MOEOT >::continuator, moeoNSGAII< MOEOT >::diversityAssignment, moeoNSGAII< MOEOT >::fitnessAssignment, moeoNSGAII< MOEOT >::popEval, and moeoNSGAII< MOEOT >::replace. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNormalizedDistance.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNormalizedDistance.3 new file mode 100644 index 000000000..aa8fd1387 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNormalizedDistance.3 @@ -0,0 +1,123 @@ +.TH "moeoNormalizedDistance" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoNormalizedDistance \- The base class for double distance computation with normalized objective values (i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoDistance< MOEOT, Type >< MOEOT, Type >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoNormalizedDistance\fP ()" +.br +.RI "\fIDefault ctr. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the lower and the upper bounds for every objective using extremes values for solutions contained in the population _pop. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (double _min, double _max, unsigned int _obj)" +.br +.RI "\fISets the lower bound (_min) and the upper bound (_max) for the objective _obj. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (\fBeoRealInterval\fP _realInterval, unsigned int _obj)" +.br +.RI "\fISets the lower bound and the upper bound for the objective _obj using a \fBeoRealInterval\fP object. \fP" +.in -1c +.SS "Static Public Member Functions" + +.in +1c +.ti -1c +.RI "static double \fBtiny\fP ()" +.br +.RI "\fIReturns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "std::vector< \fBeoRealInterval\fP > \fBbounds\fP" +.br +.RI "\fIthe bounds for every objective (bounds[i] = bounds for the objective i) \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoNormalizedDistance< MOEOT, Type >" +The base class for double distance computation with normalized objective values (i.e. + +between 0 and 1). +.PP +Definition at line 24 of file moeoNormalizedDistance.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoNormalizedDistance\fP< MOEOT, Type >::setup (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the lower and the upper bounds for every objective using extremes values for solutions contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented from \fBmoeoDistance< MOEOT, Type >\fP. +.PP +Definition at line 59 of file moeoNormalizedDistance.h. +.PP +Referenced by moeoNormalizedDistance< MOEOT >::setup(). +.SS "template virtual void \fBmoeoNormalizedDistance\fP< MOEOT, Type >::setup (double _min, double _max, unsigned int _obj)\fC [inline, virtual]\fP" +.PP +Sets the lower bound (_min) and the upper bound (_max) for the objective _obj. +.PP +\fBParameters:\fP +.RS 4 +\fI_min\fP lower bound +.br +\fI_max\fP upper bound +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Reimplemented from \fBmoeoDistance< MOEOT, Type >\fP. +.PP +Definition at line 83 of file moeoNormalizedDistance.h. +.SS "template virtual void \fBmoeoNormalizedDistance\fP< MOEOT, Type >::setup (\fBeoRealInterval\fP _realInterval, unsigned int _obj)\fC [inline, virtual]\fP" +.PP +Sets the lower bound and the upper bound for the objective _obj using a \fBeoRealInterval\fP object. +.PP +\fBParameters:\fP +.RS 4 +\fI_realInterval\fP the \fBeoRealInterval\fP object +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Reimplemented from \fBmoeoDistance< MOEOT, Type >\fP. +.PP +Definition at line 99 of file moeoNormalizedDistance.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNormalizedSolutionVsSolutionBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNormalizedSolutionVsSolutionBinaryMetric.3 new file mode 100644 index 000000000..105319a8c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoNormalizedSolutionVsSolutionBinaryMetric.3 @@ -0,0 +1,93 @@ +.TH "moeoNormalizedSolutionVsSolutionBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoNormalizedSolutionVsSolutionBinaryMetric \- Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >< ObjectiveVector, R >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP ()" +.br +.RI "\fIDefault ctr for any \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP object. \fP" +.ti -1c +.RI "void \fBsetup\fP (double _min, double _max, unsigned int _obj)" +.br +.RI "\fISets the lower bound (_min) and the upper bound (_max) for the objective _obj. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (\fBeoRealInterval\fP _realInterval, unsigned int _obj)" +.br +.RI "\fISets the lower bound and the upper bound for the objective _obj using a \fBeoRealInterval\fP object. \fP" +.in -1c +.SS "Static Public Member Functions" + +.in +1c +.ti -1c +.RI "static double \fBtiny\fP ()" +.br +.RI "\fIReturns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "std::vector< \fBeoRealInterval\fP > \fBbounds\fP" +.br +.RI "\fIthe bounds for every objective (bounds[i] = bounds for the objective i) \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >" +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. + +Then, indicator values lie in the interval [-1,1]. Note that you have to set the bounds for every objective before using the operator(). +.PP +Definition at line 26 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< ObjectiveVector, R >::setup (double _min, double _max, unsigned int _obj)\fC [inline]\fP" +.PP +Sets the lower bound (_min) and the upper bound (_max) for the objective _obj. +.PP +\fBParameters:\fP +.RS 4 +\fI_min\fP lower bound +.br +\fI_max\fP upper bound +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Definition at line 50 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h. +.PP +Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setup(). +.SS "template virtual void \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< ObjectiveVector, R >::setup (\fBeoRealInterval\fP _realInterval, unsigned int _obj)\fC [inline, virtual]\fP" +.PP +Sets the lower bound and the upper bound for the objective _obj using a \fBeoRealInterval\fP object. +.PP +\fBParameters:\fP +.RS 4 +\fI_realInterval\fP the \fBeoRealInterval\fP object +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Definition at line 66 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveObjectiveVectorComparator.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveObjectiveVectorComparator.3 new file mode 100644 index 000000000..6d9e14c6e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveObjectiveVectorComparator.3 @@ -0,0 +1,49 @@ +.TH "moeoObjectiveObjectiveVectorComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoObjectiveObjectiveVectorComparator \- Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoObjectiveVectorComparator< ObjectiveVector >< ObjectiveVector >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const bool \fBoperator()\fP (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)" +.br +.RI "\fIReturns true if _objectiveVector1 < _objectiveVector2 on the first objective, then on the second, and so on. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoObjectiveObjectiveVectorComparator< ObjectiveVector >" +Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. +.PP +Definition at line 22 of file moeoObjectiveObjectiveVectorComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoObjectiveObjectiveVectorComparator\fP< ObjectiveVector >::operator() (const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)\fC [inline]\fP" +.PP +Returns true if _objectiveVector1 < _objectiveVector2 on the first objective, then on the second, and so on. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector1\fP the first objective vector +.br +\fI_objectiveVector2\fP the second objective vector +.RE +.PP + +.PP +Definition at line 31 of file moeoObjectiveObjectiveVectorComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVector.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVector.3 new file mode 100644 index 000000000..c458a270f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVector.3 @@ -0,0 +1,123 @@ +.TH "moeoObjectiveVector" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoObjectiveVector \- Abstract class allowing to represent a solution in the objective space (phenotypic representation). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef ObjectiveVectorTraits \fBTraits\fP" +.br +.RI "\fIThe traits of objective vectors. \fP" +.ti -1c +.RI "typedef ObjectiveVectorType \fBType\fP" +.br +.RI "\fIThe type of an objective value. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoObjectiveVector\fP (\fBType\fP _value=\fBType\fP())" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "\fBmoeoObjectiveVector\fP (std::vector< \fBType\fP > &_v)" +.br +.RI "\fICtor from a vector of Type. \fP" +.in -1c +.SS "Static Public Member Functions" + +.in +1c +.ti -1c +.RI "static void \fBsetup\fP (unsigned int _nObjectives, std::vector< bool > &_bObjectives)" +.br +.RI "\fI\fBParameters\fP setting (for the objective vector of any solution). \fP" +.ti -1c +.RI "static unsigned int \fBnObjectives\fP ()" +.br +.RI "\fIReturns the number of objectives. \fP" +.ti -1c +.RI "static bool \fBminimizing\fP (unsigned int _i)" +.br +.RI "\fIReturns true if the _ith objective have to be minimized. \fP" +.ti -1c +.RI "static bool \fBmaximizing\fP (unsigned int _i)" +.br +.RI "\fIReturns true if the _ith objective have to be maximized. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >" +Abstract class allowing to represent a solution in the objective space (phenotypic representation). + +The template argument ObjectiveVectorTraits defaults to \fBmoeoObjectiveVectorTraits\fP, but it can be replaced at will by any other class that implements the static functions defined therein. Some static funtions to access to the traits characteristics are re-defined in order not to write a lot of typedef's. +.PP +Definition at line 25 of file moeoObjectiveVector.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoObjectiveVector\fP< ObjectiveVectorTraits, ObjectiveVectorType >::\fBmoeoObjectiveVector\fP (std::vector< \fBType\fP > & _v)\fC [inline]\fP" +.PP +Ctor from a vector of Type. +.PP +\fBParameters:\fP +.RS 4 +\fI_v\fP the std::vector < Type > +.RE +.PP + +.PP +Definition at line 46 of file moeoObjectiveVector.h. +.SH "Member Function Documentation" +.PP +.SS "template static void \fBmoeoObjectiveVector\fP< ObjectiveVectorTraits, ObjectiveVectorType >::setup (unsigned int _nObjectives, std::vector< bool > & _bObjectives)\fC [inline, static]\fP" +.PP +\fBParameters\fP setting (for the objective vector of any solution). +.PP +\fBParameters:\fP +.RS 4 +\fI_nObjectives\fP the number of objectives +.br +\fI_bObjectives\fP the min/max vector (true = min / false = max) +.RE +.PP + +.PP +Definition at line 55 of file moeoObjectiveVector.h. +.SS "template static bool \fBmoeoObjectiveVector\fP< ObjectiveVectorTraits, ObjectiveVectorType >::minimizing (unsigned int _i)\fC [inline, static]\fP" +.PP +Returns true if the _ith objective have to be minimized. +.PP +\fBParameters:\fP +.RS 4 +\fI_i\fP the index +.RE +.PP + +.PP +Definition at line 74 of file moeoObjectiveVector.h. +.SS "template static bool \fBmoeoObjectiveVector\fP< ObjectiveVectorTraits, ObjectiveVectorType >::maximizing (unsigned int _i)\fC [inline, static]\fP" +.PP +Returns true if the _ith objective have to be maximized. +.PP +\fBParameters:\fP +.RS 4 +\fI_i\fP the index +.RE +.PP + +.PP +Definition at line 84 of file moeoObjectiveVector.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorComparator.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorComparator.3 new file mode 100644 index 000000000..9cffe02e6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorComparator.3 @@ -0,0 +1,29 @@ +.TH "moeoObjectiveVectorComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoObjectiveVectorComparator \- Abstract class allowing to compare 2 objective vectors. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const const ObjectiveVector &, ObjectiveVector &, bool >\fP. +.PP +Inherited by \fBmoeoGDominanceObjectiveVectorComparator< ObjectiveVector >\fP, \fBmoeoObjectiveObjectiveVectorComparator< ObjectiveVector >\fP, and \fBmoeoParetoObjectiveVectorComparator< ObjectiveVector >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoObjectiveVectorComparator< ObjectiveVector >" +Abstract class allowing to compare 2 objective vectors. + +The template argument ObjectiveVector have to be a \fBmoeoObjectiveVector\fP. +.PP +Definition at line 24 of file moeoObjectiveVectorComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorTraits.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorTraits.3 new file mode 100644 index 000000000..3ef49e0d0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorTraits.3 @@ -0,0 +1,105 @@ +.TH "moeoObjectiveVectorTraits" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoObjectiveVectorTraits \- A traits class for \fBmoeoObjectiveVector\fP to specify the number of objectives and which ones have to be minimized or maximized. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Static Public Member Functions" + +.in +1c +.ti -1c +.RI "static void \fBsetup\fP (unsigned int _nObjectives, std::vector< bool > &_bObjectives)" +.br +.RI "\fI\fBParameters\fP setting. \fP" +.ti -1c +.RI "static unsigned int \fBnObjectives\fP ()" +.br +.RI "\fIReturns the number of objectives. \fP" +.ti -1c +.RI "static bool \fBminimizing\fP (unsigned int _i)" +.br +.RI "\fIReturns true if the _ith objective have to be minimized. \fP" +.ti -1c +.RI "static bool \fBmaximizing\fP (unsigned int _i)" +.br +.RI "\fIReturns true if the _ith objective have to be maximized. \fP" +.ti -1c +.RI "static double \fBtolerance\fP ()" +.br +.RI "\fIReturns the tolerance value (to compare solutions). \fP" +.in -1c +.SS "Static Private Attributes" + +.in +1c +.ti -1c +.RI "static unsigned int \fBnObj\fP" +.br +.RI "\fIThe number of objectives. \fP" +.ti -1c +.RI "static std::vector< bool > \fBbObj\fP" +.br +.RI "\fIThe min/max vector. \fP" +.in -1c +.SH "Detailed Description" +.PP +A traits class for \fBmoeoObjectiveVector\fP to specify the number of objectives and which ones have to be minimized or maximized. +.PP +Definition at line 23 of file moeoObjectiveVectorTraits.h. +.SH "Member Function Documentation" +.PP +.SS "static void moeoObjectiveVectorTraits::setup (unsigned int _nObjectives, std::vector< bool > & _bObjectives)\fC [inline, static]\fP" +.PP +\fBParameters\fP setting. +.PP +\fBParameters:\fP +.RS 4 +\fI_nObjectives\fP the number of objectives +.br +\fI_bObjectives\fP the min/max vector (true = min / false = max) +.RE +.PP + +.PP +Definition at line 32 of file moeoObjectiveVectorTraits.h. +.PP +References bObj, and nObj. +.SS "static bool moeoObjectiveVectorTraits::minimizing (unsigned int _i)\fC [inline, static]\fP" +.PP +Returns true if the _ith objective have to be minimized. +.PP +\fBParameters:\fP +.RS 4 +\fI_i\fP the index +.RE +.PP + +.PP +Definition at line 67 of file moeoObjectiveVectorTraits.h. +.PP +References bObj. +.PP +Referenced by maximizing(). +.SS "static bool moeoObjectiveVectorTraits::maximizing (unsigned int _i)\fC [inline, static]\fP" +.PP +Returns true if the _ith objective have to be maximized. +.PP +\fBParameters:\fP +.RS 4 +\fI_i\fP the index +.RE +.PP + +.PP +Definition at line 80 of file moeoObjectiveVectorTraits.h. +.PP +References minimizing(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoOneObjectiveComparator.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoOneObjectiveComparator.3 new file mode 100644 index 000000000..85af8098a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoOneObjectiveComparator.3 @@ -0,0 +1,79 @@ +.TH "moeoOneObjectiveComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoOneObjectiveComparator \- Functor allowing to compare two solutions according to one objective. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoComparator< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoOneObjectiveComparator\fP (unsigned int _obj)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "const bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 < _moeo2 on the obj objective. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "unsigned int \fBobj\fP" +.br +.RI "\fIthe index of objective \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoOneObjectiveComparator< MOEOT >" +Functor allowing to compare two solutions according to one objective. +.PP +Definition at line 22 of file moeoOneObjectiveComparator.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoOneObjectiveComparator\fP< MOEOT >::\fBmoeoOneObjectiveComparator\fP (unsigned int _obj)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_obj\fP the index of objective +.RE +.PP + +.PP +Definition at line 30 of file moeoOneObjectiveComparator.h. +.PP +References moeoOneObjectiveComparator< MOEOT >::obj. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoOneObjectiveComparator\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns true if _moeo1 < _moeo2 on the obj objective. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 44 of file moeoOneObjectiveComparator.h. +.PP +References moeoOneObjectiveComparator< MOEOT >::obj. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoParetoBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoParetoBasedFitnessAssignment.3 new file mode 100644 index 000000000..ac08530a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoParetoBasedFitnessAssignment.3 @@ -0,0 +1,27 @@ +.TH "moeoParetoBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoParetoBasedFitnessAssignment \- \fBmoeoParetoBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for Pareto-based strategies. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoFastNonDominatedSortingFitnessAssignment< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoParetoBasedFitnessAssignment< MOEOT >" +\fBmoeoParetoBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for Pareto-based strategies. +.PP +Definition at line 22 of file moeoParetoBasedFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoParetoObjectiveVectorComparator.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoParetoObjectiveVectorComparator.3 new file mode 100644 index 000000000..6865648d2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoParetoObjectiveVectorComparator.3 @@ -0,0 +1,49 @@ +.TH "moeoParetoObjectiveVectorComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoParetoObjectiveVectorComparator \- This functor class allows to compare 2 objective vectors according to Pareto dominance. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoObjectiveVectorComparator< ObjectiveVector >< ObjectiveVector >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const bool \fBoperator()\fP (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)" +.br +.RI "\fIReturns true if _objectiveVector1 is dominated by _objectiveVector2. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoParetoObjectiveVectorComparator< ObjectiveVector >" +This functor class allows to compare 2 objective vectors according to Pareto dominance. +.PP +Definition at line 22 of file moeoParetoObjectiveVectorComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoParetoObjectiveVectorComparator\fP< ObjectiveVector >::operator() (const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)\fC [inline]\fP" +.PP +Returns true if _objectiveVector1 is dominated by _objectiveVector2. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector1\fP the first objective vector +.br +\fI_objectiveVector2\fP the second objective vector +.RE +.PP + +.PP +Definition at line 31 of file moeoParetoObjectiveVectorComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRandomSelect.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRandomSelect.3 new file mode 100644 index 000000000..280166d61 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRandomSelect.3 @@ -0,0 +1,37 @@ +.TH "moeoRandomSelect" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoRandomSelect \- Selection strategy that selects only one element randomly from a whole population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSelectOne< MOEOT >< MOEOT >\fP, and \fBeoRandomSelect< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoRandomSelect\fP ()" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "const MOEOT & \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIReturn one individual at random by using an \fBeoRandomSelect\fP. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoRandomSelect< MOEOT >" +Selection strategy that selects only one element randomly from a whole population. +.PP +Definition at line 23 of file moeoRandomSelect.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRealObjectiveVector.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRealObjectiveVector.3 new file mode 100644 index 000000000..ee845140a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRealObjectiveVector.3 @@ -0,0 +1,179 @@ +.TH "moeoRealObjectiveVector" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoRealObjectiveVector \- This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoObjectiveVector< ObjectiveVectorTraits, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoRealObjectiveVector\fP (double _value=0.0)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "\fBmoeoRealObjectiveVector\fP (std::vector< double > &_v)" +.br +.RI "\fICtor from a vector of doubles. \fP" +.ti -1c +.RI "bool \fBdominates\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector dominates _other according to the Pareto dominance relation (but it's better to use a \fBmoeoObjectiveVectorComparator\fP object to compare solutions). \fP" +.ti -1c +.RI "bool \fBoperator==\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is equal to _other (according to a tolerance value). \fP" +.ti -1c +.RI "bool \fBoperator!=\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is different than _other (according to a tolerance value). \fP" +.ti -1c +.RI "bool \fBoperator<\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is smaller than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \fP" +.ti -1c +.RI "bool \fBoperator>\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is greater than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \fP" +.ti -1c +.RI "bool \fBoperator<=\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is smaller than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \fP" +.ti -1c +.RI "bool \fBoperator>=\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is greater than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoRealObjectiveVector< ObjectiveVectorTraits >" +This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. + +that an objective value is represented using a double, and this for any objective. +.PP +Definition at line 27 of file moeoRealObjectiveVector.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::\fBmoeoRealObjectiveVector\fP (std::vector< double > & _v)\fC [inline]\fP" +.PP +Ctor from a vector of doubles. +.PP +\fBParameters:\fP +.RS 4 +\fI_v\fP the std::vector < double > +.RE +.PP + +.PP +Definition at line 45 of file moeoRealObjectiveVector.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::dominates (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector dominates _other according to the Pareto dominance relation (but it's better to use a \fBmoeoObjectiveVectorComparator\fP object to compare solutions). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 54 of file moeoRealObjectiveVector.h. +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator== (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is equal to _other (according to a tolerance value). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 65 of file moeoRealObjectiveVector.h. +.PP +Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator!=(), and moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>=(). +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator!= (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is different than _other (according to a tolerance value). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 82 of file moeoRealObjectiveVector.h. +.PP +References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator==(). +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator< (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is smaller than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 93 of file moeoRealObjectiveVector.h. +.PP +Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator<=(). +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator> (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is greater than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 105 of file moeoRealObjectiveVector.h. +.PP +Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>=(). +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator<= (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is smaller than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 116 of file moeoRealObjectiveVector.h. +.PP +References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator<(). +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator>= (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is greater than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 127 of file moeoRealObjectiveVector.h. +.PP +References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator==(), and moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRealVector.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRealVector.3 new file mode 100644 index 000000000..aef8af9a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRealVector.3 @@ -0,0 +1,53 @@ +.TH "moeoRealVector" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoRealVector \- This class is an implementation of a simple double-valued \fBmoeoVector\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoRealVector\fP (unsigned int _size=0, double _value=0.0)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "virtual std::string \fBclassName\fP () const " +.br +.RI "\fIReturns the class name as a std::string. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >" +This class is an implementation of a simple double-valued \fBmoeoVector\fP. +.PP +Definition at line 22 of file moeoRealVector.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoRealVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::\fBmoeoRealVector\fP (unsigned int _size = \fC0\fP, double _value = \fC0.0\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_size\fP Length of vector (default is 0) +.br +\fI_value\fP Initial value of all elements (default is default value of type GeneType) +.RE +.PP + +.PP +Definition at line 31 of file moeoRealVector.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoReplacement.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoReplacement.3 new file mode 100644 index 000000000..7e13533a7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoReplacement.3 @@ -0,0 +1,27 @@ +.TH "moeoReplacement" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoReplacement \- Replacement strategy for multi-objective optimization. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoReplacement< MOEOT >\fP. +.PP +Inherited by \fBmoeoElitistReplacement< MOEOT >\fP, \fBmoeoEnvironmentalReplacement< MOEOT >\fP, and \fBmoeoGenerationalReplacement< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoReplacement< MOEOT >" +Replacement strategy for multi-objective optimization. +.PP +Definition at line 22 of file moeoReplacement.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRouletteSelect.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRouletteSelect.3 new file mode 100644 index 000000000..7e2158f48 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoRouletteSelect.3 @@ -0,0 +1,84 @@ +.TH "moeoRouletteSelect" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoRouletteSelect \- Selection strategy that selects ONE individual by using roulette wheel process. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSelectOne< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoRouletteSelect\fP (unsigned int _tSize=2)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "const MOEOT & \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply the tournament to the given population. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "double & \fBtSize\fP" +.br +.RI "\fIsize \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoRouletteSelect< MOEOT >" +Selection strategy that selects ONE individual by using roulette wheel process. + +\fBWarning:\fP +.RS 4 +This selection only uses fitness values (and not diversity values). +.RE +.PP + +.PP +Definition at line 24 of file moeoRouletteSelect.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoRouletteSelect\fP< MOEOT >::\fBmoeoRouletteSelect\fP (unsigned int _tSize = \fC2\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_tSize\fP the number of individuals in the tournament (default: 2) +.RE +.PP + +.PP +Definition at line 32 of file moeoRouletteSelect.h. +.PP +References moeoRouletteSelect< MOEOT >::tSize. +.SH "Member Function Documentation" +.PP +.SS "template const MOEOT& \fBmoeoRouletteSelect\fP< MOEOT >::operator() (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline]\fP" +.PP +Apply the tournament to the given population. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 48 of file moeoRouletteSelect.h. +.PP +References moeoRouletteSelect< MOEOT >::tSize. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoScalarFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoScalarFitnessAssignment.3 new file mode 100644 index 000000000..4cb58a840 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoScalarFitnessAssignment.3 @@ -0,0 +1,27 @@ +.TH "moeoScalarFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoScalarFitnessAssignment \- \fBmoeoScalarFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for scalar strategies. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoAchievementFitnessAssignment< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoScalarFitnessAssignment< MOEOT >" +\fBmoeoScalarFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for scalar strategies. +.PP +Definition at line 22 of file moeoScalarFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSelectFromPopAndArch.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSelectFromPopAndArch.3 new file mode 100644 index 000000000..cfd6a0a57 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSelectFromPopAndArch.3 @@ -0,0 +1,105 @@ +.TH "moeoSelectFromPopAndArch" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoSelectFromPopAndArch \- Elitist selection process that consists in choosing individuals in the archive as well as in the current population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSelectOne< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoSelectFromPopAndArch\fP (\fBmoeoSelectOne\fP< MOEOT > &_popSelectOne, \fBmoeoSelectOne\fP< MOEOT > _archSelectOne, \fBmoeoArchive\fP< MOEOT > &_arch, double _ratioFromPop=0.5)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "\fBmoeoSelectFromPopAndArch\fP (\fBmoeoSelectOne\fP< MOEOT > &_popSelectOne, \fBmoeoArchive\fP< MOEOT > &_arch, double _ratioFromPop=0.5)" +.br +.RI "\fIDefaulr ctor - the archive's selection operator is a random selector. \fP" +.ti -1c +.RI "virtual const MOEOT & \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &pop)" +.br +.RI "\fIThe selection process. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISetups some population stats. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoSelectOne\fP< MOEOT > & \fBpopSelectOne\fP" +.br +.RI "\fIThe population's selection operator. \fP" +.ti -1c +.RI "\fBmoeoSelectOne\fP< MOEOT > & \fBarchSelectOne\fP" +.br +.RI "\fIThe archive's selection operator. \fP" +.ti -1c +.RI "\fBmoeoArchive\fP< MOEOT > & \fBarch\fP" +.br +.RI "\fIThe archive. \fP" +.ti -1c +.RI "double \fBratioFromPop\fP" +.br +.RI "\fIThe ratio of selected individuals from the population. \fP" +.ti -1c +.RI "\fBmoeoRandomSelect\fP< MOEOT > \fBrandomSelectOne\fP" +.br +.RI "\fIA random selection operator (used as default for archSelectOne). \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoSelectFromPopAndArch< MOEOT >" +Elitist selection process that consists in choosing individuals in the archive as well as in the current population. +.PP +Definition at line 26 of file moeoSelectFromPopAndArch.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoSelectFromPopAndArch\fP< MOEOT >::\fBmoeoSelectFromPopAndArch\fP (\fBmoeoSelectOne\fP< MOEOT > & _popSelectOne, \fBmoeoSelectOne\fP< MOEOT > _archSelectOne, \fBmoeoArchive\fP< MOEOT > & _arch, double _ratioFromPop = \fC0.5\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_popSelectOne\fP the population's selection operator +.br +\fI_archSelectOne\fP the archive's selection operator +.br +\fI_arch\fP the archive +.br +\fI_ratioFromPop\fP the ratio of selected individuals from the population +.RE +.PP + +.PP +Definition at line 37 of file moeoSelectFromPopAndArch.h. +.SS "template \fBmoeoSelectFromPopAndArch\fP< MOEOT >::\fBmoeoSelectFromPopAndArch\fP (\fBmoeoSelectOne\fP< MOEOT > & _popSelectOne, \fBmoeoArchive\fP< MOEOT > & _arch, double _ratioFromPop = \fC0.5\fP)\fC [inline]\fP" +.PP +Defaulr ctor - the archive's selection operator is a random selector. +.PP +\fBParameters:\fP +.RS 4 +\fI_popSelectOne\fP the population's selection operator +.br +\fI_arch\fP the archive +.br +\fI_ratioFromPop\fP the ratio of selected individuals from the population +.RE +.PP + +.PP +Definition at line 48 of file moeoSelectFromPopAndArch.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSelectOne.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSelectOne.3 new file mode 100644 index 000000000..19b48730f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSelectOne.3 @@ -0,0 +1,27 @@ +.TH "moeoSelectOne" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoSelectOne \- Selection strategy for multi-objective optimization that selects only one element from a whole population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoSelectOne< MOEOT >\fP. +.PP +Inherited by \fBmoeoDetTournamentSelect< MOEOT >\fP, \fBmoeoRandomSelect< MOEOT >\fP, \fBmoeoRouletteSelect< MOEOT >\fP, \fBmoeoSelectFromPopAndArch< MOEOT >\fP, and \fBmoeoStochTournamentSelect< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoSelectOne< MOEOT >" +Selection strategy for multi-objective optimization that selects only one element from a whole population. +.PP +Definition at line 22 of file moeoSelectOne.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSharingDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSharingDiversityAssignment.3 new file mode 100644 index 000000000..a391bc9c0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSharingDiversityAssignment.3 @@ -0,0 +1,198 @@ +.TH "moeoSharingDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoSharingDiversityAssignment \- Sharing assignment scheme originally porposed by: D. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoDiversityAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoFrontByFrontSharingDiversityAssignment< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoSharingDiversityAssignment\fP (\fBmoeoDistance\fP< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=1.0)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "\fBmoeoSharingDiversityAssignment\fP (double _nicheSize=0.5, double _alpha=1.0)" +.br +.RI "\fICtor with an euclidean distance (with normalized objective values) in the objective space is used as default. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets diversity values for every solution contained in the population _pop. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.in -1c +.SS "Protected Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBsetSimilarities\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets similarities for every solution contained in the population _pop. \fP" +.ti -1c +.RI "double \fBsh\fP (double _dist)" +.br +.RI "\fISharing function. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoDistance\fP< MOEOT, double > & \fBdistance\fP" +.br +.RI "\fIthe distance used to compute the neighborhood of solutions \fP" +.ti -1c +.RI "\fBmoeoEuclideanDistance\fP< MOEOT > \fBdefaultDistance\fP" +.br +.RI "\fIeuclidean distancein the objective space (can be used as default) \fP" +.ti -1c +.RI "double \fBnicheSize\fP" +.br +.RI "\fIneighborhood size in terms of radius distance \fP" +.ti -1c +.RI "double \fBalpha\fP" +.br +.RI "\fIparameter used to regulate the shape of the sharing function \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoSharingDiversityAssignment< MOEOT >" +Sharing assignment scheme originally porposed by: D. + +E. Goldberg, 'Genetic Algorithms in Search, Optimization and Machine Learning', Addision-Wesley, MA, USA (1989). +.PP +Definition at line 28 of file moeoSharingDiversityAssignment.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoSharingDiversityAssignment\fP< MOEOT >::\fBmoeoSharingDiversityAssignment\fP (\fBmoeoDistance\fP< MOEOT, double > & _distance, double _nicheSize = \fC0.5\fP, double _alpha = \fC1.0\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_distance\fP the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) +.br +\fI_nicheSize\fP neighborhood size in terms of radius distance (closely related to the way the distances are computed) +.br +\fI_alpha\fP parameter used to regulate the shape of the sharing function +.RE +.PP + +.PP +Definition at line 42 of file moeoSharingDiversityAssignment.h. +.SS "template \fBmoeoSharingDiversityAssignment\fP< MOEOT >::\fBmoeoSharingDiversityAssignment\fP (double _nicheSize = \fC0.5\fP, double _alpha = \fC1.0\fP)\fC [inline]\fP" +.PP +Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_nicheSize\fP neighborhood size in terms of radius distance (closely related to the way the distances are computed) +.br +\fI_alpha\fP parameter used to regulate the shape of the sharing function +.RE +.PP + +.PP +Definition at line 51 of file moeoSharingDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoSharingDiversityAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets diversity values for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 59 of file moeoSharingDiversityAssignment.h. +.PP +References moeoSharingDiversityAssignment< MOEOT >::setSimilarities(). +.SS "template void \fBmoeoSharingDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! +.RE +.PP + +.PP +Implements \fBmoeoDiversityAssignment< MOEOT >\fP. +.PP +Reimplemented in \fBmoeoFrontByFrontSharingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 80 of file moeoSharingDiversityAssignment.h. +.SS "template virtual void \fBmoeoSharingDiversityAssignment\fP< MOEOT >::setSimilarities (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, protected, virtual]\fP" +.PP +Sets similarities for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented in \fBmoeoFrontByFrontSharingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 102 of file moeoSharingDiversityAssignment.h. +.PP +References moeoSharingDiversityAssignment< MOEOT >::distance, and moeoSharingDiversityAssignment< MOEOT >::sh(). +.PP +Referenced by moeoSharingDiversityAssignment< MOEOT >::operator()(). +.SS "template double \fBmoeoSharingDiversityAssignment\fP< MOEOT >::sh (double _dist)\fC [inline, protected]\fP" +.PP +Sharing function. +.PP +\fBParameters:\fP +.RS 4 +\fI_dist\fP the distance value +.RE +.PP + +.PP +Definition at line 125 of file moeoSharingDiversityAssignment.h. +.PP +References moeoSharingDiversityAssignment< MOEOT >::alpha, and moeoSharingDiversityAssignment< MOEOT >::nicheSize. +.PP +Referenced by moeoSharingDiversityAssignment< MOEOT >::setSimilarities(), and moeoFrontByFrontSharingDiversityAssignment< MOEOT >::setSimilarities(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSolutionUnaryMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSolutionUnaryMetric.3 new file mode 100644 index 000000000..708dfdcb2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSolutionUnaryMetric.3 @@ -0,0 +1,25 @@ +.TH "moeoSolutionUnaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoSolutionUnaryMetric \- Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoUnaryMetric< const ObjectiveVector &, R >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoSolutionUnaryMetric< ObjectiveVector, R >" +Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. +.PP +Definition at line 43 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSolutionVsSolutionBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSolutionVsSolutionBinaryMetric.3 new file mode 100644 index 000000000..d4e11d55c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoSolutionVsSolutionBinaryMetric.3 @@ -0,0 +1,27 @@ +.TH "moeoSolutionVsSolutionBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoSolutionVsSolutionBinaryMetric \- Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoBinaryMetric< A1, A2, R >< const const ObjectiveVector &, ObjectiveVector &, R >\fP. +.PP +Inherited by \fBmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >" +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. +.PP +Definition at line 57 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoStochTournamentSelect.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoStochTournamentSelect.3 new file mode 100644 index 000000000..07965ece9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoStochTournamentSelect.3 @@ -0,0 +1,107 @@ +.TH "moeoStochTournamentSelect" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoStochTournamentSelect \- Selection strategy that selects ONE individual by stochastic tournament. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSelectOne< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoStochTournamentSelect\fP (\fBmoeoComparator\fP< MOEOT > &_comparator, double _tRate=1.0)" +.br +.RI "\fIFull Ctor. \fP" +.ti -1c +.RI "\fBmoeoStochTournamentSelect\fP (double _tRate=1.0)" +.br +.RI "\fICtor without comparator. \fP" +.ti -1c +.RI "const MOEOT & \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply the tournament to the given population. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoComparator\fP< MOEOT > & \fBcomparator\fP" +.br +.RI "\fIthe comparator (used to compare 2 individuals) \fP" +.ti -1c +.RI "\fBmoeoFitnessThenDiversityComparator\fP< MOEOT > \fBdefaultComparator\fP" +.br +.RI "\fIa fitness then diversity comparator can be used as default \fP" +.ti -1c +.RI "double \fBtRate\fP" +.br +.RI "\fIthe tournament rate \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoStochTournamentSelect< MOEOT >" +Selection strategy that selects ONE individual by stochastic tournament. +.PP +Definition at line 24 of file moeoStochTournamentSelect.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoStochTournamentSelect\fP< MOEOT >::\fBmoeoStochTournamentSelect\fP (\fBmoeoComparator\fP< MOEOT > & _comparator, double _tRate = \fC1.0\fP)\fC [inline]\fP" +.PP +Full Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_comparator\fP the comparator (used to compare 2 individuals) +.br +\fI_tRate\fP the tournament rate +.RE +.PP + +.PP +Definition at line 33 of file moeoStochTournamentSelect.h. +.PP +References moeoStochTournamentSelect< MOEOT >::tRate. +.SS "template \fBmoeoStochTournamentSelect\fP< MOEOT >::\fBmoeoStochTournamentSelect\fP (double _tRate = \fC1.0\fP)\fC [inline]\fP" +.PP +Ctor without comparator. +.PP +A \fBmoeoFitnessThenDiversityComparator\fP is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_tRate\fP the tournament rate +.RE +.PP + +.PP +Definition at line 53 of file moeoStochTournamentSelect.h. +.PP +References moeoStochTournamentSelect< MOEOT >::tRate. +.SH "Member Function Documentation" +.PP +.SS "template const MOEOT& \fBmoeoStochTournamentSelect\fP< MOEOT >::operator() (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline]\fP" +.PP +Apply the tournament to the given population. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 73 of file moeoStochTournamentSelect.h. +.PP +References moeoStochTournamentSelect< MOEOT >::comparator, and moeoStochTournamentSelect< MOEOT >::tRate. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoUnaryIndicatorBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoUnaryIndicatorBasedFitnessAssignment.3 new file mode 100644 index 000000000..350727dd2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoUnaryIndicatorBasedFitnessAssignment.3 @@ -0,0 +1,25 @@ +.TH "moeoUnaryIndicatorBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoUnaryIndicatorBasedFitnessAssignment \- \fBmoeoIndicatorBasedFitnessAssignment\fP for unary indicators. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoIndicatorBasedFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >" +\fBmoeoIndicatorBasedFitnessAssignment\fP for unary indicators. +.PP +Definition at line 22 of file moeoUnaryIndicatorBasedFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoUnaryMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoUnaryMetric.3 new file mode 100644 index 000000000..202360b62 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoUnaryMetric.3 @@ -0,0 +1,25 @@ +.TH "moeoUnaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoUnaryMetric \- Base class for unary metrics. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< A, R >\fP, and \fBmoeoMetric\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoUnaryMetric< A, R >" +Base class for unary metrics. +.PP +Definition at line 29 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVector.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVector.3 new file mode 100644 index 000000000..2179ad125 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVector.3 @@ -0,0 +1,137 @@ +.TH "moeoVector" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoVector \- Base class for fixed length chromosomes, just derives from \fBMOEO\fP and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef GeneType \fBAtomType\fP" +.br +.RI "\fIthe atomic type \fP" +.ti -1c +.RI "typedef std::vector< GeneType > \fBContainerType\fP" +.br +.RI "\fIthe container type \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoVector\fP (unsigned int _size=0, GeneType _value=GeneType())" +.br +.RI "\fIDefault ctor. \fP" +.ti -1c +.RI "void \fBvalue\fP (const std::vector< GeneType > &_v)" +.br +.RI "\fIWe can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. \fP" +.ti -1c +.RI "bool \fBoperator<\fP (const \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > &_moeo) const " +.br +.RI "\fITo avoid conflicts between \fBMOEO::operator<\fP and std::vector::operator<. \fP" +.ti -1c +.RI "virtual void \fBprintOn\fP (std::ostream &_os) const " +.br +.RI "\fIWriting object. \fP" +.ti -1c +.RI "virtual void \fBreadFrom\fP (std::istream &_is)" +.br +.RI "\fIReading object. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >" +Base class for fixed length chromosomes, just derives from \fBMOEO\fP and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). + +GeneType must have the following methods: void ctor (needed for the std::vector<>), copy ctor. +.PP +Definition at line 25 of file moeoVector.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::\fBmoeoVector\fP (unsigned int _size = \fC0\fP, GeneType _value = \fCGeneType()\fP)\fC [inline]\fP" +.PP +Default ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_size\fP Length of vector (default is 0) +.br +\fI_value\fP Initial value of all elements (default is default value of type GeneType) +.RE +.PP + +.PP +Definition at line 47 of file moeoVector.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::value (const std::vector< GeneType > & _v)\fC [inline]\fP" +.PP +We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_v\fP a vector of GeneType +.RE +.PP + +.PP +Definition at line 56 of file moeoVector.h. +.SS "template bool \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::operator< (const \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > & _moeo) const\fC [inline]\fP" +.PP +To avoid conflicts between \fBMOEO::operator<\fP and std::vector::operator<. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo\fP the object to compare with +.RE +.PP + +.PP +Definition at line 79 of file moeoVector.h. +.SS "template virtual void \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::printOn (std::ostream & _os) const\fC [inline, virtual]\fP" +.PP +Writing object. +.PP +\fBParameters:\fP +.RS 4 +\fI_os\fP output stream +.RE +.PP + +.PP +Reimplemented from \fBMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP. +.PP +Reimplemented in \fBmoeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP. +.PP +Definition at line 89 of file moeoVector.h. +.SS "template virtual void \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::readFrom (std::istream & _is)\fC [inline, virtual]\fP" +.PP +Reading object. +.PP +\fBParameters:\fP +.RS 4 +\fI_is\fP input stream +.RE +.PP + +.PP +Reimplemented from \fBMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP. +.PP +Reimplemented in \fBmoeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP. +.PP +Definition at line 102 of file moeoVector.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVectorUnaryMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVectorUnaryMetric.3 new file mode 100644 index 000000000..a98812e26 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVectorUnaryMetric.3 @@ -0,0 +1,25 @@ +.TH "moeoVectorUnaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoVectorUnaryMetric \- Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoUnaryMetric< const std::vector< ObjectiveVector > &, R >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoVectorUnaryMetric< ObjectiveVector, R >" +Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). +.PP +Definition at line 50 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVectorVsVectorBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVectorVsVectorBinaryMetric.3 new file mode 100644 index 000000000..b2e289fd9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/man/man3/moeoVectorVsVectorBinaryMetric.3 @@ -0,0 +1,25 @@ +.TH "moeoVectorVsVectorBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoVectorVsVectorBinaryMetric \- Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoBinaryMetric< A1, A2, R >< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >" +Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). +.PP +Definition at line 64 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/moeo.doxyfile b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/moeo.doxyfile new file mode 100644 index 000000000..ae4b5256f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/doc/moeo.doxyfile @@ -0,0 +1,237 @@ +# Doxyfile 1.5.1 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = ParadisEO-MOEO +PROJECT_NUMBER = 1.0-beta +OUTPUT_DIRECTORY = +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . ../src +FILE_PATTERNS = *.cpp \ + *.h \ + NEWS README +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 3 +IGNORE_PREFIX = moeo +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = YES +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = ../../paradiseo-eo/doc/eo.doxytag=http://eodev.sourceforge.net/eo/doc/html +GENERATE_TAGFILE = moeo.doxytag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = YES diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/moeo-conf.cmake b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/moeo-conf.cmake new file mode 100644 index 000000000..dda17efce --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/moeo-conf.cmake @@ -0,0 +1,32 @@ + +###################################################################################### +###################################################################################### +### In this file, you can specify many CMake variables used to build paradisEO-MOEO. +### For example, if you don't want ot give the EO path each time on the command line, +### uncomment the line the "SET(EO_DIR...)" and set your path. +### The section numbers are the same as those used in the CMakeLists.txt file. +###################################################################################### +###################################################################################### + +###################################################################################### +### 3) OPTIONNAL - Overwrite default paths +###################################################################################### + +# SET(MOEO_DIR "" CACHE PATH "ParadisEO-MOEO main directory") +# SET(EO_DIR "" CACHE PATH "ParadisEO-EO main directory") + +# SET(EO_SRC_DIR "") +# SET(MOEO_SRC_DIR "") +# SET(MOEO_DOC_DIR "") + +###################################################################################### + + +##################################################################################### +### 5) OPTIONNAL - Overwrite subdirs +###################################################################################### + +# SUBDIRS(doc src tutorial) + +###################################################################################### + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/CMakeLists.txt new file mode 100644 index 000000000..93f0fac3c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/CMakeLists.txt @@ -0,0 +1,80 @@ + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) + +###################################################################################### + + +###################################################################################### +### 2) Define your target(s): just the moeo lib here. +###################################################################################### + +SET(MOEO_LIB_OUTPUT_PATH ${ParadisEO-MOEO_BINARY_DIR}/lib) +SET(LIBRARY_OUTPUT_PATH ${MOEO_LIB_OUTPUT_PATH}) + +SET (MOEO_SOURCES core/moeoObjectiveVectorTraits.cpp) + +# --> UNIX +IF(UNIX) + ADD_LIBRARY(moeo STATIC ${MOEO_SOURCES}) + +# --> WIN +ELSEIF(WIN32) + ADD_LIBRARY(moeo STATIC ${MOEO_SOURCES}) + +ENDIF(UNIX) +###################################################################################### + + +###################################################################################### +### 3) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(MOEO_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(moeo PROPERTIES VERSION "${MOEO_VERSION}") +###################################################################################### + + +###################################################################################### +### 4) Link the librairies for your target(s) +###################################################################################### + +# No library required + +###################################################################################### + + +###################################################################################### +### 5) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O2") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MTd /Z7 /Od") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE") + + ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + + +###################################################################################### +### 6) Where must cmake go now ? +###################################################################################### + +# nothing to be compiled in the subdirs + +###################################################################################### + + + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoAlgo.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoAlgo.h new file mode 100644 index 000000000..0bc47ee8a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoAlgo.h @@ -0,0 +1,21 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoAlgo.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOALGO_H_ +#define MOEOALGO_H_ + +/** + * Abstract class for multi-objective algorithms. + */ +class moeoAlgo {}; + +#endif /*MOEOALGO_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoCombinedLS.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoCombinedLS.h new file mode 100644 index 000000000..78b5b55a7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoCombinedLS.h @@ -0,0 +1,67 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoCombinedLS.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOCOMBINEDLS_H_ +#define MOEOCOMBINEDLS_H_ + +#include +#include +#include + +/** + * This class allows to embed a set of local searches that are sequentially applied, + * and so working and updating the same archive of non-dominated solutions. + */ +template < class MOEOT, class Type > +class moeoCombinedLS : public moeoLS < MOEOT, Type > +{ +public: + + /** + * Ctor + * @param _first_mols the first multi-objective local search to add + */ + moeoCombinedLS(moeoLS < MOEOT, Type > & _first_mols) + { + combinedLS.push_back (& _first_mols); + } + + /** + * Adds a new local search to combine + * @param _mols the multi-objective local search to add + */ + void add(moeoLS < MOEOT, Type > & _mols) + { + combinedLS.push_back(& _mols); + } + + /** + * Gives a new solution in order to explore the neigborhood. + * The new non-dominated solutions are added to the archive + * @param _type the object to apply the local search to + * @param _arch the archive of non-dominated solutions + */ + void operator () (Type _type, moeoArchive < MOEOT > & _arch) + { + for (unsigned int i=0; i operator()(_type, _arch); + } + + +private: + + /** the vector that contains the combined LS */ + std::vector< moeoLS < MOEOT, Type > * > combinedLS; + +}; + +#endif /*MOEOCOMBINEDLS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoEA.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoEA.h new file mode 100644 index 000000000..d01264cec --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoEA.h @@ -0,0 +1,25 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEA.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOEA_H_ +#define MOEOEA_H_ + +#include +#include + +/** + * Abstract class for multi-objective evolutionary algorithms. + */ +template < class MOEOT > +class moeoEA : public moeoAlgo, public eoAlgo < MOEOT > {}; + +#endif /*MOEOEA_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoEasyEA.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoEasyEA.h new file mode 100755 index 000000000..883a95e76 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoEasyEA.h @@ -0,0 +1,218 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEasyEA.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef _MOEOEASYEA_H +#define _MOEOEASYEA_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * An easy class to design multi-objective evolutionary algorithms. + */ +template < class MOEOT > +class moeoEasyEA: public moeoEA < MOEOT > +{ +public: + + /** + * Ctor taking a breed and merge. + * @param _continuator the stopping criteria + * @param _eval the evaluation functions + * @param _breed the breeder + * @param _replace the replacement strategy + * @param _fitnessEval the fitness evaluation scheme + * @param _diversityEval the diversity evaluation scheme + * @param _evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process + */ + moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoBreed < MOEOT > & _breed, moeoReplacement < MOEOT > & _replace, + moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false) + : + continuator(_continuator), eval (_eval), loopEval(_eval), popEval(loopEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(dummyMerge, dummyReduce), replace(_replace), + fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection) + {} + + + /** + * Ctor taking a breed, a merge and a eoPopEval. + * @param _continuator the stopping criteria + * @param _popEval the evaluation functions for the whole population + * @param _breed the breeder + * @param _replace the replacement strategy + * @param _fitnessEval the fitness evaluation scheme + * @param _diversityEval the diversity evaluation scheme + * @param _evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process + */ + moeoEasyEA(eoContinue < MOEOT > & _continuator, eoPopEvalFunc < MOEOT > & _popEval, eoBreed < MOEOT > & _breed, moeoReplacement < MOEOT > & _replace, + moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false) + : + continuator(_continuator), eval (dummyEval), loopEval(dummyEval), popEval(_popEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(dummyMerge, dummyReduce), replace(_replace), + fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection) + {} + + + /** + * Ctor taking a breed, a merge and a reduce. + * @param _continuator the stopping criteria + * @param _eval the evaluation functions + * @param _breed the breeder + * @param _merge the merge scheme + * @param _reduce the reduce scheme + * @param _fitnessEval the fitness evaluation scheme + * @param _diversityEval the diversity evaluation scheme + * @param _evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process + */ + moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoBreed < MOEOT > & _breed, eoMerge < MOEOT > & _merge, eoReduce< MOEOT > & _reduce, + moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false) + : + continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(_merge,_reduce), replace(mergeReduce), + fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection) + {} + + + /** + * Ctor taking a select, a transform and a replacement. + * @param _continuator the stopping criteria + * @param _eval the evaluation functions + * @param _select the selection scheme + * @param _transform the tranformation scheme + * @param _replace the replacement strategy + * @param _fitnessEval the fitness evaluation scheme + * @param _diversityEval the diversity evaluation scheme + * @param _evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process + */ + moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoSelect < MOEOT > & _select, eoTransform < MOEOT > & _transform, moeoReplacement < MOEOT > & _replace, + moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false) + : + continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(_select, _transform), breed(selectTransform), mergeReduce(dummyMerge, dummyReduce), replace(_replace), + fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection) + {} + + + /** + * Ctor taking a select, a transform, a merge and a reduce. + * @param _continuator the stopping criteria + * @param _eval the evaluation functions + * @param _select the selection scheme + * @param _transform the tranformation scheme + * @param _merge the merge scheme + * @param _reduce the reduce scheme + * @param _fitnessEval the fitness evaluation scheme + * @param _diversityEval the diversity evaluation scheme + * @param _evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process + */ + moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoSelect < MOEOT > & _select, eoTransform < MOEOT > & _transform, eoMerge < MOEOT > & _merge, eoReduce< MOEOT > & _reduce, + moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false) + : + continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(_select, _transform), breed(selectTransform), mergeReduce(_merge,_reduce), replace(mergeReduce), + fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection) + {} + + + /** + * Applies a few generation of evolution to the population _pop. + * @param _pop the population + */ + virtual void operator()(eoPop < MOEOT > & _pop) + { + eoPop < MOEOT > offspring, empty_pop; + popEval(empty_pop, _pop); // A first eval of pop. + bool firstTime = true; + do + { + try + { + unsigned int pSize = _pop.size(); + offspring.clear(); // new offspring + // fitness and diversity assignment (if you want to or if it is the first generation) + if (evalFitAndDivBeforeSelection || firstTime) + { + firstTime = false; + fitnessEval(_pop); + diversityEval(_pop); + } + breed(_pop, offspring); + popEval(_pop, offspring); // eval of parents + offspring if necessary + replace(_pop, offspring); // after replace, the new pop. is in _pop + if (pSize > _pop.size()) + { + throw std::runtime_error("Population shrinking!"); + } + else if (pSize < _pop.size()) + { + throw std::runtime_error("Population growing!"); + } + } + catch (std::exception& e) + { + std::string s = e.what(); + s.append( " in moeoEasyEA"); + throw std::runtime_error( s ); + } + } while (continuator(_pop)); + } + + +protected: + + /** the stopping criteria */ + eoContinue < MOEOT > & continuator; + /** the evaluation functions */ + eoEvalFunc < MOEOT > & eval; + /** to evaluate the whole population */ + eoPopLoopEval < MOEOT > loopEval; + /** to evaluate the whole population */ + eoPopEvalFunc < MOEOT > & popEval; + /** breed: a select followed by a transform */ + eoSelectTransform < MOEOT > selectTransform; + /** the breeder */ + eoBreed < MOEOT > & breed; + /** replacement: a merge followed by a reduce */ + eoMergeReduce < MOEOT > mergeReduce; + /** the replacment strategy */ + moeoReplacement < MOEOT > & replace; + /** the fitness assignment strategy */ + moeoFitnessAssignment < MOEOT > & fitnessEval; + /** the diversity assignment strategy */ + moeoDiversityAssignment < MOEOT > & diversityEval; + /** if this parameter is set to 'true', the fitness and the diversity of the whole population will be re-evaluated before the selection process */ + bool evalFitAndDivBeforeSelection; + /** a dummy eval */ + class eoDummyEval : public eoEvalFunc < MOEOT > + { public: /** the dummy functor */ + void operator()(MOEOT &) {}} dummyEval; + /** a dummy select */ + class eoDummySelect : public eoSelect < MOEOT > + { public: /** the dummy functor */ + void operator()(const eoPop < MOEOT > &, eoPop < MOEOT > &) {} } dummySelect; + /** a dummy transform */ + class eoDummyTransform : public eoTransform < MOEOT > + { public: /** the dummy functor */ + void operator()(eoPop < MOEOT > &) {} } dummyTransform; + /** a dummy merge */ + eoNoElitism < MOEOT > dummyMerge; + /** a dummy reduce */ + eoTruncate < MOEOT > dummyReduce; + +}; + +#endif /*MOEOEASYEA_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoHybridLS.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoHybridLS.h new file mode 100644 index 000000000..3f2d6fd6f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoHybridLS.h @@ -0,0 +1,76 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoHybridLS.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOHYBRIDLS_H_ +#define MOEOHYBRIDLS_H_ + +#include +#include +#include +#include +#include +#include + +/** + * This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive + * at every generation until a stopping criteria is verified. + */ +template < class MOEOT > +class moeoHybridLS : public eoUpdater +{ +public: + + /** + * Ctor + * @param _term stopping criteria + * @param _select selector + * @param _mols a multi-objective local search + * @param _arch the archive + */ + moeoHybridLS (eoContinue < MOEOT > & _term, eoSelect < MOEOT > & _select, moeoLS < MOEOT, MOEOT > & _mols, moeoArchive < MOEOT > & _arch) : + term(_term), select(_select), mols(_mols), arch(_arch) + {} + + + /** + * Applies the multi-objective local search to selected individuals contained in the archive if the stopping criteria is not verified + */ + void operator () () + { + if (! term (arch)) + { + // selection of solutions + eoPop < MOEOT > selectedSolutions; + select(arch, selectedSolutions); + // apply the local search to every selected solution + for (unsigned int i=0; i & term; + /** selector */ + eoSelect < MOEOT > & select; + /** multi-objective local search */ + moeoLS < MOEOT, MOEOT > & mols; + /** archive */ + moeoArchive < MOEOT > & arch; + +}; + +#endif /*MOEOHYBRIDLS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIBEA.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIBEA.h new file mode 100644 index 000000000..9f9d2efef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIBEA.h @@ -0,0 +1,168 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoIBEA.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOIBEA_H_ +#define MOEOIBEA_H_ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * IBEA (Indicator-Based Evolutionary Algorithm) as described in: + * E. Zitzler, S. Künzli, "Indicator-Based Selection in Multiobjective Search", Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). + * This class builds the IBEA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. + */ +template < class MOEOT > +class moeoIBEA : public moeoEA < MOEOT > +{ +public: + + /** The type of objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Simple ctor with a eoGenOp. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + * @param _metric metric + * @param _kappa scaling factor kappa + */ + moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Simple ctor with a eoTransform. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + * @param _metric metric + * @param _kappa scaling factor kappa + */ + moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a crossover, a mutation and their corresponding rates. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _crossover crossover + * @param _pCross crossover probability + * @param _mutation mutation + * @param _pMut mutation probability + * @param _metric metric + * @param _kappa scaling factor kappa + */ + moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2), + fitnessAssignment(_metric, _kappa), replace (fitnessAssignment, dummyDiversityAssignment), defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut), + genBreed (select, defaultSGAGenOp), breed (genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoGenOp. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + * @param _metric metric + * @param _kappa scaling factor kappa + */ + moeoIBEA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) : + continuator(_continuator), popEval(_eval), select(2), + fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoTransform. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + * @param _metric metric + * @param _kappa scaling factor kappa + */ + moeoIBEA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) : + continuator(_continuator), popEval(_eval), select(2), + fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Apply a few generation of evolution to the population _pop until the stopping criteria is verified. + * @param _pop the population + */ + virtual void operator () (eoPop < MOEOT > &_pop) + { + eoPop < MOEOT > offspring, empty_pop; + popEval (empty_pop, _pop); // a first eval of _pop + // evaluate fitness and diversity + fitnessAssignment(_pop); + dummyDiversityAssignment(_pop); + do + { + // generate offspring, worths are recalculated if necessary + breed (_pop, offspring); + // eval of offspring + popEval (_pop, offspring); + // after replace, the new pop is in _pop. Worths are recalculated if necessary + replace (_pop, offspring); + } while (continuator (_pop)); + } + + +protected: + + /** a continuator based on the number of generations (used as default) */ + eoGenContinue < MOEOT > defaultGenContinuator; + /** stopping criteria */ + eoContinue < MOEOT > & continuator; + /** evaluation function used to evaluate the whole population */ + eoPopLoopEval < MOEOT > popEval; + /** binary tournament selection */ + moeoDetTournamentSelect < MOEOT > select; + /** fitness assignment used in IBEA */ + moeoIndicatorBasedFitnessAssignment < MOEOT > fitnessAssignment; + /** dummy diversity assignment */ + moeoDummyDiversityAssignment < MOEOT > dummyDiversityAssignment; + /** elitist replacement */ + moeoEnvironmentalReplacement < MOEOT > replace; + /** an object for genetic operators (used as default) */ + eoSGAGenOp < MOEOT > defaultSGAGenOp; + /** general breeder */ + eoGeneralBreeder < MOEOT > genBreed; + /** breeder */ + eoBreed < MOEOT > & breed; + +}; + +#endif /*MOEOIBEA_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIBMOLS.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIBMOLS.h new file mode 100755 index 000000000..e34a459fc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIBMOLS.h @@ -0,0 +1,280 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoIBMOLS.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOIBMOLS_H_ +#define MOEOIBMOLS_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * Indicator-Based Multi-Objective Local Search (IBMOLS) as described in + * Basseur M., Burke K. : "Indicator-Based Multi-Objective Local Search" (2007). + */ +template < class MOEOT, class Move > +class moeoIBMOLS : public moeoLS < MOEOT, eoPop < MOEOT > & > +{ +public: + + /** The type of objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Ctor. + * @param _moveInit the move initializer + * @param _nextMove the neighborhood explorer + * @param _eval the full evaluation + * @param _moveIncrEval the incremental evaluation + * @param _fitnessAssignment the fitness assignment strategy + * @param _continuator the stopping criteria + */ + moeoIBMOLS( + moMoveInit < Move > & _moveInit, + moNextMove < Move > & _nextMove, + eoEvalFunc < MOEOT > & _eval, + moeoMoveIncrEval < Move > & _moveIncrEval, + moeoIndicatorBasedFitnessAssignment < MOEOT > & _fitnessAssignment, + eoContinue < MOEOT > & _continuator + ) : + moveInit(_moveInit), + nextMove(_nextMove), + eval(_eval), + moveIncrEval(_moveIncrEval), + fitnessAssignment (_fitnessAssignment), + continuator (_continuator) + {} + + + /** + * Apply the local search until a local archive does not change or + * another stopping criteria is met and update the archive _arch with new non-dominated solutions. + * @param _pop the initial population + * @param _arch the (updated) archive + */ + void operator() (eoPop < MOEOT > & _pop, moeoArchive < MOEOT > & _arch) + { + // evaluation of the objective values + /* + for (unsigned int i=0; i<_pop.size(); i++) + { + eval(_pop[i]); + } + */ + // fitness assignment for the whole population + fitnessAssignment(_pop); + // creation of a local archive + moeoArchive < MOEOT > archive; + // creation of another local archive (for the stopping criteria) + moeoArchive < MOEOT > previousArchive; + // update the archive with the initial population + archive.update(_pop); + do + { + previousArchive.update(archive); + oneStep(_pop); + archive.update(_pop); + } while ( (! archive.equals(previousArchive)) && (continuator(_arch)) ); + _arch.update(archive); + } + + +private: + + /** the move initializer */ + moMoveInit < Move > & moveInit; + /** the neighborhood explorer */ + moNextMove < Move > & nextMove; + /** the full evaluation */ + eoEvalFunc < MOEOT > & eval; + /** the incremental evaluation */ + moeoMoveIncrEval < Move > & moveIncrEval; + /** the fitness assignment strategy */ + moeoIndicatorBasedFitnessAssignment < MOEOT > & fitnessAssignment; + /** the stopping criteria */ + eoContinue < MOEOT > & continuator; + + + /** + * Apply one step of the local search to the population _pop + * @param _pop the population + */ + void oneStep (eoPop < MOEOT > & _pop) + { +//////////////////////////////////////////// + int ext_0_idx, ext_1_idx; + ObjectiveVector ext_0_objVec, ext_1_objVec; +/////////////////////////////////////////// + // the move + Move move; + // the objective vector and the fitness of the current solution + ObjectiveVector x_objVec; + double x_fitness; + // the index, the objective vector and the fitness of the worst solution in the population (-1 implies that the worst is the newly created one) + int worst_idx; + ObjectiveVector worst_objVec; + double worst_fitness; + // the index current of the current solution to be explored + unsigned int i=0; + // initilization of the move for the first individual + moveInit(move, _pop[i]); + while (i<_pop.size() && continuator(_pop)) + { + // x = one neigbour of pop[i] + // evaluate x in the objective space + x_objVec = moveIncrEval(move, _pop[i]); + // update every fitness values to take x into account and compute the fitness of x + x_fitness = fitnessAssignment.updateByAdding(_pop, x_objVec); + +//////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////// +// qui sont les extremes ? (=> min only !!!) + ext_0_idx = -1; + ext_0_objVec = x_objVec; + ext_1_idx = -1; + ext_1_objVec = x_objVec; + for (unsigned int k=0; k<_pop.size(); k++) + { + // ext_0 + if (_pop[k].objectiveVector()[0] < ext_0_objVec[0]) + { + ext_0_idx = k; + ext_0_objVec = _pop[k].objectiveVector(); + } + else if ( (_pop[k].objectiveVector()[0] == ext_0_objVec[0]) && (_pop[k].objectiveVector()[1] < ext_0_objVec[1]) ) + { + ext_0_idx = k; + ext_0_objVec = _pop[k].objectiveVector(); + } + // ext_1 + else if (_pop[k].objectiveVector()[1] < ext_1_objVec[1]) + { + ext_1_idx = k; + ext_1_objVec = _pop[k].objectiveVector(); + } + else if ( (_pop[k].objectiveVector()[1] == ext_1_objVec[1]) && (_pop[k].objectiveVector()[0] < ext_1_objVec[0]) ) + { + ext_1_idx = k; + ext_1_objVec = _pop[k].objectiveVector(); + } + } +// worst init + if (ext_0_idx == -1) + { + unsigned int ind = 0; + while (ind == ext_1_idx) + { + ind++; + } + worst_idx = ind; + worst_objVec = _pop[ind].objectiveVector(); + worst_fitness = _pop[ind].fitness(); + } + else if (ext_1_idx == -1) + { + unsigned int ind = 0; + while (ind == ext_0_idx) + { + ind++; + } + worst_idx = ind; + worst_objVec = _pop[ind].objectiveVector(); + worst_fitness = _pop[ind].fitness(); + } + else + { + worst_idx = -1; + worst_objVec = x_objVec; + worst_fitness = x_fitness; + } +//////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // who is the worst ? + for (unsigned int j=0; j<_pop.size(); j++) + { + if ( (j!=ext_0_idx) && (j!=ext_1_idx) ) + { + if (_pop[j].fitness() < worst_fitness) + { + worst_idx = j; + worst_objVec = _pop[j].objectiveVector(); + worst_fitness = _pop[j].fitness(); + } + } + } + // if the worst solution is the new one + if (worst_idx == -1) + { + // if all its neighbours have been explored, + // let's explore the neighborhoud of the next individual + if (! nextMove(move, _pop[i])) + { + i++; + if (i<_pop.size()) + { + // initilization of the move for the next individual + moveInit(move, _pop[i]); + } + } + } + // if the worst solution is located before _pop[i] + else if (worst_idx <= i) + { + // the new solution takes place insteed of _pop[worst_idx] + _pop[worst_idx] = _pop[i]; + move(_pop[worst_idx]); + _pop[worst_idx].objectiveVector(x_objVec); + _pop[worst_idx].fitness(x_fitness); + // let's explore the neighborhoud of the next individual + i++; + if (i<_pop.size()) + { + // initilization of the move for the next individual + moveInit(move, _pop[i]); + } + } + // if the worst solution is located after _pop[i] + else if (worst_idx > i) + { + // the new solution takes place insteed of _pop[i+1] and _pop[worst_idx] is deleted + _pop[worst_idx] = _pop[i+1]; + _pop[i+1] = _pop[i]; + move(_pop[i+1]); + _pop[i+1].objectiveVector(x_objVec); + _pop[i+1].fitness(x_fitness); + // let's explore the neighborhoud of the individual _pop[i+2] + i += 2; + if (i<_pop.size()) + { + // initilization of the move for the next individual + moveInit(move, _pop[i]); + } + } + // update fitness values + fitnessAssignment.updateByDeleting(_pop, worst_objVec); + } + } + +}; + +#endif /*MOEOIBMOLS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIteratedIBMOLS.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIteratedIBMOLS.h new file mode 100755 index 000000000..6ad71f0a5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoIteratedIBMOLS.h @@ -0,0 +1,215 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoIteratedIBMOLS.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOITERATEDIBMOLS_H_ +#define MOEOITERATEDIBMOLS_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +//#include + + + +/** + * Iterated version of IBMOLS as described in + * Basseur M., Burke K. : "Indicator-Based Multi-Objective Local Search" (2007). + */ +template < class MOEOT, class Move > +class moeoIteratedIBMOLS : public moeoLS < MOEOT, eoPop < MOEOT > & > +{ +public: + + /** The type of objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Ctor. + * @param _moveInit the move initializer + * @param _nextMove the neighborhood explorer + * @param _eval the full evaluation + * @param _moveIncrEval the incremental evaluation + * @param _fitnessAssignment the fitness assignment strategy + * @param _continuator the stopping criteria + * @param _monOp the monary operator + * @param _randomMonOp the random monary operator (or random initializer) + * @param _nNoiseIterations the number of iterations to apply the random noise + */ + moeoIteratedIBMOLS( + moMoveInit < Move > & _moveInit, + moNextMove < Move > & _nextMove, + eoEvalFunc < MOEOT > & _eval, + moeoMoveIncrEval < Move > & _moveIncrEval, + moeoIndicatorBasedFitnessAssignment < MOEOT > & _fitnessAssignment, + eoContinue < MOEOT > & _continuator, + eoMonOp < MOEOT > & _monOp, + eoMonOp < MOEOT > & _randomMonOp, + unsigned int _nNoiseIterations=1 + ) : + ibmols(_moveInit, _nextMove, _eval, _moveIncrEval, _fitnessAssignment, _continuator), + eval(_eval), + continuator(_continuator), + monOp(_monOp), + randomMonOp(_randomMonOp), + nNoiseIterations(_nNoiseIterations) + {} + + + /** + * Apply the local search iteratively until the stopping criteria is met. + * @param _pop the initial population + * @param _arch the (updated) archive + */ + void operator() (eoPop < MOEOT > & _pop, moeoArchive < MOEOT > & _arch) + { + _arch.update(_pop); + ibmols(_pop, _arch); + while (continuator(_arch)) + { + // generate new solutions from the archive + generateNewSolutions(_pop, _arch); + // apply the local search (the global archive is updated in the sub-function) + ibmols(_pop, _arch); + } + } + + +private: + + /** the local search to iterate */ + moeoIBMOLS < MOEOT, Move > ibmols; + /** the full evaluation */ + eoEvalFunc < MOEOT > & eval; + /** the stopping criteria */ + eoContinue < MOEOT > & continuator; + /** the monary operator */ + eoMonOp < MOEOT > & monOp; + /** the random monary operator (or random initializer) */ + eoMonOp < MOEOT > & randomMonOp; + /** the number of iterations to apply the random noise */ + unsigned int nNoiseIterations; + + + /** + * Creates new population randomly initialized and/or initialized from the archive _arch. + * @param _pop the output population + * @param _arch the archive + */ + void generateNewSolutions(eoPop < MOEOT > & _pop, const moeoArchive < MOEOT > & _arch) + { + // shuffle vector for the random selection of individuals + vector shuffle; + shuffle.resize(std::max(_pop.size(), _arch.size())); + // init shuffle + for (unsigned int i=0; i gen; + std::random_shuffle(shuffle.begin(), shuffle.end(), gen); + // start the creation of new solutions + for (unsigned int i=0; i<_pop.size(); i++) + { + if (shuffle[i] < _arch.size()) + // the given archive contains the individual i + { + // add it to the resulting pop + _pop[i] = _arch[shuffle[i]]; + // then, apply the operator nIterationsNoise times + for (unsigned int j=0; j & _pop, const moeoArchive < MOEOT > & _arch) + { + // here, we must have a QuadOp ! + //eoQuadOp < MOEOT > quadOp; + rsCrossQuad quadOp; + // shuffle vector for the random selection of individuals + vector shuffle; + shuffle.resize(_arch.size()); + // init shuffle + for (unsigned int i=0; i gen; + std::random_shuffle(shuffle.begin(), shuffle.end(), gen); + // start the creation of new solutions + unsigned int i=0; + while ((i<_pop.size()-1) && (i<_arch.size()-1)) + { + _pop[i] = _arch[shuffle[i]]; + _pop[i+1] = _arch[shuffle[i+1]]; + // then, apply the operator nIterationsNoise times + for (unsigned int j=0; j +#include +#include + +/** + * Abstract class for local searches applied to multi-objective optimization. + * Starting from a Type (i.e.: an individual, a pop, an archive...), it produces a set of new non-dominated solutions. + */ +template < class MOEOT, class Type > +class moeoLS: public moeoAlgo, public eoBF < Type, moeoArchive < MOEOT > &, void > {}; + +#endif /*MOEOLS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoNSGA.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoNSGA.h new file mode 100644 index 000000000..b1bd71076 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoNSGA.h @@ -0,0 +1,158 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoNSGA.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEONSGA_H_ +#define MOEONSGA_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * NSGA (Non-dominated Sorting Genetic Algorithm) as described in: + * N. Srinivas, K. Deb, "Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms". + * Evolutionary Computation, Vol. 2(3), No 2, pp. 221-248 (1994). + * This class builds the NSGA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. + */ +template < class MOEOT > +class moeoNSGA: public moeoEA < MOEOT > +{ +public: + + /** + * Simple ctor with a eoGenOp. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + * @param _nicheSize niche size + */ + moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, double _nicheSize = 0.5) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Simple ctor with a eoTransform. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + * @param _nicheSize niche size + */ + moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, double _nicheSize = 0.5) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a crossover, a mutation and their corresponding rates. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _crossover crossover + * @param _pCross crossover probability + * @param _mutation mutation + * @param _pMut mutation probability + * @param _nicheSize niche size + */ + moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut, double _nicheSize = 0.5) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2), + diversityAssignment(_nicheSize), replace (fitnessAssignment, diversityAssignment), + defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut), genBreed (select, defaultSGAGenOp), breed (genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoGenOp. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + * @param _nicheSize niche size + */ + moeoNSGA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, double _nicheSize = 0.5) : + continuator(_continuator), popEval(_eval), select(2), + diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoTransform. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + * @param _nicheSize niche size + */ + moeoNSGA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, double _nicheSize = 0.5) : + continuator(_continuator), popEval(_eval), select(2), + diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Apply a few generation of evolution to the population _pop until the stopping criteria is verified. + * @param _pop the population + */ + virtual void operator () (eoPop < MOEOT > &_pop) + { + eoPop < MOEOT > offspring, empty_pop; + popEval (empty_pop, _pop); // a first eval of _pop + // evaluate fitness and diversity + fitnessAssignment(_pop); + diversityAssignment(_pop); + do + { + // generate offspring, worths are recalculated if necessary + breed (_pop, offspring); + // eval of offspring + popEval (_pop, offspring); + // after replace, the new pop is in _pop. Worths are recalculated if necessary + replace (_pop, offspring); + } while (continuator (_pop)); + } + + +protected: + + /** a continuator based on the number of generations (used as default) */ + eoGenContinue < MOEOT > defaultGenContinuator; + /** stopping criteria */ + eoContinue < MOEOT > & continuator; + /** evaluation function used to evaluate the whole population */ + eoPopLoopEval < MOEOT > popEval; + /** binary tournament selection */ + moeoDetTournamentSelect < MOEOT > select; + /** fitness assignment used in NSGA-II */ + moeoFastNonDominatedSortingFitnessAssignment < MOEOT > fitnessAssignment; + /** diversity assignment used in NSGA-II */ + moeoFrontByFrontSharingDiversityAssignment < MOEOT > diversityAssignment; + /** elitist replacement */ + moeoElitistReplacement < MOEOT > replace; + /** an object for genetic operators (used as default) */ + eoSGAGenOp < MOEOT > defaultSGAGenOp; + /** general breeder */ + eoGeneralBreeder < MOEOT > genBreed; + /** breeder */ + eoBreed < MOEOT > & breed; + +}; + +#endif /*MOEONSGAII_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoNSGAII.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoNSGAII.h new file mode 100644 index 000000000..60854860f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoNSGAII.h @@ -0,0 +1,153 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoNSGAII.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEONSGAII_H_ +#define MOEONSGAII_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: + * Deb, K., S. Agrawal, A. Pratap, and T. Meyarivan : "A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-II". + * In IEEE Transactions on Evolutionary Computation, Vol. 6, No 2, pp 182-197 (April 2002). + * This class builds the NSGA-II algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. + */ +template < class MOEOT > +class moeoNSGAII: public moeoEA < MOEOT > +{ +public: + + /** + * Simple ctor with a eoGenOp. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + */ + moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Simple ctor with a eoTransform. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + */ + moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a crossover, a mutation and their corresponding rates. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _crossover crossover + * @param _pCross crossover probability + * @param _mutation mutation + * @param _pMut mutation probability + */ + moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2), + replace (fitnessAssignment, diversityAssignment), defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut), + genBreed (select, defaultSGAGenOp), breed (genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoGenOp. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + */ + moeoNSGAII (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op) : + continuator(_continuator), popEval(_eval), select(2), + replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoTransform. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + */ + moeoNSGAII (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op) : + continuator(_continuator), popEval(_eval), select(2), + replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Apply a few generation of evolution to the population _pop until the stopping criteria is verified. + * @param _pop the population + */ + virtual void operator () (eoPop < MOEOT > &_pop) + { + eoPop < MOEOT > offspring, empty_pop; + popEval (empty_pop, _pop); // a first eval of _pop + // evaluate fitness and diversity + fitnessAssignment(_pop); + diversityAssignment(_pop); + do + { + // generate offspring, worths are recalculated if necessary + breed (_pop, offspring); + // eval of offspring + popEval (_pop, offspring); + // after replace, the new pop is in _pop. Worths are recalculated if necessary + replace (_pop, offspring); + } while (continuator (_pop)); + } + + +protected: + + /** a continuator based on the number of generations (used as default) */ + eoGenContinue < MOEOT > defaultGenContinuator; + /** stopping criteria */ + eoContinue < MOEOT > & continuator; + /** evaluation function used to evaluate the whole population */ + eoPopLoopEval < MOEOT > popEval; + /** binary tournament selection */ + moeoDetTournamentSelect < MOEOT > select; + /** fitness assignment used in NSGA-II */ + moeoFastNonDominatedSortingFitnessAssignment < MOEOT > fitnessAssignment; + /** diversity assignment used in NSGA-II */ + moeoFrontByFrontCrowdingDiversityAssignment < MOEOT > diversityAssignment; + /** elitist replacement */ + moeoElitistReplacement < MOEOT > replace; + /** an object for genetic operators (used as default) */ + eoSGAGenOp < MOEOT > defaultSGAGenOp; + /** general breeder */ + eoGeneralBreeder < MOEOT > genBreed; + /** breeder */ + eoBreed < MOEOT > & breed; + +}; + +#endif /*MOEONSGAII_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/archive/moeoArchive.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/archive/moeoArchive.h new file mode 100644 index 000000000..9338799d8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/archive/moeoArchive.h @@ -0,0 +1,180 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoArchive.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOARCHIVE_H_ +#define MOEOARCHIVE_H_ + +#include +#include +#include + +/** + * An archive is a secondary population that stores non-dominated solutions. + */ +template < class MOEOT > +class moeoArchive : public eoPop < MOEOT > +{ +public: + + using eoPop < MOEOT > :: size; + using eoPop < MOEOT > :: operator[]; + using eoPop < MOEOT > :: back; + using eoPop < MOEOT > :: pop_back; + + + /** + * The type of an objective vector for a solution + */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Default ctor. + * The moeoObjectiveVectorComparator used to compare solutions is based on Pareto dominance + */ + moeoArchive() : eoPop < MOEOT >(), comparator(paretoComparator) + {} + + + /** + * Ctor + * @param _comparator the moeoObjectiveVectorComparator used to compare solutions + */ + moeoArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator) : eoPop < MOEOT >(), comparator(_comparator) + {} + + + /** + * Returns true if the current archive dominates _objectiveVector according to the moeoObjectiveVectorComparator given in the constructor + * @param _objectiveVector the objective vector to compare with the current archive + */ + bool dominates (const ObjectiveVector & _objectiveVector) const + { + for (unsigned int i = 0; i & _pop) + { + for (unsigned int i=0; i<_pop.size(); i++) + { + update(_pop[i]); + } + } + + + /** + * Returns true if the current archive contains the same objective vectors than the given archive _arch + * @param _arch the given archive + */ + bool equals (const moeoArchive < MOEOT > & _arch) + { + for (unsigned int i=0; i & comparator; + /** A moeoObjectiveVectorComparator based on Pareto dominance (used as default) */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + +}; + +#endif /*MOEOARCHIVE_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoAggregativeComparator.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoAggregativeComparator.h new file mode 100644 index 000000000..a217bd52d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoAggregativeComparator.h @@ -0,0 +1,55 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoAggregativeComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOAGGREGATIVECOMPARATOR_H_ +#define MOEOAGGREGATIVECOMPARATOR_H_ + +#include + +/** + * Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. + */ +template < class MOEOT > +class moeoAggregativeComparator : public moeoComparator < MOEOT > +{ +public: + + /** + * Ctor. + * @param _weightFitness the weight for fitness + * @param _weightDiversity the weight for diversity + */ + moeoAggregativeComparator(double _weightFitness = 1.0, double _weightDiversity = 1.0) : weightFitness(_weightFitness), weightDiversity(_weightDiversity) + {} + + + /** + * Returns true if _moeo1 < _moeo2 according to the aggregation of their fitness and diversity values + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + return ( weightFitness * _moeo1.fitness() + weightDiversity * _moeo1.diversity() ) < ( weightFitness * _moeo2.fitness() + weightDiversity * _moeo2.diversity() ); + } + + +private: + + /** the weight for fitness */ + double weightFitness; + /** the weight for diversity */ + double weightDiversity; + +}; + +#endif /*MOEOAGGREGATIVECOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoComparator.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoComparator.h new file mode 100644 index 000000000..9243a57bc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoComparator.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOCOMPARATOR_H_ +#define MOEOCOMPARATOR_H_ + +#include + +/** + * Functor allowing to compare two solutions. + */ +template < class MOEOT > +class moeoComparator : public eoBF < const MOEOT &, const MOEOT &, const bool > {}; + +#endif /*MOEOCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoDiversityThenFitnessComparator.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoDiversityThenFitnessComparator.h new file mode 100644 index 000000000..54df59b82 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoDiversityThenFitnessComparator.h @@ -0,0 +1,45 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDiversityThenFitnessComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODIVERSITYTHENFITNESSCOMPARATOR_H_ +#define MOEODIVERSITYTHENFITNESSCOMPARATOR_H_ + +#include + +/** + * Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. + */ +template < class MOEOT > +class moeoDiversityThenFitnessComparator : public moeoComparator < MOEOT > +{ +public: + + /** + * Returns true if _moeo1 < _moeo2 according to their diversity values, then according to their fitness values + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + if (_moeo1.diversity() == _moeo2.diversity()) + { + return _moeo1.fitness() < _moeo2.fitness(); + } + else + { + return _moeo1.diversity() < _moeo2.diversity(); + } + } + +}; + +#endif /*MOEODIVERSITYTHENFITNESSCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoFitnessThenDiversityComparator.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoFitnessThenDiversityComparator.h new file mode 100644 index 000000000..5baf10097 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoFitnessThenDiversityComparator.h @@ -0,0 +1,45 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoFitnessThenDiversityComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_ +#define MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_ + +#include + +/** + * Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. + */ +template < class MOEOT > +class moeoFitnessThenDiversityComparator : public moeoComparator < MOEOT > +{ +public: + + /** + * Returns true if _moeo1 < _moeo2 according to their fitness values, then according to their diversity values + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + if (_moeo1.fitness() == _moeo2.fitness()) + { + return _moeo1.diversity() < _moeo2.diversity(); + } + else + { + return _moeo1.fitness() < _moeo2.fitness(); + } + } + +}; + +#endif /*MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoGDominanceObjectiveVectorComparator.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoGDominanceObjectiveVectorComparator.h new file mode 100644 index 000000000..006d1c4f2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoGDominanceObjectiveVectorComparator.h @@ -0,0 +1,102 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoGDominanceObjectiveVectorComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOGDOMINANCEOBJECTIVEVECTORCOMPARATOR_H_ +#define MOEOGDOMINANCEOBJECTIVEVECTORCOMPARATOR_H_ + +#include + +/** + * This functor class allows to compare 2 objective vectors according to g-dominance. + * The concept of g-dominance as been introduced in: + * J. Molina, L. V. Santana, A. G. Hernandez-Diaz, C. A. Coello Coello, R. Caballero, + * "g-dominance: Reference point based dominance" (2007) + */ +template < class ObjectiveVector > +class moeoGDominanceObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector > +{ +public: + + /** + * Ctor. + * @param _ref the reference point + */ + moeoGDominanceObjectiveVectorComparator(ObjectiveVector & _ref) : ref(_ref) + {} + + + /** + * Returns true if _objectiveVector1 is g-dominated by _objectiveVector2. + * @param _objectiveVector1 the first objective vector + * @param _objectiveVector2 the second objective vector + */ + const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2) + { + unsigned int flag1 = flag(_objectiveVector1); + unsigned int flag2 = flag(_objectiveVector2); + if (flag2==0) + { + // cannot dominate + return false; + } + else if ( (flag2==1) && (flag1==0) ) + { + // is dominated + return true; + } + else // (flag1==1) && (flag2==1) + { + // both are on the good region, so let's use the classical Pareto dominance + return paretoComparator(_objectiveVector1, _objectiveVector2); + } + } + + +private: + + /** the reference point */ + ObjectiveVector & ref; + /** Pareto comparator */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + + + /** + * Returns the flag of _objectiveVector according to the reference point + * @param _objectiveVector the first objective vector + */ + unsigned int flag(const ObjectiveVector & _objectiveVector) + { + unsigned int result=1; + for (unsigned int i=0; i ref[i]) + { + result=0; + } + } + if (result==0) + { + result=1; + for (unsigned int i=0; i + +/** + * Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. + */ +template < class ObjectiveVector > +class moeoObjectiveObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector > +{ +public: + + /** + * Returns true if _objectiveVector1 < _objectiveVector2 on the first objective, then on the second, and so on + * @param _objectiveVector1 the first objective vector + * @param _objectiveVector2 the second objective vector + */ + const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2) + { + for (unsigned int i=0; i ObjectiveVector::Traits::tolerance() ) + { + if (_objectiveVector1[i] < _objectiveVector2[i]) + { + return true; + } + else + { + return false; + } + } + } + return false; + } + +}; + +#endif /*MOEOOBJECTIVEOBJECTIVEVECTORCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoObjectiveVectorComparator.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoObjectiveVectorComparator.h new file mode 100644 index 000000000..75608ad12 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoObjectiveVectorComparator.h @@ -0,0 +1,26 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoObjectiveVectorComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOOBJECTIVEVECTORCOMPARATOR_H_ +#define MOEOOBJECTIVEVECTORCOMPARATOR_H_ + +#include +#include + +/** + * Abstract class allowing to compare 2 objective vectors. + * The template argument ObjectiveVector have to be a moeoObjectiveVector. + */ +template < class ObjectiveVector > +class moeoObjectiveVectorComparator : public eoBF < const ObjectiveVector &, const ObjectiveVector &, const bool > {}; + +#endif /*MOEOOBJECTIVEVECTORCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoOneObjectiveComparator.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoOneObjectiveComparator.h new file mode 100644 index 000000000..74be47bb3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoOneObjectiveComparator.h @@ -0,0 +1,57 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoOneObjectiveComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOONEOBJECTIVECOMPARATOR_H_ +#define MOEOONEOBJECTIVECOMPARATOR_H_ + +#include + +/** + * Functor allowing to compare two solutions according to one objective. + */ +template < class MOEOT > +class moeoOneObjectiveComparator : public moeoComparator < MOEOT > +{ +public: + + /** + * Ctor. + * @param _obj the index of objective + */ + moeoOneObjectiveComparator(unsigned int _obj) : obj(_obj) + { + if (obj > MOEOT::ObjectiveVector::nObjectives()) + { + throw std::runtime_error("Problem with the index of objective in moeoOneObjectiveComparator"); + } + } + + + /** + * Returns true if _moeo1 < _moeo2 on the obj objective + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + return _moeo1.objectiveVector()[obj] < _moeo2.objectiveVector()[obj]; + } + + +private: + + /** the index of objective */ + unsigned int obj; + +}; + +#endif /*MOEOONEOBJECTIVECOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoParetoObjectiveVectorComparator.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoParetoObjectiveVectorComparator.h new file mode 100644 index 000000000..c9f8e8260 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/comparator/moeoParetoObjectiveVectorComparator.h @@ -0,0 +1,70 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoParetoObjectiveVectorComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_ +#define MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_ + +#include + +/** + * This functor class allows to compare 2 objective vectors according to Pareto dominance. + */ +template < class ObjectiveVector > +class moeoParetoObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector > +{ +public: + + /** + * Returns true if _objectiveVector1 is dominated by _objectiveVector2 + * @param _objectiveVector1 the first objective vector + * @param _objectiveVector2 the second objective vector + */ + const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2) + { + bool dom = false; + for (unsigned int i=0; i ObjectiveVector::Traits::tolerance() ) + { + // if the ith objective have to be minimized... + if (ObjectiveVector::minimizing(i)) + { + if (_objectiveVector1[i] > _objectiveVector2[i]) + { + dom = true; //_objectiveVector1[i] is not better than _objectiveVector2[i] + } + else + { + return false; //_objectiveVector2 cannot dominate _objectiveVector1 + } + } + // if the ith objective have to be maximized... + else if (ObjectiveVector::maximizing(i)) + { + if (_objectiveVector1[i] > _objectiveVector2[i]) + { + dom = true; //_objectiveVector1[i] is not better than _objectiveVector2[i] + } + else + { + return false; //_objectiveVector2 cannot dominate _objectiveVector1 + } + } + } + } + return dom; + } + +}; + +#endif /*MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/MOEO.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/MOEO.h new file mode 100644 index 000000000..ed288facc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/MOEO.h @@ -0,0 +1,291 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// MOEO.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEO_H_ +#define MOEO_H_ + +#include +#include +#include +#include + +/** + * Base class allowing to represent a solution (an individual) for multi-objective optimization. + * The template argument MOEOObjectiveVector allows to represent the solution in the objective space (it can be a moeoObjectiveVector object). + * The template argument MOEOFitness is an object reflecting the quality of the solution in term of convergence (the fitness of a solution is always to be maximized). + * The template argument MOEODiversity is an object reflecting the quality of the solution in term of diversity (the diversity of a solution is always to be maximized). + * All template arguments must have a void and a copy constructor. + * Using some specific representations, you will have to define a copy constructor if the default one is not what you want. + * In the same cases, you will also have to define the affectation operator (operator=). + * Then, you will explicitly have to call the parent copy constructor and the parent affectation operator at the beginning of the corresponding implementation. + * Besides, note that, contrary to the mono-objective case (and to EO) where the fitness value of a solution is confused with its objective value, + * the fitness value differs of the objectives values in the multi-objective case. + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity > +class MOEO : public EO < MOEOObjectiveVector > +{ +public: + + /** the objective vector type of a solution */ + typedef MOEOObjectiveVector ObjectiveVector; + + /** the fitness type of a solution */ + typedef MOEOFitness Fitness; + + /** the diversity type of a solution */ + typedef MOEODiversity Diversity; + + + /** + * Ctor + */ + MOEO() + { + // default values for every parameters + objectiveVectorValue = ObjectiveVector(); + fitnessValue = Fitness(); + diversityValue = Diversity(); + // invalidate all + invalidate(); + } + + + /** + * Virtual dtor + */ + virtual ~MOEO() {}; + + + /** + * Returns the objective vector of the current solution + */ + ObjectiveVector objectiveVector() const + { + if ( invalidObjectiveVector() ) + { + throw std::runtime_error("invalid objective vector in MOEO"); + } + return objectiveVectorValue; + } + + + /** + * Sets the objective vector of the current solution + * @param _objectiveVectorValue the new objective vector + */ + void objectiveVector(const ObjectiveVector & _objectiveVectorValue) + { + objectiveVectorValue = _objectiveVectorValue; + invalidObjectiveVectorValue = false; + } + + + /** + * Sets the objective vector as invalid + */ + void invalidateObjectiveVector() + { + invalidObjectiveVectorValue = true; + } + + + /** + * Returns true if the objective vector is invalid, false otherwise + */ + bool invalidObjectiveVector() const + { + return invalidObjectiveVectorValue; + } + + + /** + * Returns the fitness value of the current solution + */ + Fitness fitness() const + { + if ( invalidFitness() ) + { + throw std::runtime_error("invalid fitness in MOEO"); + } + return fitnessValue; + } + + + /** + * Sets the fitness value of the current solution + * @param _fitnessValue the new fitness value + */ + void fitness(const Fitness & _fitnessValue) + { + fitnessValue = _fitnessValue; + invalidFitnessValue = false; + } + + + /** + * Sets the fitness value as invalid + */ + void invalidateFitness() + { + invalidFitnessValue = true; + } + + + /** + * Returns true if the fitness value is invalid, false otherwise + */ + bool invalidFitness() const + { + return invalidFitnessValue; + } + + + /** + * Returns the diversity value of the current solution + */ + Diversity diversity() const + { + if ( invalidDiversity() ) + { + throw std::runtime_error("invalid diversity in MOEO"); + } + return diversityValue; + } + + + /** + * Sets the diversity value of the current solution + * @param _diversityValue the new diversity value + */ + void diversity(const Diversity & _diversityValue) + { + diversityValue = _diversityValue; + invalidDiversityValue = false; + } + + + /** + * Sets the diversity value as invalid + */ + void invalidateDiversity() + { + invalidDiversityValue = true; + } + + + /** + * Returns true if the diversity value is invalid, false otherwise + */ + bool invalidDiversity() const + { + return invalidDiversityValue; + } + + + /** + * Sets the objective vector, the fitness value and the diversity value as invalid + */ + void invalidate() + { + invalidateObjectiveVector(); + invalidateFitness(); + invalidateDiversity(); + } + + + /** + * Returns true if the fitness value is invalid, false otherwise + */ + bool invalid() const + { + return invalidObjectiveVector(); + } + + + /** + * Returns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, + * then on the second, and so on (can be usefull for sorting/printing). + * You should implement another function in the sub-class of MOEO to have another sorting mecanism. + * @param _other the other MOEO object to compare with + */ + bool operator<(const MOEO & _other) const + { + return objectiveVector() < _other.objectiveVector(); + } + + + /** + * Return the class id (the class name as a std::string) + */ + virtual std::string className() const + { + return "MOEO"; + } + + + /** + * Writing object + * @param _os output stream + */ + virtual void printOn(std::ostream & _os) const + { + if ( invalidObjectiveVector() ) + { + _os << "INVALID\t"; + } + else + { + _os << objectiveVectorValue << '\t'; + } + } + + + /** + * Reading object + * @param _is input stream + */ + virtual void readFrom(std::istream & _is) + { + std::string objectiveVector_str; + int pos = _is.tellg(); + _is >> objectiveVector_str; + if (objectiveVector_str == "INVALID") + { + invalidateObjectiveVector(); + } + else + { + invalidObjectiveVectorValue = false; + _is.seekg(pos); // rewind + _is >> objectiveVectorValue; + } + } + + +private: + + /** the objective vector of this solution */ + ObjectiveVector objectiveVectorValue; + /** true if the objective vector is invalid */ + bool invalidObjectiveVectorValue; + /** the fitness value of this solution */ + Fitness fitnessValue; + /** true if the fitness value is invalid */ + bool invalidFitnessValue; + /** the diversity value of this solution */ + Diversity diversityValue; + /** true if the diversity value is invalid */ + bool invalidDiversityValue; + +}; + +#endif /*MOEO_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoBitVector.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoBitVector.h new file mode 100644 index 000000000..2e8642de8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoBitVector.h @@ -0,0 +1,83 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoBitVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOBITVECTOR_H_ +#define MOEOBITVECTOR_H_ + +#include + +/** + * This class is an implementationeo of a simple bit-valued moeoVector. + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity > +class moeoBitVector : public moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > +{ +public: + + using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: begin; + using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: end; + using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: resize; + using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: size; + + + /** + * Ctor + * @param _size Length of vector (default is 0) + * @param _value Initial value of all elements (default is default value of type GeneType) + */ + moeoBitVector(unsigned int _size = 0, bool _value = false) : moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >(_size, _value) + {} + + + /** + * Returns the class name as a std::string + */ + virtual std::string className() const + { + return "moeoBitVector"; + } + + + /** + * Writing object + * @param _os output stream + */ + virtual void printOn(std::ostream & _os) const + { + MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn(_os); + _os << ' '; + _os << size() << ' '; + std::copy(begin(), end(), std::ostream_iterator(_os)); + } + + + /** + * Reading object + * @param _is input stream + */ + virtual void readFrom(std::istream & _is) + { + MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom(_is); + unsigned int s; + _is >> s; + std::string bits; + _is >> bits; + if (_is) + { + resize(bits.size()); + std::transform(bits.begin(), bits.end(), begin(), std::bind2nd(std::equal_to(), '1')); + } + } + +}; + +#endif /*MOEOBITVECTOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoEvalFunc.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoEvalFunc.h new file mode 100644 index 000000000..1f6b7544d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoEvalFunc.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEvalFunc.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOEVALFUNC_H_ +#define MOEOEVALFUNC_H_ + +#include + +/* + * Functor that evaluates one MOEO by setting all its objective values. + */ +template < class MOEOT > +class moeoEvalFunc : public eoEvalFunc< MOEOT > {}; + +#endif /*MOEOEVALFUNC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVector.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVector.h new file mode 100644 index 000000000..867f6a3d3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVector.h @@ -0,0 +1,91 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoObjectiveVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOOBJECTIVEVECTOR_H_ +#define MOEOOBJECTIVEVECTOR_H_ + +#include + +/** + * Abstract class allowing to represent a solution in the objective space (phenotypic representation). + * The template argument ObjectiveVectorTraits defaults to moeoObjectiveVectorTraits, + * but it can be replaced at will by any other class that implements the static functions defined therein. + * Some static funtions to access to the traits characteristics are re-defined in order not to write a lot of typedef's. + */ +template < class ObjectiveVectorTraits, class ObjectiveVectorType > +class moeoObjectiveVector : public std::vector < ObjectiveVectorType > +{ +public: + + /** The traits of objective vectors */ + typedef ObjectiveVectorTraits Traits; + /** The type of an objective value */ + typedef ObjectiveVectorType Type; + + + /** + * Ctor + */ + moeoObjectiveVector(Type _value = Type()) : std::vector < Type > (ObjectiveVectorTraits::nObjectives(), _value) + {} + + + /** + * Ctor from a vector of Type + * @param _v the std::vector < Type > + */ + moeoObjectiveVector(std::vector < Type > & _v) : std::vector < Type > (_v) + {} + + + /** + * Parameters setting (for the objective vector of any solution) + * @param _nObjectives the number of objectives + * @param _bObjectives the min/max vector (true = min / false = max) + */ + static void setup(unsigned int _nObjectives, std::vector < bool > & _bObjectives) + { + ObjectiveVectorTraits::setup(_nObjectives, _bObjectives); + } + + + /** + * Returns the number of objectives + */ + static unsigned int nObjectives() + { + return ObjectiveVectorTraits::nObjectives(); + } + + + /** + * Returns true if the _ith objective have to be minimized + * @param _i the index + */ + static bool minimizing(unsigned int _i) + { + return ObjectiveVectorTraits::minimizing(_i); + } + + + /** + * Returns true if the _ith objective have to be maximized + * @param _i the index + */ + static bool maximizing(unsigned int _i) + { + return ObjectiveVectorTraits::maximizing(_i); + } + +}; + +#endif /*MOEOOBJECTIVEVECTOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.cpp b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.cpp new file mode 100644 index 000000000..84d507fca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.cpp @@ -0,0 +1,17 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoObjectiveVectorTraits.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + +// The static variables of the moeoObjectiveVectorTraits class need to be allocated +unsigned int moeoObjectiveVectorTraits::nObj; +std::vector < bool > moeoObjectiveVectorTraits::bObj; diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.h new file mode 100644 index 000000000..9c51c7463 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.h @@ -0,0 +1,103 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoObjectiveVectorTraits.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOOBJECTIVEVECTORTRAITS_H_ +#define MOEOOBJECTIVEVECTORTRAITS_H_ + +#include +#include +#include + +/** + * A traits class for moeoObjectiveVector to specify the number of objectives and which ones have to be minimized or maximized. + */ +class moeoObjectiveVectorTraits +{ +public: + + /** + * Parameters setting + * @param _nObjectives the number of objectives + * @param _bObjectives the min/max vector (true = min / false = max) + */ + static void setup(unsigned int _nObjectives, std::vector < bool > & _bObjectives) + { + // in case the number of objectives was already set to a different value + if ( nObj && (nObj != _nObjectives) ) { + std::cout << "WARNING\n"; + std::cout << "WARNING : the number of objectives are changing\n"; + std::cout << "WARNING : Make sure all existing objects are destroyed\n"; + std::cout << "WARNING\n"; + } + // number of objectives + nObj = _nObjectives; + // min/max vector + bObj = _bObjectives; + // in case the number of objectives and the min/max vector size don't match + if (nObj != bObj.size()) + throw std::runtime_error("Number of objectives and min/max size don't match in moeoObjectiveVectorTraits::setup"); + } + + + /** + * Returns the number of objectives + */ + static unsigned int nObjectives() + { + // in case the number of objectives would not be assigned yet + if (! nObj) + throw std::runtime_error("Number of objectives not assigned in moeoObjectiveVectorTraits"); + return nObj; + } + + + /** + * Returns true if the _ith objective have to be minimized + * @param _i the index + */ + static bool minimizing(unsigned int _i) + { + // in case there would be a wrong index + if (_i >= bObj.size()) + throw std::runtime_error("Wrong index in moeoObjectiveVectorTraits"); + return bObj[_i]; + } + + + /** + * Returns true if the _ith objective have to be maximized + * @param _i the index + */ + static bool maximizing(unsigned int _i) { + return (! minimizing(_i)); + } + + + /** + * Returns the tolerance value (to compare solutions) + */ + static double tolerance() + { + return 1e-6; + } + + +private: + + /** The number of objectives */ + static unsigned int nObj; + /** The min/max vector */ + static std::vector < bool > bObj; + +}; + +#endif /*MOEOOBJECTIVEVECTORTRAITS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoRealObjectiveVector.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoRealObjectiveVector.h new file mode 100644 index 000000000..bb8f36b61 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoRealObjectiveVector.h @@ -0,0 +1,166 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoRealObjectiveVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOREALOBJECTIVEVECTOR_H_ +#define MOEOREALOBJECTIVEVECTOR_H_ + +#include +#include +#include +#include +#include + +/** + * This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, + * i.e. that an objective value is represented using a double, and this for any objective. + */ +template < class ObjectiveVectorTraits > +class moeoRealObjectiveVector : public moeoObjectiveVector < ObjectiveVectorTraits, double > +{ +public: + + using moeoObjectiveVector < ObjectiveVectorTraits, double >::size; + using moeoObjectiveVector < ObjectiveVectorTraits, double >::operator[]; + + /** + * Ctor + */ + moeoRealObjectiveVector(double _value = 0.0) : moeoObjectiveVector < ObjectiveVectorTraits, double > (_value) + {} + + + /** + * Ctor from a vector of doubles + * @param _v the std::vector < double > + */ + moeoRealObjectiveVector(std::vector < double > & _v) : moeoObjectiveVector < ObjectiveVectorTraits, double > (_v) + {} + + + /** + * Returns true if the current objective vector dominates _other according to the Pareto dominance relation + * (but it's better to use a moeoObjectiveVectorComparator object to compare solutions) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool dominates(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + moeoParetoObjectiveVectorComparator < moeoRealObjectiveVector > comparator; + return comparator(_other, *this); + } + + + /** + * Returns true if the current objective vector is equal to _other (according to a tolerance value) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator==(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + for (unsigned int i=0; i < size(); i++) + { + if ( fabs(operator[](i) - _other[i]) > ObjectiveVectorTraits::tolerance() ) + { + return false; + } + } + return true; + } + + + /** + * Returns true if the current objective vector is different than _other (according to a tolerance value) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator!=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + return ! operator==(_other); + } + + + /** + * Returns true if the current objective vector is smaller than _other on the first objective, then on the second, and so on + * (can be usefull for sorting/printing) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator<(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + moeoObjectiveObjectiveVectorComparator < moeoRealObjectiveVector < ObjectiveVectorTraits > > cmp; + return cmp(*this, _other); + } + + + /** + * Returns true if the current objective vector is greater than _other on the first objective, then on the second, and so on + * (can be usefull for sorting/printing) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator>(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + return _other < *this; + } + + + /** + * Returns true if the current objective vector is smaller than or equal to _other on the first objective, then on the second, and so on + * (can be usefull for sorting/printing) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator<=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + return operator==(_other) || operator<(_other); + } + + + /** + * Returns true if the current objective vector is greater than or equal to _other on the first objective, then on the second, and so on + * (can be usefull for sorting/printing) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator>=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + return operator==(_other) || operator>(_other); + } + +}; + + +/** + * Output for a moeoRealObjectiveVector object + * @param _os output stream + * @param _objectiveVector the objective vector to write + */ +template < class ObjectiveVectorTraits > +std::ostream & operator<<(std::ostream & _os, const moeoRealObjectiveVector < ObjectiveVectorTraits > & _objectiveVector) +{ + for (unsigned int i=0; i<_objectiveVector.size(); i++) + { + _os << _objectiveVector[i] << '\t'; + } + return _os; +} + +/** + * Input for a moeoRealObjectiveVector object + * @param _is input stream + * @param _objectiveVector the objective vector to read + */ +template < class ObjectiveVectorTraits > +std::istream & operator>>(std::istream & _is, moeoRealObjectiveVector < ObjectiveVectorTraits > & _objectiveVector) +{ + _objectiveVector = moeoRealObjectiveVector < ObjectiveVectorTraits > (); + for (unsigned int i=0; i<_objectiveVector.size(); i++) + { + _is >> _objectiveVector[i]; + } + return _is; +} + +#endif /*MOEOREALOBJECTIVEVECTOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoRealVector.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoRealVector.h new file mode 100644 index 000000000..0fa60cd06 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoRealVector.h @@ -0,0 +1,45 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoRealVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOREALVECTOR_H_ +#define MOEOREALVECTOR_H_ + +#include + +/** + * This class is an implementation of a simple double-valued moeoVector. + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity > +class moeoRealVector : public moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > +{ +public: + + /** + * Ctor + * @param _size Length of vector (default is 0) + * @param _value Initial value of all elements (default is default value of type GeneType) + */ + moeoRealVector(unsigned int _size = 0, double _value = 0.0) : moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >(_size, _value) + {} + + + /** + * Returns the class name as a std::string + */ + virtual std::string className() const + { + return "moeoRealVector"; + } + +}; + +#endif /*MOEOREALVECTOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoVector.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoVector.h new file mode 100644 index 000000000..680306ff6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/core/moeoVector.h @@ -0,0 +1,143 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOVECTOR_H_ +#define MOEOVECTOR_H_ + +#include +#include +#include + +/** + * Base class for fixed length chromosomes, just derives from MOEO and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). + * GeneType must have the following methods: void ctor (needed for the std::vector<>), copy ctor. + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType > +class moeoVector : public MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >, public std::vector < GeneType > +{ +public: + + using MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity > :: invalidate; + using std::vector < GeneType > :: operator[]; + using std::vector < GeneType > :: begin; + using std::vector < GeneType > :: end; + using std::vector < GeneType > :: resize; + using std::vector < GeneType > :: size; + + /** the atomic type */ + typedef GeneType AtomType; + /** the container type */ + typedef std::vector < GeneType > ContainerType; + + + /** + * Default ctor. + * @param _size Length of vector (default is 0) + * @param _value Initial value of all elements (default is default value of type GeneType) + */ + moeoVector(unsigned int _size = 0, GeneType _value = GeneType()) : + MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >(), std::vector(_size, _value) + {} + + + /** + * We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. + * @param _v a vector of GeneType + */ + void value(const std::vector < GeneType > & _v) + { + if (_v.size() != size()) // safety check + { + if (size()) // NOT an initial empty std::vector + { + std::cout << "Warning: Changing size in moeoVector assignation"<::operator< + * @param _moeo the object to compare with + */ + bool operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo) const + { + return MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::operator<(_moeo); + } + + + /** + * Writing object + * @param _os output stream + */ + virtual void printOn(std::ostream & _os) const + { + MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn(_os); + _os << ' '; + _os << size() << ' '; + std::copy(begin(), end(), std::ostream_iterator(_os, " ")); + } + + + /** + * Reading object + * @param _is input stream + */ + virtual void readFrom(std::istream & _is) + { + MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom(_is); + unsigned int sz; + _is >> sz; + resize(sz); + unsigned int i; + for (i = 0; i < sz; ++i) + { + AtomType atom; + _is >> atom; + operator[](i) = atom; + } + } + +}; + + +/** + * To avoid conflicts between MOEO::operator< and std::vector::operator< + * @param _moeo1 the first object to compare + * @param _moeo2 the second object to compare + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType > +bool operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo1, const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo2) +{ + return _moeo1.operator<(_moeo2); +} + + +/** + * To avoid conflicts between MOEO::operator> and std::vector::operator> + * @param _moeo1 the first object to compare + * @param _moeo2 the second object to compare + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType > +bool operator>(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo1, const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo2) +{ + return _moeo1.operator>(_moeo2); +} + +#endif /*MOEOVECTOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoDistance.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoDistance.h new file mode 100644 index 000000000..61b8fb670 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoDistance.h @@ -0,0 +1,54 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDistance.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODISTANCE_H_ +#define MOEODISTANCE_H_ + +#include + +/** + * The base class for distance computation. + */ +template < class MOEOT , class Type > +class moeoDistance : public eoBF < const MOEOT &, const MOEOT &, const Type > +{ +public: + + /** + * Nothing to do + * @param _pop the population + */ + virtual void setup(const eoPop < MOEOT > & _pop) + {} + + + /** + * Nothing to do + * @param _min lower bound + * @param _max upper bound + * @param _obj the objective index + */ + virtual void setup(double _min, double _max, unsigned int _obj) + {} + + + /** + * Nothing to do + * @param _realInterval the eoRealInterval object + * @param _obj the objective index + */ + virtual void setup(eoRealInterval _realInterval, unsigned int _obj) + {} + +}; + +#endif /*MOEODISTANCE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoDistanceMatrix.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoDistanceMatrix.h new file mode 100644 index 000000000..b9a9e924e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoDistanceMatrix.h @@ -0,0 +1,76 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDistanceMatrix.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODISTANCEMATRIX_H_ +#define MOEODISTANCEMATRIX_H_ + +#include +#include +#include + +/** + * A matrix to compute distances between every pair of individuals contained in a population. + */ +template < class MOEOT , class Type > +class moeoDistanceMatrix : public eoUF < const eoPop < MOEOT > &, void > , public std::vector< std::vector < Type > > +{ +public: + + using std::vector< std::vector < Type > > :: size; + using std::vector< std::vector < Type > > :: operator[]; + + + /** + * Ctor + * @param _size size for every dimension of the matrix + * @param _distance the distance to use + */ + moeoDistanceMatrix (unsigned int _size, moeoDistance < MOEOT , Type > & _distance) : distance(_distance) + { + this->resize(_size); + for (unsigned int i=0; i<_size; i++) + { + this->operator[](i).resize(_size); + } + } + + + /** + * Sets the distance between every pair of individuals contained in the population _pop + * @param _pop the population + */ + void operator()(const eoPop < MOEOT > & _pop) + { + // 1 - setup the bounds (if necessary) + distance.setup(_pop); + // 2 - compute distances + this->operator[](0).operator[](0) = Type(); + for (unsigned int i=0; ioperator[](i).operator[](i) = Type(); + for (unsigned int j=0; joperator[](i).operator[](j) = distance(_pop[i], _pop[j]); + this->operator[](j).operator[](i) = this->operator[](i).operator[](j); + } + } + } + + +private: + + /** the distance to use */ + moeoDistance < MOEOT , Type > & distance; + +}; + +#endif /*MOEODISTANCEMATRIX_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoEuclideanDistance.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoEuclideanDistance.h new file mode 100644 index 000000000..2d8d8ec49 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoEuclideanDistance.h @@ -0,0 +1,58 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEuclideanDistance.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOEUCLIDEANDISTANCE_H_ +#define MOEOEUCLIDEANDISTANCE_H_ + +#include +#include + +/** + * A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. between 0 and 1). + * A distance value then lies between 0 and sqrt(nObjectives). + */ +template < class MOEOT > +class moeoEuclideanDistance : public moeoNormalizedDistance < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Returns the euclidian distance between _moeo1 and _moeo2 in the objective space + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const double operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + double result = 0.0; + double tmp1, tmp2; + for (unsigned int i=0; i :: bounds; + +}; + +#endif /*MOEOEUCLIDEANDISTANCE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoManhattanDistance.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoManhattanDistance.h new file mode 100644 index 000000000..f4c145fe7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoManhattanDistance.h @@ -0,0 +1,58 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoManhattanDistance.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOMANHATTANDISTANCE_H_ +#define MOEOMANHATTANDISTANCE_H_ + +#include +#include + +/** + * A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. between 0 and 1). + * A distance value then lies between 0 and nObjectives. + */ +template < class MOEOT > +class moeoManhattanDistance : public moeoNormalizedDistance < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Returns the Manhattan distance between _moeo1 and _moeo2 in the objective space + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const double operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + double result = 0.0; + double tmp1, tmp2; + for (unsigned int i=0; i :: bounds; + +}; + +#endif /*MOEOMANHATTANDISTANCE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoNormalizedDistance.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoNormalizedDistance.h new file mode 100644 index 000000000..ee1a2caa8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/distance/moeoNormalizedDistance.h @@ -0,0 +1,112 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoNormalizedDistance.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEONORMALIZEDDISTANCE_H_ +#define MOEONORMALIZEDDISTANCE_H_ + +#include +#include +#include + +/** + * The base class for double distance computation with normalized objective values (i.e. between 0 and 1). + */ +template < class MOEOT , class Type = double > +class moeoNormalizedDistance : public moeoDistance < MOEOT , Type > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Default ctr + */ + moeoNormalizedDistance() + { + bounds.resize(ObjectiveVector::Traits::nObjectives()); + // initialize bounds in case someone does not want to use them + for (unsigned int i=0; i & _pop) + { + double min, max; + for (unsigned int i=0; i bounds; + +}; + +#endif /*MOEONORMALIZEDDISTANCE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoCrowdingDiversityAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoCrowdingDiversityAssignment.h new file mode 100644 index 000000000..ff45ac0c2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoCrowdingDiversityAssignment.h @@ -0,0 +1,122 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoCrowdingDiversityAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOCROWDINGDIVERSITYASSIGNMENT_H_ +#define MOEOCROWDINGDIVERSITYASSIGNMENT_H_ + +#include +#include +#include + +/** + * Diversity assignment sheme based on crowding proposed in: + * K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). + */ +template < class MOEOT > +class moeoCrowdingDiversityAssignment : public moeoDiversityAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Returns a big value (regarded as infinite) + */ + double inf() const + { + return std::numeric_limits::max(); + } + + + /** + * Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound) + */ + double tiny() const + { + return 1e-6; + } + + + /** + * Computes diversity values for every solution contained in the population _pop + * @param _pop the population + */ + void operator()(eoPop < MOEOT > & _pop) + { + if (_pop.size() <= 2) + { + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].diversity(inf()); + } + } + else + { + setDistances(_pop); + } + } + + + /** + * @warning NOT IMPLEMENTED, DO NOTHING ! + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + * @warning NOT IMPLEMENTED, DO NOTHING ! + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::cout << "WARNING : updateByDeleting not implemented in moeoCrowdingDiversityAssignment" << std::endl; + } + + +protected: + + /** + * Sets the distance values + * @param _pop the population + */ + virtual void setDistances (eoPop < MOEOT > & _pop) + { + double min, max, distance; + unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives(); + // set diversity to 0 + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].diversity(0); + } + // for each objective + for (unsigned int obj=0; obj objComp(obj); + // sort + std::sort(_pop.begin(), _pop.end(), objComp); + // min & max + min = _pop[0].objectiveVector()[obj]; + max = _pop[_pop.size()-1].objectiveVector()[obj]; + // set the diversity value to infiny for min and max + _pop[0].diversity(inf()); + _pop[_pop.size()-1].diversity(inf()); + for (unsigned int i=1; i<_pop.size()-1; i++) + { + distance = (_pop[i+1].objectiveVector()[obj] - _pop[i-1].objectiveVector()[obj]) / (max-min); + _pop[i].diversity(_pop[i].diversity() + distance); + } + } + } + +}; + +#endif /*MOEOCROWDINGDIVERSITYASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoDiversityAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoDiversityAssignment.h new file mode 100644 index 000000000..05151be7a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoDiversityAssignment.h @@ -0,0 +1,51 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDiversityAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODIVERSITYASSIGNMENT_H_ +#define MOEODIVERSITYASSIGNMENT_H_ + +#include +#include + +/** + * Functor that sets the diversity values of a whole population. + */ +template < class MOEOT > +class moeoDiversityAssignment : public eoUF < eoPop < MOEOT > &, void > +{ +public: + + /** The type for objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + virtual void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) = 0; + + + /** + * Updates the diversity values of the whole population _pop by taking the deletion of the individual _moeo into account. + * @param _pop the population + * @param _moeo the individual + */ + void updateByDeleting(eoPop < MOEOT > & _pop, MOEOT & _moeo) + { + updateByDeleting(_pop, _moeo.objectiveVector()); + } + +}; + +#endif /*MOEODIVERSITYASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoDummyDiversityAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoDummyDiversityAssignment.h new file mode 100644 index 000000000..b7305801c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoDummyDiversityAssignment.h @@ -0,0 +1,59 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDummyDiversityAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODUMMYDIVERSITYASSIGNMENT_H_ +#define MOEODUMMYDIVERSITYASSIGNMENT_H_ + +#include + +/** + * moeoDummyDiversityAssignment is a moeoDiversityAssignment that gives the value '0' as the individual's diversity for a whole population if it is invalid. + */ +template < class MOEOT > +class moeoDummyDiversityAssignment : public moeoDiversityAssignment < MOEOT > +{ +public: + + /** The type for objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Sets the diversity to '0' for every individuals of the population _pop if it is invalid + * @param _pop the population + */ + void operator () (eoPop < MOEOT > & _pop) + { + for (unsigned int idx = 0; idx<_pop.size (); idx++) + { + if (_pop[idx].invalidDiversity()) + { + // set the diversity to 0 + _pop[idx].diversity(0.0); + } + } + } + + + /** + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + // nothing to do... ;-) + } + +}; + +#endif /*MOEODUMMYDIVERSITYASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoFrontByFrontCrowdingDiversityAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoFrontByFrontCrowdingDiversityAssignment.h new file mode 100644 index 000000000..9b2d37a2c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoFrontByFrontCrowdingDiversityAssignment.h @@ -0,0 +1,133 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoFrontByFrontCrowdingDiversityAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_ +#define MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_ + +#include +#include + +/** + * Diversity assignment sheme based on crowding proposed in: + * K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). + * Tis strategy assigns diversity values FRONT BY FRONT. It is, for instance, used in NSGA-II. + */ +template < class MOEOT > +class moeoFrontByFrontCrowdingDiversityAssignment : public moeoCrowdingDiversityAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * @warning NOT IMPLEMENTED, DO NOTHING ! + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + * @warning NOT IMPLEMENTED, DO NOTHING ! + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::cout << "WARNING : updateByDeleting not implemented in moeoFrontByFrontCrowdingDistanceDiversityAssignment" << std::endl; + } + + +private: + + using moeoCrowdingDiversityAssignment < MOEOT >::inf; + using moeoCrowdingDiversityAssignment < MOEOT >::tiny; + + /** + * Sets the distance values + * @param _pop the population + */ + void setDistances (eoPop < MOEOT > & _pop) + { + unsigned int a,b; + double min, max, distance; + unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives(); + // set diversity to 0 for every individual + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].diversity(0.0); + } + // sort the whole pop according to fitness values + moeoFitnessThenDiversityComparator < MOEOT > fitnessComparator; + std::sort(_pop.begin(), _pop.end(), fitnessComparator); + // compute the crowding distance values for every individual "front" by "front" (front : from a to b) + a = 0; // the front starts at a + while (a < _pop.size()) + { + b = lastIndex(_pop,a); // the front ends at b + // if there is less than 2 individuals in the front... + if ((b-a) < 2) + { + for (unsigned int i=a; i<=b; i++) + { + _pop[i].diversity(inf()); + } + } + // else... + else + { + // for each objective + for (unsigned int obj=0; obj objComp(obj); + std::sort(_pop.begin()+a, _pop.begin()+b+1, objComp); + // min & max + min = _pop[b].objectiveVector()[obj]; + max = _pop[a].objectiveVector()[obj]; + // avoid extreme case + if (min == max) + { + min -= tiny(); + max += tiny(); + } + // set the diversity value to infiny for min and max + _pop[a].diversity(inf()); + _pop[b].diversity(inf()); + // set the diversity values for the other individuals + for (unsigned int i=a+1; i & _pop, unsigned int _start) + { + unsigned int i=_start; + while ( (i<_pop.size()-1) && (_pop[i].fitness()==_pop[i+1].fitness()) ) + { + i++; + } + return i; + } + +}; + +#endif /*MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoFrontByFrontSharingDiversityAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoFrontByFrontSharingDiversityAssignment.h new file mode 100644 index 000000000..dea3b342d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/diversity/moeoFrontByFrontSharingDiversityAssignment.h @@ -0,0 +1,106 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoFrontByFrontSharingDiversityAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOFRONTBYFRONTSHARINGDIVERSITYASSIGNMENT_H_ +#define MOEOFRONTBYFRONTSHARINGDIVERSITYASSIGNMENT_H_ + +#include + +/** + * Sharing assignment scheme on the way it is used in NSGA. + */ +template < class MOEOT > +class moeoFrontByFrontSharingDiversityAssignment : public moeoSharingDiversityAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Ctor + * @param _distance the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) + * @param _nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed) + * @param _alpha parameter used to regulate the shape of the sharing function + */ + moeoFrontByFrontSharingDiversityAssignment(moeoDistance & _distance, double _nicheSize = 0.5, double _alpha = 2.0) : moeoSharingDiversityAssignment < MOEOT >(_distance, _nicheSize, _alpha) + {} + + + /** + * Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default + * @param _nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed) + * @param _alpha parameter used to regulate the shape of the sharing function + */ + moeoFrontByFrontSharingDiversityAssignment(double _nicheSize = 0.5, double _alpha = 2.0) : moeoSharingDiversityAssignment < MOEOT >(_nicheSize, _alpha) + {} + + + /** + * @warning NOT IMPLEMENTED, DO NOTHING ! + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + * @warning NOT IMPLEMENTED, DO NOTHING ! + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::cout << "WARNING : updateByDeleting not implemented in moeoSharingDiversityAssignment" << std::endl; + } + + +private: + + using moeoSharingDiversityAssignment < MOEOT >::distance; + using moeoSharingDiversityAssignment < MOEOT >::nicheSize; + using moeoSharingDiversityAssignment < MOEOT >::sh; + using moeoSharingDiversityAssignment < MOEOT >::operator(); + + + /** + * Sets similarities FRONT BY FRONT for every solution contained in the population _pop + * @param _pop the population + */ + void setSimilarities(eoPop < MOEOT > & _pop) + { + // compute distances between every individuals + moeoDistanceMatrix < MOEOT , double > dMatrix (_pop.size(), distance); + dMatrix(_pop); + // sets the distance to bigger than the niche size for every couple of solutions that do not belong to the same front + for (unsigned int i=0; i<_pop.size(); i++) + { + for (unsigned int j=0; j +#include +#include +#include +#include +#include + +/** + * Sharing assignment scheme originally porposed by: + * D. E. Goldberg, "Genetic Algorithms in Search, Optimization and Machine Learning", Addision-Wesley, MA, USA (1989). + */ +template < class MOEOT > +class moeoSharingDiversityAssignment : public moeoDiversityAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Ctor + * @param _distance the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) + * @param _nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed) + * @param _alpha parameter used to regulate the shape of the sharing function + */ + moeoSharingDiversityAssignment(moeoDistance & _distance, double _nicheSize = 0.5, double _alpha = 1.0) : distance(_distance), nicheSize(_nicheSize), alpha(_alpha) + {} + + + /** + * Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default + * @param _nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed) + * @param _alpha parameter used to regulate the shape of the sharing function + */ + moeoSharingDiversityAssignment(double _nicheSize = 0.5, double _alpha = 1.0) : distance(defaultDistance), nicheSize(_nicheSize), alpha(_alpha) + {} + + + /** + * Sets diversity values for every solution contained in the population _pop + * @param _pop the population + */ + void operator()(eoPop < MOEOT > & _pop) + { + // 1 - set simuilarities + setSimilarities(_pop); + // 2 - a higher diversity is better, so the values need to be inverted + moeoDiversityThenFitnessComparator < MOEOT > divComparator; + double max = std::max_element(_pop.begin(), _pop.end(), divComparator)->diversity(); + for (unsigned int i=0 ; i<_pop.size() ; i++) + { + _pop[i].diversity(max - _pop[i].diversity()); + } + } + + + /** + * @warning NOT IMPLEMENTED, DO NOTHING ! + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + * @warning NOT IMPLEMENTED, DO NOTHING ! + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::cout << "WARNING : updateByDeleting not implemented in moeoSharingDiversityAssignment" << std::endl; + } + + +protected: + + /** the distance used to compute the neighborhood of solutions */ + moeoDistance < MOEOT , double > & distance; + /** euclidean distancein the objective space (can be used as default) */ + moeoEuclideanDistance < MOEOT > defaultDistance; + /** neighborhood size in terms of radius distance */ + double nicheSize; + /** parameter used to regulate the shape of the sharing function */ + double alpha; + + + /** + * Sets similarities for every solution contained in the population _pop + * @param _pop the population + */ + virtual void setSimilarities(eoPop < MOEOT > & _pop) + { + // compute distances between every individuals + moeoDistanceMatrix < MOEOT , double > dMatrix (_pop.size(), distance); + dMatrix(_pop); + // compute similarities + double sum; + for (unsigned int i=0; i<_pop.size(); i++) + { + sum = 0.0; + for (unsigned int j=0; j<_pop.size(); j++) + { + sum += sh(dMatrix[i][j]); + } + _pop[i].diversity(sum); + } + } + + + /** + * Sharing function + * @param _dist the distance value + */ + double sh(double _dist) + { + double result; + if (_dist < nicheSize) + { + result = 1.0 - pow(_dist / nicheSize, alpha); + } + else + { + result = 0.0; + } + return result; + } + +}; + + +#endif /*MOEOSHARINGDIVERSITYASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_checkpoint_moeo.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_checkpoint_moeo.h new file mode 100755 index 000000000..14ea4a336 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_checkpoint_moeo.h @@ -0,0 +1,176 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_checkpoint_moeo.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MAKE_CHECKPOINT_MOEO_H_ +#define MAKE_CHECKPOINT_MOEO_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +bool testDirRes(std::string _dirName, bool _erase); + +/** + * This functions allows to build an eoCheckPoint for multi-objective optimization from the parser (partly taken from make_checkpoint_pareto.h) + * @param _parser the parser + * @param _state to store allocated objects + * @param _eval the funtions evaluator + * @param _continue the stopping crietria + * @param _pop the population + * @param _archive the archive of non-dominated solutions + */ +template < class MOEOT > +eoCheckPoint < MOEOT > & do_make_checkpoint_moeo (eoParser & _parser, eoState & _state, eoEvalFuncCounter < MOEOT > & _eval, eoContinue < MOEOT > & _continue, eoPop < MOEOT > & _pop, moeoArchive < MOEOT > & _archive) +{ + eoCheckPoint < MOEOT > & checkpoint = _state.storeFunctor(new eoCheckPoint < MOEOT > (_continue)); + /* the objective vector type */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + /////////////////// + // Counters + ////////////////// + // is nb Eval to be used as counter? + //bool useEval = _parser.getORcreateParam(true, "useEval", "Use nb of eval. as counter (vs nb of gen.)", '\0', "Output").value(); + // Create anyway a generation-counter parameter + eoValueParam *generationCounter = new eoValueParam(0, "Gen."); + // Create an incrementor (sub-class of eoUpdater). + eoIncrementor & increment = _state.storeFunctor( new eoIncrementor(generationCounter->value()) ); + // Add it to the checkpoint + checkpoint.add(increment); + // dir for DISK output + std::string & dirName = _parser.getORcreateParam(std::string("Res"), "resDir", "Directory to store DISK outputs", '\0', "Output").value(); + // shoudl we empty it if exists + eoValueParam& eraseParam = _parser.getORcreateParam(true, "eraseDir", "erase files in dirName if any", '\0', "Output"); + bool dirOK = false; // not tested yet + + // Dump of the whole population + //----------------------------- + bool printPop = _parser.getORcreateParam(false, "printPop", "Print sorted pop. every gen.", '\0', "Output").value(); + eoSortedPopStat * popStat; + if ( printPop ) // we do want pop dump + { + popStat = & _state.storeFunctor(new eoSortedPopStat); + checkpoint.add(*popStat); + } + + ////////////////////////////////// + // State savers + ////////////////////////////// + // feed the state to state savers + // save state every N generation + eoValueParam& saveFrequencyParam = _parser.createParam((unsigned int)(0), "saveFrequency", "Save every F generation (0 = only final state, absent = never)", '\0', "Persistence" ); + if (_parser.isItThere(saveFrequencyParam)) + { + // first make sure dirName is OK + if (! dirOK ) + dirOK = testDirRes(dirName, eraseParam.value()); // TRUE + unsigned int freq = (saveFrequencyParam.value()>0 ? saveFrequencyParam.value() : UINT_MAX ); +#ifdef _MSVC + std::string stmp = dirName + "\generations"; +#else + std::string stmp = dirName + "/generations"; +#endif + eoCountedStateSaver *stateSaver1 = new eoCountedStateSaver(freq, _state, stmp); + _state.storeFunctor(stateSaver1); + checkpoint.add(*stateSaver1); + } + // save state every T seconds + eoValueParam& saveTimeIntervalParam = _parser.getORcreateParam((unsigned int)(0), "saveTimeInterval", "Save every T seconds (0 or absent = never)", '\0',"Persistence" ); + if (_parser.isItThere(saveTimeIntervalParam) && saveTimeIntervalParam.value()>0) + { + // first make sure dirName is OK + if (! dirOK ) + dirOK = testDirRes(dirName, eraseParam.value()); // TRUE +#ifdef _MSVC + std::string stmp = dirName + "\time"; +#else + std::string stmp = dirName + "/time"; +#endif + eoTimedStateSaver *stateSaver2 = new eoTimedStateSaver(saveTimeIntervalParam.value(), _state, stmp); + _state.storeFunctor(stateSaver2); + checkpoint.add(*stateSaver2); + } + + /////////////////// + // Archive + ////////////////// + // update the archive every generation + bool updateArch = _parser.getORcreateParam(true, "updateArch", "Update the archive at each gen.", '\0', "Evolution Engine").value(); + if (updateArch) + { + moeoArchiveUpdater < MOEOT > * updater = new moeoArchiveUpdater < MOEOT > (_archive, _pop); + _state.storeFunctor(updater); + checkpoint.add(*updater); + } + // store the objective vectors contained in the archive every generation + bool storeArch = _parser.getORcreateParam(false, "storeArch", "Store the archive's objective vectors at each gen.", '\0', "Output").value(); + if (storeArch) + { + if (! dirOK ) + dirOK = testDirRes(dirName, eraseParam.value()); // TRUE +#ifdef _MSVC + std::string stmp = dirName + "\arch"; +#else + std::string stmp = dirName + "/arch"; +#endif + moeoArchiveObjectiveVectorSavingUpdater < MOEOT > * save_updater = new moeoArchiveObjectiveVectorSavingUpdater < MOEOT > (_archive, stmp); + _state.storeFunctor(save_updater); + checkpoint.add(*save_updater); + } + // store the contribution of the non-dominated solutions + bool cont = _parser.getORcreateParam(false, "contribution", "Store the contribution of the archive at each gen.", '\0', "Output").value(); + if (cont) + { + if (! dirOK ) + dirOK = testDirRes(dirName, eraseParam.value()); // TRUE +#ifdef _MSVC + std::string stmp = dirName + "\contribution"; +#else + std::string stmp = dirName + "/contribution"; +#endif + moeoContributionMetric < ObjectiveVector > * contribution = new moeoContributionMetric < ObjectiveVector >; + moeoBinaryMetricSavingUpdater < MOEOT > * contribution_updater = new moeoBinaryMetricSavingUpdater < MOEOT > (*contribution, _archive, stmp); + _state.storeFunctor(contribution_updater); + checkpoint.add(*contribution_updater); + } + // store the entropy of the non-dominated solutions + bool ent = _parser.getORcreateParam(false, "entropy", "Store the entropy of the archive at each gen.", '\0', "Output").value(); + if (ent) + { + if (! dirOK ) + dirOK = testDirRes(dirName, eraseParam.value()); // TRUE +#ifdef _MSVC + std::string stmp = dirName + "\entropy"; +#else + std::string stmp = dirName + "/entropy"; +#endif + moeoEntropyMetric < ObjectiveVector > * entropy = new moeoEntropyMetric < ObjectiveVector >; + moeoBinaryMetricSavingUpdater < MOEOT > * entropy_updater = new moeoBinaryMetricSavingUpdater < MOEOT > (*entropy, _archive, stmp); + _state.storeFunctor(entropy_updater); + checkpoint.add(*entropy_updater); + } + + // and that's it for the (control and) output + return checkpoint; +} + +#endif /*MAKE_CHECKPOINT_MOEO_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_continue_moeo.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_continue_moeo.h new file mode 100755 index 000000000..66ebf0501 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_continue_moeo.h @@ -0,0 +1,106 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_continue_moeo.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MAKE_CONTINUE_MOEO_H_ +#define MAKE_CONTINUE_MOEO_H_ + +#include +#include +#include +#include +#include +#ifndef _MSC_VER +#include +#endif +#include +#include + + +/** + * Helper function + * @param _combined the eoCombinedContinue object + * @param _cont the eoContinue to add + */ +template +eoCombinedContinue * make_combinedContinue(eoCombinedContinue *_combined, eoContinue *_cont) +{ + if (_combined) // already exists + _combined->add(*_cont); + else + _combined = new eoCombinedContinue(*_cont); + return _combined; +} + + +/** + * This functions allows to build a eoContinue for multi-objective optimization from the parser (partly taken from make_continue_pareto.h) + * @param _parser the parser + * @param _state to store allocated objects + * @param _eval the funtions evaluator + */ +template +eoContinue & do_make_continue_moeo(eoParser& _parser, eoState& _state, eoEvalFuncCounter & _eval) +{ + // the combined continue - to be filled + eoCombinedContinue *continuator = NULL; + // First the eoGenContinue - need a default value so you can run blind + // but we also need to be able to avoid it <--> 0 + eoValueParam& maxGenParam = _parser.createParam((unsigned int)(100), "maxGen", "Maximum number of generations (0 = none)",'G',"Stopping criterion"); + if (maxGenParam.value()) // positive: -> define and store + { + eoGenContinue *genCont = new eoGenContinue(maxGenParam.value()); + _state.storeFunctor(genCont); + // and "add" to combined + continuator = make_combinedContinue(continuator, genCont); + } + // maxEval + eoValueParam& maxEvalParam = _parser.getORcreateParam((unsigned long)(0), "maxEval", "Maximum number of evaluations (0 = none)", 'E', "Stopping criterion"); + if (maxEvalParam.value()) + { + eoEvalContinue *evalCont = new eoEvalContinue(_eval, maxEvalParam.value()); + _state.storeFunctor(evalCont); + // and "add" to combined + continuator = make_combinedContinue(continuator, evalCont); + } + // maxTime + eoValueParam& maxTimeParam = _parser.getORcreateParam((unsigned long)(0), "maxTime", "Maximum running time in seconds (0 = none)", 'T', "Stopping criterion"); + if (maxTimeParam.value()) // positive: -> define and store + { + eoTimeContinue *timeCont = new eoTimeContinue(maxTimeParam.value()); + _state.storeFunctor(timeCont); + // and "add" to combined + continuator = make_combinedContinue(continuator, timeCont); + } + // CtrlC +#ifndef _MSC_VER + // the CtrlC interception (Linux only I'm afraid) + eoCtrlCContinue *ctrlCCont; + eoValueParam& ctrlCParam = _parser.createParam(true, "CtrlC", "Terminate current generation upon Ctrl C",'C', "Stopping criterion"); + if (_parser.isItThere(ctrlCParam)) + { + ctrlCCont = new eoCtrlCContinue; + // store + _state.storeFunctor(ctrlCCont); + // add to combinedContinue + continuator = make_combinedContinue(continuator, ctrlCCont); + } +#endif + // now check that there is at least one! + if (!continuator) + throw std::runtime_error("You MUST provide a stopping criterion"); + // OK, it's there: store in the eoState + _state.storeFunctor(continuator); + // and return + return *continuator; +} + +#endif /*MAKE_CONTINUE_MOEO_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_ea_moeo.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_ea_moeo.h new file mode 100755 index 000000000..e7e48ce7c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_ea_moeo.h @@ -0,0 +1,272 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_ea_moeo.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MAKE_EA_MOEO_H_ +#define MAKE_EA_MOEO_H_ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/** + * This functions allows to build a moeoEA from the parser + * @param _parser the parser + * @param _state to store allocated objects + * @param _eval the funtions evaluator + * @param _continue the stopping crietria + * @param _op the variation operators + * @param _archive the archive of non-dominated solutions + */ +template < class MOEOT > +moeoEA < MOEOT > & do_make_ea_moeo(eoParser & _parser, eoState & _state, eoEvalFunc < MOEOT > & _eval, eoContinue < MOEOT > & _continue, eoGenOp < MOEOT > & _op, moeoArchive < MOEOT > & _archive) +{ + + /* the objective vector type */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /* the fitness assignment strategy */ + std::string & fitnessParam = _parser.createParam(std::string("FastNonDominatedSorting"), "fitness", + "Fitness assignment scheme: Dummy, FastNonDominatedSorting or IndicatorBased", 'F', + "Evolution Engine").value(); + std::string & indicatorParam = _parser.createParam(std::string("Epsilon"), "indicator", + "Binary indicator for IndicatorBased: Epsilon, Hypervolume", 'i', + "Evolution Engine").value(); + double rho = _parser.createParam(1.1, "rho", "reference point for the hypervolume indicator", 'r', + "Evolution Engine").value(); + double kappa = _parser.createParam(0.05, "kappa", "Scaling factor kappa for IndicatorBased", 'k', + "Evolution Engine").value(); + moeoFitnessAssignment < MOEOT > * fitnessAssignment; + if (fitnessParam == std::string("Dummy")) + { + fitnessAssignment = new moeoDummyFitnessAssignment < MOEOT> (); + } + else if (fitnessParam == std::string("FastNonDominatedSorting")) + { + fitnessAssignment = new moeoFastNonDominatedSortingFitnessAssignment < MOEOT> (); + } + else if (fitnessParam == std::string("IndicatorBased")) + { + // metric + moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > *metric; + if (indicatorParam == std::string("Epsilon")) + { + metric = new moeoAdditiveEpsilonBinaryMetric < ObjectiveVector >; + } + else if (indicatorParam == std::string("Hypervolume")) + { + metric = new moeoHypervolumeBinaryMetric < ObjectiveVector > (rho); + } + else + { + std::string stmp = std::string("Invalid binary quality indicator: ") + indicatorParam; + throw std::runtime_error(stmp.c_str()); + } + fitnessAssignment = new moeoExpBinaryIndicatorBasedFitnessAssignment < MOEOT > (*metric, kappa); + } + else + { + std::string stmp = std::string("Invalid fitness assignment strategy: ") + fitnessParam; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(fitnessAssignment); + + + /* the diversity assignment strategy */ + eoValueParam & diversityParam = _parser.createParam(eoParamParamType("Dummy"), "diversity", + "Diversity assignment scheme: Dummy, Sharing(nicheSize) or Crowding", 'D', "Evolution Engine"); + eoParamParamType & diversityParamValue = diversityParam.value(); + moeoDiversityAssignment < MOEOT > * diversityAssignment; + if (diversityParamValue.first == std::string("Dummy")) + { + diversityAssignment = new moeoDummyDiversityAssignment < MOEOT> (); + } + else if (diversityParamValue.first == std::string("Sharing")) + { + double nicheSize; + if (!diversityParamValue.second.size()) // no parameter added + { + std::cerr << "WARNING, no niche size given for Sharing, using 0.5" << std::endl; + nicheSize = 0.5; + diversityParamValue.second.push_back(std::string("0.5")); + } + else + { + nicheSize = atoi(diversityParamValue.second[0].c_str()); + } + diversityAssignment = new moeoFrontByFrontSharingDiversityAssignment < MOEOT> (nicheSize); + } + else if (diversityParamValue.first == std::string("Crowding")) + { + diversityAssignment = new moeoFrontByFrontCrowdingDiversityAssignment < MOEOT> (); + } + else + { + std::string stmp = std::string("Invalid diversity assignment strategy: ") + diversityParamValue.first; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(diversityAssignment); + + + /* the comparator strategy */ + std::string & comparatorParam = _parser.createParam(std::string("FitnessThenDiversity"), "comparator", + "Comparator scheme: FitnessThenDiversity, DiversityThenFitness or Aggregative", 'C', "Evolution Engine").value(); + moeoComparator < MOEOT > * comparator; + if (comparatorParam == std::string("FitnessThenDiversity")) + { + comparator = new moeoFitnessThenDiversityComparator < MOEOT> (); + } + else if (comparatorParam == std::string("DiversityThenFitness")) + { + comparator = new moeoDiversityThenFitnessComparator < MOEOT> (); + } + else if (comparatorParam == std::string("Aggregative")) + { + comparator = new moeoAggregativeComparator < MOEOT> (); + } + else + { + std::string stmp = std::string("Invalid comparator strategy: ") + comparatorParam; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(comparator); + + + /* the selection strategy */ + eoValueParam < eoParamParamType > & selectionParam = _parser.createParam(eoParamParamType("DetTour(2)"), "selection", + "Selection scheme: DetTour(T), StochTour(t) or Random", 'S', "Evolution Engine"); + eoParamParamType & ppSelect = selectionParam.value(); + moeoSelectOne < MOEOT > * select; + if (ppSelect.first == std::string("DetTour")) + { + unsigned int tSize; + if (!ppSelect.second.size()) // no parameter added + { + std::cerr << "WARNING, no parameter passed to DetTour, using 2" << std::endl; + tSize = 2; + // put back 2 in parameter for consistency (and status file) + ppSelect.second.push_back(std::string("2")); + } + else // parameter passed by user as DetTour(T) + { + tSize = atoi(ppSelect.second[0].c_str()); + } + select = new moeoDetTournamentSelect < MOEOT > (*comparator, tSize); + } + else if (ppSelect.first == std::string("StochTour")) + { + double tRate; + if (!ppSelect.second.size()) // no parameter added + { + std::cerr << "WARNING, no parameter passed to StochTour, using 1" << std::endl; + tRate = 1; + // put back 1 in parameter for consistency (and status file) + ppSelect.second.push_back(std::string("1")); + } + else // parameter passed by user as StochTour(T) + { + tRate = atof(ppSelect.second[0].c_str()); + } + select = new moeoStochTournamentSelect < MOEOT > (*comparator, tRate); + } + /* + else if (ppSelect.first == string("Roulette")) + { + // TO DO ! + // ... + } + */ + else if (ppSelect.first == std::string("Random")) + { + select = new moeoRandomSelect (); + } + else + { + std::string stmp = std::string("Invalid selection strategy: ") + ppSelect.first; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(select); + + + /* the replacement strategy */ + std::string & replacementParam = _parser.createParam(std::string("Elitist"), "replacement", + "Replacement scheme: Elitist, Environmental or Generational", 'R', "Evolution Engine").value(); + moeoReplacement < MOEOT > * replace; + if (replacementParam == std::string("Elitist")) + { + replace = new moeoElitistReplacement < MOEOT> (*fitnessAssignment, *diversityAssignment, *comparator); + } + else if (replacementParam == std::string("Environmental")) + { + replace = new moeoEnvironmentalReplacement < MOEOT> (*fitnessAssignment, *diversityAssignment, *comparator); + } + else if (replacementParam == std::string("Generational")) + { + replace = new moeoGenerationalReplacement < MOEOT> (); + } + else + { + std::string stmp = std::string("Invalid replacement strategy: ") + replacementParam; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(replace); + + + /* the number of offspring */ + eoValueParam < eoHowMany > & offspringRateParam = _parser.createParam(eoHowMany(1.0), "nbOffspring", + "Number of offspring (percentage or absolute)", 'O', "Evolution Engine"); + + + // the general breeder + eoGeneralBreeder < MOEOT > * breed = new eoGeneralBreeder < MOEOT > (*select, _op, offspringRateParam.value()); + _state.storeFunctor(breed); + // the eoEasyEA + moeoEA < MOEOT > * algo = new moeoEasyEA < MOEOT > (_continue, _eval, *breed, *replace, *fitnessAssignment, *diversityAssignment); + _state.storeFunctor(algo); + return *algo; + +} + +#endif /*MAKE_EA_MOEO_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_ls_moeo.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_ls_moeo.h new file mode 100755 index 000000000..6742adeaa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/do/make_ls_moeo.h @@ -0,0 +1,120 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_ls_moeo.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MAKE_LS_MOEO_H_ +#define MAKE_LS_MOEO_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * This functions allows to build a moeoLS from the parser + * @param _parser the parser + * @param _state to store allocated objects + * @param _eval the funtions evaluator + * @param _moveIncrEval the incremental evaluation + * @param _continue the stopping crietria + * @param _op the variation operators + * @param _opInit the initilization operator + * @param _moveInit the move initializer + * @param _nextMove the move incrementor + * @param _archive the archive of non-dominated solutions + */ +template < class MOEOT, class Move > +moeoLS < MOEOT, eoPop & > & do_make_ls_moeo ( + eoParser & _parser, + eoState & _state, + eoEvalFunc < MOEOT > & _eval, + moeoMoveIncrEval < Move > & _moveIncrEval, + eoContinue < MOEOT > & _continue, + eoMonOp < MOEOT > & _op, + eoMonOp < MOEOT > & _opInit, + moMoveInit < Move > & _moveInit, + moNextMove < Move > & _nextMove, + moeoArchive < MOEOT > & _archive +) +{ + /* the objective vector type */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + /* the fitness assignment strategy */ + std::string & fitnessParam = _parser.getORcreateParam(std::string("IndicatorBased"), "fitness", + "Fitness assignment strategy parameter: IndicatorBased...", 'F', + "Evolution Engine").value(); + std::string & indicatorParam = _parser.getORcreateParam(std::string("Epsilon"), "indicator", + "Binary indicator to use with the IndicatorBased assignment: Epsilon, Hypervolume", 'i', + "Evolution Engine").value(); + double rho = _parser.getORcreateParam(1.1, "rho", "reference point for the hypervolume indicator", + 'r', "Evolution Engine").value(); + double kappa = _parser.getORcreateParam(0.05, "kappa", "Scaling factor kappa for IndicatorBased", + 'k', "Evolution Engine").value(); + moeoIndicatorBasedFitnessAssignment < MOEOT > * fitnessAssignment; + if (fitnessParam == std::string("IndicatorBased")) + { + // metric + moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > *metric; + if (indicatorParam == std::string("Epsilon")) + { + metric = new moeoAdditiveEpsilonBinaryMetric < ObjectiveVector >; + } + else if (indicatorParam == std::string("Hypervolume")) + { + metric = new moeoHypervolumeBinaryMetric < ObjectiveVector > (rho); + } + else + { + std::string stmp = std::string("Invalid binary quality indicator: ") + indicatorParam; + throw std::runtime_error(stmp.c_str()); + } + fitnessAssignment = new moeoIndicatorBasedFitnessAssignment < MOEOT> (*metric, kappa); + } + else + { + std::string stmp = std::string("Invalid fitness assignment strategy: ") + fitnessParam; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(fitnessAssignment); + // number of iterations + unsigned int n = _parser.getORcreateParam(1, "n", "Number of iterations for population Initialization", 'n', "Evolution Engine").value(); + // LS + std::string & lsParam = _parser.getORcreateParam(std::string("I-IBMOLS"), "ls", + "Local Search: IBMOLS, I-IBMOLS (Iterated-IBMOLS)...", 'L', + "Evolution Engine").value(); + moeoLS < MOEOT, eoPop & > * ls; + if (lsParam == std::string("IBMOLS")) + { + ls = new moeoIBMOLS < MOEOT, Move > (_moveInit, _nextMove, _eval, _moveIncrEval, *fitnessAssignment, _continue);; + } + else if (lsParam == std::string("I-IBMOLS")) + { + ls = new moeoIteratedIBMOLS < MOEOT, Move > (_moveInit, _nextMove, _eval, _moveIncrEval, *fitnessAssignment, _continue, _op, _opInit, n); + } + else + { + std::string stmp = std::string("Invalid fitness assignment strategy: ") + fitnessParam; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(ls); + // that's it ! + return *ls; +} + +#endif /*MAKE_LS_MOEO_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoAchievementFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoAchievementFitnessAssignment.h new file mode 100644 index 000000000..7cd5c4bba --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoAchievementFitnessAssignment.h @@ -0,0 +1,145 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoAchievementFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOACHIEVEMENTFITNESSASSIGNMENT_H_ +#define MOEOACHIEVEMENTFITNESSASSIGNMENT_H_ + +#include +#include +#include + +/** + * Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). + */ +template < class MOEOT > +class moeoAchievementFitnessAssignment : public moeoScalarFitnessAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Default ctor + * @param _reference reference point vector + * @param _lambdas weighted coefficients vector + * @param _spn arbitrary small positive number (0 < _spn << 1) + */ + moeoAchievementFitnessAssignment(ObjectiveVector & _reference, std::vector < double > & _lambdas, double _spn=0.0001) : reference(_reference), lambdas(_lambdas), spn(_spn) + { + // consistency check + if ((spn < 0.0) || (spn > 1.0)) + { + std::cout << "Warning, the arbitrary small positive number should be > 0 and <<1, adjusted to 0.0001\n"; + spn = 0.0001; + } + } + + + /** + * Ctor with default values for lambdas (1/nObjectives) + * @param _reference reference point vector + * @param _spn arbitrary small positive number (0 < _spn << 1) + */ + moeoAchievementFitnessAssignment(ObjectiveVector & _reference, double _spn=0.0001) : reference(_reference), spn(_spn) + { + // compute the default values for lambdas + lambdas = std::vector < double > (ObjectiveVector::nObjectives()); + for (unsigned int i=0 ; i 1.0)) + { + std::cout << "Warning, the arbitrary small positive number should be > 0 and <<1, adjusted to 0.0001\n"; + spn = 0.0001; + } + } + + + /** + * Sets the fitness values for every solution contained in the population _pop + * @param _pop the population + */ + virtual void operator()(eoPop < MOEOT > & _pop) + { + for (unsigned int i=0; i<_pop.size() ; i++) + { + compute(_pop[i]); + } + } + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account (nothing to do). + * @param _pop the population + * @param _objVec the objective vector + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + // nothing to do ;-) + } + + + /** + * Sets the reference point + * @param _reference the new reference point + */ + void setReference(const ObjectiveVector & _reference) + { + reference = _reference; + } + + +private: + + /** the reference point */ + ObjectiveVector reference; + /** the weighted coefficients vector */ + std::vector < double > lambdas; + /** an arbitrary small positive number (0 < _spn << 1) */ + double spn; + + + /** + * Returns a big value (regarded as infinite) + */ + double inf() const + { + return std::numeric_limits::max(); + } + + + /** + * Computes the fitness value for a solution + * @param _moeo the solution + */ + void compute(MOEOT & _moeo) + { + unsigned int nobj = MOEOT::ObjectiveVector::nObjectives(); + double temp; + double min = inf(); + double sum = 0; + for (unsigned int obj=0; obj + +/** + * moeoIndicatorBasedFitnessAssignment for binary indicators. + */ +template < class MOEOT > +class moeoBinaryIndicatorBasedFitnessAssignment : public moeoIndicatorBasedFitnessAssignment < MOEOT > {}; + +#endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoCriterionBasedFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoCriterionBasedFitnessAssignment.h new file mode 100644 index 000000000..0b3131e54 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoCriterionBasedFitnessAssignment.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoCriterionBasedFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_ +#define MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoCriterionBasedFitnessAssignment is a moeoFitnessAssignment for criterion-based strategies. + */ +template < class MOEOT > +class moeoCriterionBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {}; + +#endif /*MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoDummyFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoDummyFitnessAssignment.h new file mode 100644 index 000000000..e82436b4b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoDummyFitnessAssignment.h @@ -0,0 +1,59 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDummyFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODUMMYFITNESSASSIGNMENT_H_ +#define MOEODUMMYFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoDummyFitnessAssignment is a moeoFitnessAssignment that gives the value '0' as the individual's fitness for a whole population if it is invalid. + */ +template < class MOEOT > +class moeoDummyFitnessAssignment : public moeoFitnessAssignment < MOEOT > +{ +public: + + /** The type for objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Sets the fitness to '0' for every individuals of the population _pop if it is invalid + * @param _pop the population + */ + void operator () (eoPop < MOEOT > & _pop) + { + for (unsigned int idx = 0; idx<_pop.size (); idx++) + { + if (_pop[idx].invalidFitness()) + { + // set the diversity to 0 + _pop[idx].fitness(0.0); + } + } + } + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + // nothing to do... ;-) + } + +}; + +#endif /*MOEODUMMYFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoExpBinaryIndicatorBasedFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoExpBinaryIndicatorBasedFitnessAssignment.h new file mode 100644 index 000000000..9c8f8bbd2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoExpBinaryIndicatorBasedFitnessAssignment.h @@ -0,0 +1,202 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoIndicatorBasedFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOEXPBINARYINDICATORBASEDFITNESSASSIGNMENT_H_ +#define MOEOEXPBINARYINDICATORBASEDFITNESSASSIGNMENT_H_ + +#include +#include +#include +#include +#include +#include + +/** + * Fitness assignment sheme based on an indicator proposed in: + * E. Zitzler, S. Künzli, "Indicator-Based Selection in Multiobjective Search", Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). + * This strategy is, for instance, used in IBEA. + */ +template < class MOEOT > +class moeoExpBinaryIndicatorBasedFitnessAssignment : public moeoBinaryIndicatorBasedFitnessAssignment < MOEOT > +{ +public: + + /** The type of objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Ctor. + * @param _metric the quality indicator + * @param _kappa the scaling factor + */ + moeoExpBinaryIndicatorBasedFitnessAssignment(moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa = 0.05) : metric(_metric), kappa(_kappa) + {} + + + /** + * Sets the fitness values for every solution contained in the population _pop + * @param _pop the population + */ + void operator()(eoPop < MOEOT > & _pop) + { + // 1 - setting of the bounds + setup(_pop); + // 2 - computing every indicator values + computeValues(_pop); + // 3 - setting fitnesses + setFitnesses(_pop); + } + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::vector < double > v; + v.resize(_pop.size()); + for (unsigned int i=0; i<_pop.size(); i++) + { + v[i] = metric(_objVec, _pop[i].objectiveVector()); + } + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].fitness( _pop[i].fitness() + exp(-v[i]/kappa) ); + } + } + + + /** + * Updates the fitness values of the whole population _pop by taking the adding of the objective vector _objVec into account + * and returns the fitness value of _objVec. + * @param _pop the population + * @param _objVec the objective vector + */ + double updateByAdding(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::vector < double > v; + // update every fitness values to take the new individual into account + v.resize(_pop.size()); + for (unsigned int i=0; i<_pop.size(); i++) + { + v[i] = metric(_objVec, _pop[i].objectiveVector()); + } + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].fitness( _pop[i].fitness() - exp(-v[i]/kappa) ); + } + // compute the fitness of the new individual + v.clear(); + v.resize(_pop.size()); + for (unsigned int i=0; i<_pop.size(); i++) + { + v[i] = metric(_pop[i].objectiveVector(), _objVec); + } + double result = 0; + for (unsigned int i=0; i & metric; + /** the scaling factor */ + double kappa; + /** the computed indicator values */ + std::vector < std::vector > values; + + + /** + * Sets the bounds for every objective using the min and the max value for every objective vector of _pop + * @param _pop the population + */ + void setup(const eoPop < MOEOT > & _pop) + { + double min, max; + for (unsigned int i=0; i & _pop) + { + values.clear(); + values.resize(_pop.size()); + for (unsigned int i=0; i<_pop.size(); i++) + { + values[i].resize(_pop.size()); + for (unsigned int j=0; j<_pop.size(); j++) + { + if (i != j) + { + values[i][j] = metric(_pop[i].objectiveVector(), _pop[j].objectiveVector()); + } + } + } + } + + + /** + * Sets the fitness value of the whple population + * @param _pop the population + */ + void setFitnesses(eoPop < MOEOT > & _pop) + { + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].fitness(computeFitness(i)); + } + } + + + /** + * Returns the fitness value of the _idx th individual of the population + * @param _idx the index + */ + double computeFitness(const unsigned int _idx) + { + double result = 0; + for (unsigned int i=0; i +#include +#include +#include +#include +#include + + +/** + * Fitness assignment sheme based on Pareto-dominance count proposed in: + * N. Srinivas, K. Deb, "Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms", Evolutionary Computation vol. 2, no. 3, pp. 221-248 (1994) + * and in: + * K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). + * This strategy is, for instance, used in NSGA and NSGA-II. + */ +template < class MOEOT > +class moeoFastNonDominatedSortingFitnessAssignment : public moeoParetoBasedFitnessAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Default ctor + */ + moeoFastNonDominatedSortingFitnessAssignment() : comparator(paretoComparator) + {} + + + /** + * Ctor where you can choose your own way to compare objective vectors + * @param _comparator the functor used to compare objective vectors + */ + moeoFastNonDominatedSortingFitnessAssignment(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator) : comparator(_comparator) + {} + + + /** + * Sets the fitness values for every solution contained in the population _pop + * @param _pop the population + */ + void operator()(eoPop < MOEOT > & _pop) + { + // number of objectives for the problem under consideration + unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives(); + if (nObjectives == 1) + { + // one objective + oneObjective(_pop); + } + else if (nObjectives == 2) + { + // two objectives (the two objectives function is still to implement) + mObjectives(_pop); + } + else if (nObjectives > 2) + { + // more than two objectives + mObjectives(_pop); + } + else + { + // problem with the number of objectives + throw std::runtime_error("Problem with the number of objectives in moeoNonDominatedSortingFitnessAssignment"); + } + // a higher fitness is better, so the values need to be inverted + double max = _pop[0].fitness(); + for (unsigned int i=1 ; i<_pop.size() ; i++) + { + max = std::max(max, _pop[i].fitness()); + } + for (unsigned int i=0 ; i<_pop.size() ; i++) + { + _pop[i].fitness(max - _pop[i].fitness()); + } + } + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + for (unsigned int i=0; i<_pop.size(); i++) + { + // if _pop[i] is dominated by _objVec + if ( comparator(_pop[i].objectiveVector(), _objVec) ) + { + _pop[i].fitness(_pop[i].fitness()+1); + } + } + } + + +private: + + /** Functor to compare two objective vectors */ + moeoObjectiveVectorComparator < ObjectiveVector > & comparator; + /** Functor to compare two objective vectors according to Pareto dominance relation */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + /** Functor allowing to compare two solutions according to their first objective value, then their second, and so on. */ + class ObjectiveComparator : public moeoComparator < MOEOT > + { + public: + /** + * Returns true if _moeo1 < _moeo2 on the first objective, then on the second, and so on + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + return cmp(_moeo1.objectiveVector(), _moeo2.objectiveVector()); + } + private: + /** the corresponding comparator for objective vectors */ + moeoObjectiveObjectiveVectorComparator < ObjectiveVector > cmp; + } objComparator; + + + /** + * Sets the fitness values for mono-objective problems + * @param _pop the population + */ + void oneObjective (eoPop < MOEOT > & _pop) + { + // sorts the population in the ascending order + std::sort(_pop.begin(), _pop.end(), objComparator); + // assign fitness values + unsigned int rank = 1; + _pop[_pop.size()-1].fitness(rank); + for (unsigned int i=_pop.size()-2; i>=0; i--) + { + if (_pop[i].objectiveVector() != _pop[i+1].objectiveVector()) + { + rank++; + } + _pop[i].fitness(rank); + } + } + + + /** + * Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size + * @param _pop the population + */ + void twoObjectives (eoPop < MOEOT > & _pop) + { + //... TO DO ! + } + + + /** + * Sets the fitness values for problems with more than two objectives with a complexity of O(n² log n), where n stands for the population size + * @param _pop the population + */ + void mObjectives (eoPop < MOEOT > & _pop) + { + // S[i] = indexes of the individuals dominated by _pop[i] + std::vector < std::vector > S(_pop.size()); + // n[i] = number of individuals that dominate the individual _pop[i] + std::vector < unsigned int > n(_pop.size(), 0); + // fronts: F[i] = indexes of the individuals contained in the ith front + std::vector < std::vector > F(_pop.size()+2); + // used to store the number of the first front + F[1].reserve(_pop.size()); + for (unsigned int p=0; p<_pop.size(); p++) + { + for (unsigned int q=0; q<_pop.size(); q++) + { + // if q is dominated by p + if ( comparator(_pop[q].objectiveVector(), _pop[p].objectiveVector()) ) + { + // add q to the set of solutions dominated by p + S[p].push_back(q); + } + // if p is dominated by q + else if ( comparator(_pop[p].objectiveVector(), _pop[q].objectiveVector()) ) + { + // increment the domination counter of p + n[p]++; + } + } + // if no individual dominates p + if (n[p] == 0) + { + // p belongs to the first front + _pop[p].fitness(1); + F[1].push_back(p); + } + } + // front counter + unsigned int counter=1; + unsigned int p,q; + while (! F[counter].empty()) + { + // used to store the number of the next front + F[counter+1].reserve(_pop.size()); + for (unsigned int i=0; i +#include + +/** + * Functor that sets the fitness values of a whole population. + */ +template < class MOEOT > +class moeoFitnessAssignment : public eoUF < eoPop < MOEOT > &, void > +{ +public: + + /** The type for objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + virtual void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) = 0; + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the individual _moeo into account. + * @param _pop the population + * @param _moeo the individual + */ + void updateByDeleting(eoPop < MOEOT > & _pop, MOEOT & _moeo) + { + updateByDeleting(_pop, _moeo.objectiveVector()); + } + +}; + +#endif /*MOEOFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoIndicatorBasedFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoIndicatorBasedFitnessAssignment.h new file mode 100644 index 000000000..0539c179a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoIndicatorBasedFitnessAssignment.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoIndicatorBasedFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOINDICATORBASEDFITNESSASSIGNMENT_H_ +#define MOEOINDICATORBASEDFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoIndicatorBasedFitnessAssignment is a moeoFitnessAssignment for Indicator-based strategies. + */ +template < class MOEOT > +class moeoIndicatorBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {}; + +#endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoParetoBasedFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoParetoBasedFitnessAssignment.h new file mode 100644 index 000000000..9ffc64d3e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoParetoBasedFitnessAssignment.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoParetoBasedFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOPARETOBASEDFITNESSASSIGNMENT_H_ +#define MOEOPARETOBASEDFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoParetoBasedFitnessAssignment is a moeoFitnessAssignment for Pareto-based strategies. + */ +template < class MOEOT > +class moeoParetoBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {}; + +#endif /*MOEOPARETOBASEDFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoReferencePointIndicatorBasedFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoReferencePointIndicatorBasedFitnessAssignment.h new file mode 100755 index 000000000..027cc9ea3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoReferencePointIndicatorBasedFitnessAssignment.h @@ -0,0 +1,109 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoReferencePointIndicatorBasedFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOREFERENCEPOINTINDICATORBASEDFITNESSASSIGNMENT_H_ +#define MOEOREFERENCEPOINTINDICATORBASEDFITNESSASSIGNMENT_H_ + +#include +#include +#include +#include + +/** + * Fitness assignment sheme based a Reference Point and a Quality Indicator. + */ +template < class MOEOT > +class moeoReferencePointIndicatorBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > +{ +public: + + /** The type of objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + /** + * Ctor + * @param _refPoint the reference point + * @param _metric the quality indicator + */ + moeoReferencePointIndicatorBasedFitnessAssignment (ObjectiveVector & _refPoint, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric) : + refPoint(_refPoint), metric(_metric) + {} + + + /** + * Sets the fitness values for every solution contained in the population _pop + * @param _pop the population + */ + void operator()(eoPop < MOEOT > & _pop) + { + // 1 - setting of the bounds + setup(_pop); + // 2 - setting fitnesses + setFitnesses(_pop); + } + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + // nothing to do ;-) + } + + +protected: + + /** the reference point */ + ObjectiveVector & refPoint; + /** the quality indicator */ + moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & metric; + + + /** + * Sets the bounds for every objective using the min and the max value for every objective vector of _pop (and the reference point) + * @param _pop the population + */ + void setup(const eoPop < MOEOT > & _pop) + { + double min, max; + for (unsigned int i=0; i & _pop) + { + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].fitness(- metric(_pop[i].objectiveVector(), refPoint) ); + } + } + +}; + +#endif /*MOEOREFERENCEPOINTINDICATORBASEDFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoScalarFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoScalarFitnessAssignment.h new file mode 100644 index 000000000..d2e8508f3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoScalarFitnessAssignment.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoScalarFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOSCALARFITNESSASSIGNMENT_H_ +#define MOEOSCALARFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoScalarFitnessAssignment is a moeoFitnessAssignment for scalar strategies. + */ +template < class MOEOT > +class moeoScalarFitnessAssignment : public moeoFitnessAssignment < MOEOT > {}; + +#endif /*MOEOSCALARFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoUnaryIndicatorBasedFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoUnaryIndicatorBasedFitnessAssignment.h new file mode 100644 index 000000000..47508effb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/fitness/moeoUnaryIndicatorBasedFitnessAssignment.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoUnaryIndicatorBasedFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOUNARYINDICATORBASEDFITNESSASSIGNMENT_H_ +#define MOEOUNARYINDICATORBASEDFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoIndicatorBasedFitnessAssignment for unary indicators. + */ +template < class MOEOT > +class moeoUnaryIndicatorBasedFitnessAssignment : public moeoIndicatorBasedFitnessAssignment < MOEOT > {}; + +#endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoAdditiveEpsilonBinaryMetric.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoAdditiveEpsilonBinaryMetric.h new file mode 100644 index 000000000..95304becb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoAdditiveEpsilonBinaryMetric.h @@ -0,0 +1,84 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoAdditiveEpsilonBinaryMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOADDITIVEEPSILONBINARYMETRIC_H_ +#define MOEOADDITIVEEPSILONBINARYMETRIC_H_ + +#include + +/** + * Additive epsilon binary metric allowing to compare two objective vectors as proposed in + * Zitzler E., Thiele L., Laumanns M., Fonseca C. M., Grunert da Fonseca V.: + * Performance Assessment of Multiobjective Optimizers: An Analysis and Review. IEEE Transactions on Evolutionary Computation 7(2), pp.117–132 (2003). + */ +template < class ObjectiveVector > +class moeoAdditiveEpsilonBinaryMetric : public moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > +{ +public: + + /** + * Returns the minimal distance by which the objective vector _o1 must be translated in all objectives + * so that it weakly dominates the objective vector _o2 + * @warning don't forget to set the bounds for every objective before the call of this function + * @param _o1 the first objective vector + * @param _o2 the second objective vector + */ + double operator()(const ObjectiveVector & _o1, const ObjectiveVector & _o2) + { + // computation of the epsilon value for the first objective + double result = epsilon(_o1, _o2, 0); + // computation of the epsilon value for the other objectives + double tmp; + for (unsigned int i=1; i :: bounds; + + + /** + * Returns the epsilon value by which the objective vector _o1 must be translated in the objective _obj + * so that it dominates the objective vector _o2 + * @param _o1 the first objective vector + * @param _o2 the second objective vector + * @param _obj the index of the objective + */ + double epsilon(const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj) + { + double result; + // if the objective _obj have to be minimized + if (ObjectiveVector::Traits::minimizing(_obj)) + { + // _o1[_obj] - _o2[_obj] + result = ( (_o1[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ) - ( (_o2[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ); + } + // if the objective _obj have to be maximized + else + { + // _o2[_obj] - _o1[_obj] + result = ( (_o2[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ) - ( (_o1[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ); + } + return result; + } + +}; + +#endif /*MOEOADDITIVEEPSILONBINARYMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoContributionMetric.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoContributionMetric.h new file mode 100644 index 000000000..28736427c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoContributionMetric.h @@ -0,0 +1,107 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoContributionMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOCONTRIBUTIONMETRIC_H_ +#define MOEOCONTRIBUTIONMETRIC_H_ + +#include +#include + +/** + * The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set + * (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. of the 2000 Congress on Evolutionary Computation, IEEE Press, pp. 317-324) + */ +template < class ObjectiveVector > +class moeoContributionMetric : public moeoVectorVsVectorBinaryMetric < ObjectiveVector, double > +{ +public: + + /** + * Returns the contribution of the Pareto set '_set1' relatively to the Pareto set '_set2' + * @param _set1 the first Pareto set + * @param _set2 the second Pareto set + */ + double operator()(const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) { + unsigned int c = card_C(_set1, _set2); + unsigned int w1 = card_W(_set1, _set2); + unsigned int n1 = card_N(_set1, _set2); + unsigned int w2 = card_W(_set2, _set1); + unsigned int n2 = card_N(_set2, _set1); + return (double) (c / 2.0 + w1 + n1) / (c + w1 + n1 + w2 + n2); + } + + +private: + + /** Functor to compare two objective vectors according to Pareto dominance relation */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + + + /** + * Returns the number of solutions both in '_set1' and '_set2' + * @param _set1 the first Pareto set + * @param _set2 the second Pareto set + */ + unsigned int card_C (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) { + unsigned int c=0; + for (unsigned int i=0; i<_set1.size(); i++) + for (unsigned int j=0; j<_set2.size(); j++) + if (_set1[i] == _set2[j]) { + c++; + break; + } + return c; + } + + + /** + * Returns the number of solutions in '_set1' dominating at least one solution of '_set2' + * @param _set1 the first Pareto set + * @param _set2 the second Pareto set + */ + unsigned int card_W (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) { + unsigned int w=0; + for (unsigned int i=0; i<_set1.size(); i++) + for (unsigned int j=0; j<_set2.size(); j++) + if (paretoComparator(_set2[j], _set1[i])) + { + w++; + break; + } + return w; + } + + + /** + * Returns the number of solutions in '_set1' having no relation of dominance with those from '_set2' + * @param _set1 the first Pareto set + * @param _set2 the second Pareto set + */ + unsigned int card_N (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) { + unsigned int n=0; + for (unsigned int i=0; i<_set1.size(); i++) { + bool domin_rel = false; + for (unsigned int j=0; j<_set2.size(); j++) + if ( (paretoComparator(_set2[j], _set1[i])) || (paretoComparator(_set1[i], _set2[j])) ) + { + domin_rel = true; + break; + } + if (! domin_rel) + n++; + } + return n; + } + +}; + +#endif /*MOEOCONTRIBUTIONMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoEntropyMetric.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoEntropyMetric.h new file mode 100644 index 000000000..a19e029f8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoEntropyMetric.h @@ -0,0 +1,182 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEntropyMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOENTROPYMETRIC_H_ +#define MOEOENTROPYMETRIC_H_ + +#include +#include +#include + +/** + * The entropy gives an idea of the diversity of a Pareto set relatively to another + * (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. of the 2002 Congress on Evolutionary Computation, IEEE Press, pp. 1155-1156) + */ +template < class ObjectiveVector > +class moeoEntropyMetric : public moeoVectorVsVectorBinaryMetric < ObjectiveVector, double > +{ +public: + + /** + * Returns the entropy of the Pareto set '_set1' relatively to the Pareto set '_set2' + * @param _set1 the first Pareto set + * @param _set2 the second Pareto set + */ + double operator()(const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) { + // normalization + std::vector< ObjectiveVector > set1 = _set1; + std::vector< ObjectiveVector > set2= _set2; + removeDominated (set1); + removeDominated (set2); + prenormalize (set1); + normalize (set1); + normalize (set2); + + // making of PO* + std::vector< ObjectiveVector > star; // rotf :-) + computeUnion (set1, set2, star); + removeDominated (star); + + // making of PO1 U PO* + std::vector< ObjectiveVector > union_set1_star; // rotf again ... + computeUnion (set1, star, union_set1_star); + + unsigned int C = union_set1_star.size(); + float omega=0; + float entropy=0; + + for (unsigned int i=0 ; i 0) { + omega += 1.0 / N_i; + entropy += (float) n_i / (N_i * C) * log (((float) n_i / C) / log (2.0)); + } + } + entropy /= - log (omega); + entropy *= log (2.0); + return entropy; + } + + +private: + + /** vector of min values */ + std::vector vect_min_val; + /** vector of max values */ + std::vector vect_max_val; + /** Functor to compare two objective vectors according to Pareto dominance relation */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + + + /** + * Removes the dominated individuals contained in _f + * @param _f a Pareto set + */ + void removeDominated(std::vector < ObjectiveVector > & _f) { + for (unsigned int i=0 ; i<_f.size(); i++) { + bool dom = false; + for (unsigned int j=0; j<_f.size(); j++) + if (i != j && paretoComparator(_f[i],_f[j])) + { + dom = true; + break; + } + if (dom) { + _f[i] = _f.back(); + _f.pop_back(); + i--; + } + } + } + + + /** + * Prenormalization + * @param _f a Pareto set + */ + void prenormalize (const std::vector< ObjectiveVector > & _f) { + vect_min_val.clear(); + vect_max_val.clear(); + + for (unsigned int i=0 ; imax_val) + max_val = _f[j][i]; + } + vect_min_val.push_back(min_val); + vect_max_val.push_back (max_val); + } + } + + + /** + * Normalization + * @param _f a Pareto set + */ + void normalize (std::vector< ObjectiveVector > & _f) { + for (unsigned int i=0 ; i & _f1, const std::vector< ObjectiveVector > & _f2, std::vector< ObjectiveVector > & _f) { + _f = _f1 ; + for (unsigned int i=0; i<_f2.size(); i++) { + bool b = false; + for (unsigned int j=0; j<_f1.size(); j ++) + if (_f1[j] == _f2[i]) { + b = true; + break; + } + if (! b) + _f.push_back(_f2[i]); + } + } + + + /** + * How many in niche + */ + unsigned int howManyInNicheOf (const std::vector< ObjectiveVector > & _f, const ObjectiveVector & _s, unsigned int _size) { + unsigned int n=0; + for (unsigned int i=0 ; i<_f.size(); i++) { + if (euclidianDistance(_f[i], _s) < (_s.size() / (double) _size)) + n++; + } + return n; + } + + + /** + * Euclidian distance + */ + double euclidianDistance (const ObjectiveVector & _set1, const ObjectiveVector & _to, unsigned int _deg = 2) { + double dist=0; + for (unsigned int i=0; i<_set1.size(); i++) + dist += pow(fabs(_set1[i] - _to[i]), (int)_deg); + return pow(dist, 1.0 / _deg); + } + +}; + +#endif /*MOEOENTROPYMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoHypervolumeBinaryMetric.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoHypervolumeBinaryMetric.h new file mode 100644 index 000000000..39c51ec63 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoHypervolumeBinaryMetric.h @@ -0,0 +1,141 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoHypervolumeBinaryMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOHYPERVOLUMEBINARYMETRIC_H_ +#define MOEOHYPERVOLUMEBINARYMETRIC_H_ + +#include +#include +#include + +/** + * Hypervolume binary metric allowing to compare two objective vectors as proposed in + * Zitzler E., Künzli S.: Indicator-Based Selection in Multiobjective Search. In Parallel Problem Solving from Nature (PPSN VIII). + * Lecture Notes in Computer Science 3242, Springer, Birmingham, UK pp.832–842 (2004). + * This indicator is based on the hypervolume concept introduced in + * Zitzler, E., Thiele, L.: Multiobjective Optimization Using Evolutionary Algorithms - A Comparative Case Study. + * Parallel Problem Solving from Nature (PPSN-V), pp.292-301 (1998). + */ +template < class ObjectiveVector > +class moeoHypervolumeBinaryMetric : public moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > +{ +public: + + /** + * Ctor + * @param _rho value used to compute the reference point from the worst values for each objective (default : 1.1) + */ + moeoHypervolumeBinaryMetric(double _rho = 1.1) : rho(_rho) + { + // not-a-maximization problem check + for (unsigned int i=0; i :: bounds; + /** Functor to compare two objective vectors according to Pareto dominance relation */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + + + /** + * Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho for the objective _obj. + * @param _o1 the first objective vector + * @param _o2 the second objective vector + * @param _obj the objective index + * @param _flag used for iteration, if _flag=true _o2 is not talen into account (default : false) + */ + double hypervolume(const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj, const bool _flag = false) + { + double result; + double range = rho * bounds[_obj].range(); + double max = bounds[_obj].minimum() + range; + // value of _1 for the objective _obj + double v1 = _o1[_obj]; + // value of _2 for the objective _obj (if _flag=true, v2=max) + double v2; + if (_flag) + { + v2 = max; + } + else + { + v2 = _o2[_obj]; + } + // computation of the volume + if (_obj == 0) + { + if (v1 < v2) + { + result = (v2 - v1) / range; + } + else + { + result = 0; + } + } + else + { + if (v1 < v2) + { + result = ( hypervolume(_o1, _o2, _obj-1, true) * (v2 - v1) / range ) + ( hypervolume(_o1, _o2, _obj-1) * (max - v2) / range ); + } + else + { + result = hypervolume(_o1, _o2, _obj-1) * (max - v2) / range; + } + } + return result; + } + +}; + +#endif /*MOEOHYPERVOLUMEBINARYMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoMetric.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoMetric.h new file mode 100644 index 000000000..6678e9a1d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoMetric.h @@ -0,0 +1,67 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOMETRIC_H_ +#define MOEOMETRIC_H_ + +#include +#include + +/** + * Base class for performance metrics (also known as quality indicators). + */ +class moeoMetric : public eoFunctorBase {}; + + +/** + * Base class for unary metrics. + */ +template < class A, class R > +class moeoUnaryMetric : public eoUF < A, R >, public moeoMetric {}; + + +/** + * Base class for binary metrics. + */ +template < class A1, class A2, class R > +class moeoBinaryMetric : public eoBF < A1, A2, R >, public moeoMetric {}; + + +/** + * Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. + */ +template < class ObjectiveVector, class R > +class moeoSolutionUnaryMetric : public moeoUnaryMetric < const ObjectiveVector &, R > {}; + + +/** + * Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors) + */ +template < class ObjectiveVector, class R > +class moeoVectorUnaryMetric : public moeoUnaryMetric < const std::vector < ObjectiveVector > &, R > {}; + + +/** + * Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. + */ +template < class ObjectiveVector, class R > +class moeoSolutionVsSolutionBinaryMetric : public moeoBinaryMetric < const ObjectiveVector &, const ObjectiveVector &, R > {}; + + +/** + * Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors) + */ +template < class ObjectiveVector, class R > +class moeoVectorVsVectorBinaryMetric : public moeoBinaryMetric < const std::vector < ObjectiveVector > &, const std::vector < ObjectiveVector > &, R > {}; + + +#endif /*MOEOMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h new file mode 100644 index 000000000..e3e390a7e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h @@ -0,0 +1,88 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoNormalizedSolutionVsSolutionBinaryMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_ +#define MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_ + +#include +#include +#include + +/** + * Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. + * Then, indicator values lie in the interval [-1,1]. + * Note that you have to set the bounds for every objective before using the operator(). + */ +template < class ObjectiveVector, class R > +class moeoNormalizedSolutionVsSolutionBinaryMetric : public moeoSolutionVsSolutionBinaryMetric < ObjectiveVector, R > +{ +public: + + /** + * Default ctr for any moeoNormalizedSolutionVsSolutionBinaryMetric object + */ + moeoNormalizedSolutionVsSolutionBinaryMetric() + { + bounds.resize(ObjectiveVector::Traits::nObjectives()); + // initialize bounds in case someone does not want to use them + for (unsigned int i=0; i bounds; + +}; + +#endif /*MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/moeo b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/moeo new file mode 100644 index 000000000..c2d722a58 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/moeo @@ -0,0 +1,101 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeo +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEO_ +#define MOEO_ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + + +#endif /*MOEO_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/move/moeoMoveIncrEval.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/move/moeoMoveIncrEval.h new file mode 100644 index 000000000..120bfbdc1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/move/moeoMoveIncrEval.h @@ -0,0 +1,11 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +#ifndef _MOEOMOVEINCREVAL_H +#define _MOEOMOVEINCREVAL_H + +#include + +template < class Move > +class moeoMoveIncrEval : public eoBF < const Move &, const typename Move::EOType &, typename Move::EOType::ObjectiveVector > {}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoElitistReplacement.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoElitistReplacement.h new file mode 100644 index 000000000..b6bb9807d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoElitistReplacement.h @@ -0,0 +1,130 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoElitistReplacement.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOELITISTREPLACEMENT_H_ +#define MOEOELITISTREPLACEMENT_H_ + +#include +#include +#include +#include +#include +#include + +/** + * Elitist replacement strategy that consists in keeping the N best individuals. + */ +template < class MOEOT > class moeoElitistReplacement:public moeoReplacement < MOEOT > +{ +public: + + /** + * Full constructor. + * @param _fitnessAssignment the fitness assignment strategy + * @param _diversityAssignment the diversity assignment strategy + * @param _comparator the comparator (used to compare 2 individuals) + */ + moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment, moeoComparator < MOEOT > & _comparator) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (_comparator) + {} + + + /** + * Constructor without comparator. A moeoFitThenDivComparator is used as default. + * @param _fitnessAssignment the fitness assignment strategy + * @param _diversityAssignment the diversity assignment strategy + */ + moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (defaultComparator) + {} + + + /** + * Constructor without moeoDiversityAssignement. A dummy diversity is used as default. + * @param _fitnessAssignment the fitness assignment strategy + * @param _comparator the comparator (used to compare 2 individuals) + */ + moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoComparator < MOEOT > & _comparator) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (_comparator) + {} + + + /** + * Constructor without moeoDiversityAssignement nor moeoComparator. + * A moeoFitThenDivComparator and a dummy diversity are used as default. + * @param _fitnessAssignment the fitness assignment strategy + */ + moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (defaultComparator) + {} + + + /** + * Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained. + * @param _parents the population composed of the parents (the population you want to replace) + * @param _offspring the offspring population + */ + void operator () (eoPop < MOEOT > &_parents, eoPop < MOEOT > &_offspring) + { + unsigned int sz = _parents.size (); + // merges offspring and parents into a global population + _parents.reserve (_parents.size () + _offspring.size ()); + std::copy (_offspring.begin (), _offspring.end (), back_inserter (_parents)); + // evaluates the fitness and the diversity of this global population + fitnessAssignment (_parents); + diversityAssignment (_parents); + // sorts the whole population according to the comparator + std::sort(_parents.begin(), _parents.end(), comparator); + // finally, resize this global population + _parents.resize (sz); + // and clear the offspring population + _offspring.clear (); + } + + +protected: + + /** the fitness assignment strategy */ + moeoFitnessAssignment < MOEOT > & fitnessAssignment; + /** the diversity assignment strategy */ + moeoDiversityAssignment < MOEOT > & diversityAssignment; + /** a dummy diversity assignment can be used as default */ + moeoDummyDiversityAssignment < MOEOT > defaultDiversity; + /** a fitness then diversity comparator can be used as default */ + moeoFitnessThenDiversityComparator < MOEOT > defaultComparator; + /** this object is used to compare solutions in order to sort the population */ + class Cmp + { + public: + /** + * Ctor. + * @param _comp the comparator + */ + Cmp(moeoComparator < MOEOT > & _comp) : comp(_comp) + {} + /** + * Returns true if _moeo1 is greater than _moeo2 according to the comparator + * _moeo1 the first individual + * _moeo2 the first individual + */ + bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + return comp(_moeo2,_moeo1); + } + private: + /** the comparator */ + moeoComparator < MOEOT > & comp; + } comparator; + +}; + +#endif /*MOEOELITISTREPLACEMENT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoEnvironmentalReplacement.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoEnvironmentalReplacement.h new file mode 100755 index 000000000..68bc032c1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoEnvironmentalReplacement.h @@ -0,0 +1,146 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEnvironmentalReplacement.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOENVIRONMENTALREPLACEMENT_H_ +#define MOEOENVIRONMENTALREPLACEMENT_H_ + +#include +#include +#include +#include +#include + +/** + * Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 + * and by updating the fitness and diversity values after each deletion. + */ +template < class MOEOT > class moeoEnvironmentalReplacement:public moeoReplacement < MOEOT > +{ +public: + + /** The type for objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Full constructor. + * @param _fitnessAssignment the fitness assignment strategy + * @param _diversityAssignment the diversity assignment strategy + * @param _comparator the comparator (used to compare 2 individuals) + */ + moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment, moeoComparator < MOEOT > & _comparator) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (_comparator) + {} + + + /** + * Constructor without comparator. A moeoFitThenDivComparator is used as default. + * @param _fitnessAssignment the fitness assignment strategy + * @param _diversityAssignment the diversity assignment strategy + */ + moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (defaultComparator) + {} + + + /** + * Constructor without moeoDiversityAssignement. A dummy diversity is used as default. + * @param _fitnessAssignment the fitness assignment strategy + * @param _comparator the comparator (used to compare 2 individuals) + */ + moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoComparator < MOEOT > & _comparator) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (_comparator) + {} + + + /** + * Constructor without moeoDiversityAssignement nor moeoComparator. + * A moeoFitThenDivComparator and a dummy diversity are used as default. + * @param _fitnessAssignment the fitness assignment strategy + */ + moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (defaultComparator) + {} + + + /** + * Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained. + * @param _parents the population composed of the parents (the population you want to replace) + * @param _offspring the offspring population + */ + void operator () (eoPop < MOEOT > &_parents, eoPop < MOEOT > &_offspring) + { + unsigned int sz = _parents.size(); + // merges offspring and parents into a global population + _parents.reserve (_parents.size() + _offspring.size()); + std::copy (_offspring.begin(), _offspring.end(), back_inserter(_parents)); + // evaluates the fitness and the diversity of this global population + fitnessAssignment (_parents); + diversityAssignment (_parents); + // remove individuals 1 by 1 and update the fitness values + unsigned int worstIdx; + ObjectiveVector worstObjVec; + while (_parents.size() > sz) + { + // the individual to delete + worstIdx = std::min_element(_parents.begin(), _parents.end(), comparator) - _parents.begin(); + worstObjVec = _parents[worstIdx].objectiveVector(); + // remove the woorst individual + _parents[worstIdx] = _parents.back(); + _parents.pop_back(); + // update of the fitness and diversity values + fitnessAssignment.updateByDeleting(_parents, worstObjVec); + diversityAssignment.updateByDeleting(_parents, worstObjVec); + + } + // clear the offspring population + _offspring.clear (); + } + + +protected: + + /** the fitness assignment strategy */ + moeoFitnessAssignment < MOEOT > & fitnessAssignment; + /** the diversity assignment strategy */ + moeoDiversityAssignment < MOEOT > & diversityAssignment; + /** a dummy diversity assignment can be used as default */ + moeoDummyDiversityAssignment < MOEOT > defaultDiversity; + /** a fitness then diversity comparator can be used as default */ + moeoFitnessThenDiversityComparator < MOEOT > defaultComparator; + /** this object is used to compare solutions in order to sort the population */ + class Cmp + { + public: + /** + * Ctor. + * @param _comp the comparator + */ + Cmp(moeoComparator < MOEOT > & _comp) : comp(_comp) + {} + /** + * Returns true if _moeo1 is greater than _moeo2 according to the comparator + * _moeo1 the first individual + * _moeo2 the first individual + */ + bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + return comp(_moeo1,_moeo2); + } + private: + /** the comparator */ + moeoComparator < MOEOT > & comp; + } comparator; + +}; + +#endif /*MOEOENVIRONMENTALREPLACEMENT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoGenerationalReplacement.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoGenerationalReplacement.h new file mode 100644 index 000000000..e3d1f6235 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoGenerationalReplacement.h @@ -0,0 +1,39 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoGenerationalReplacement.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOGENERATIONALREPLACEMENT_H_ +#define MOEOGENERATIONALREPLACEMENT_H_ + +#include +#include + +/** + * Generational replacement: only the new individuals are preserved. + */ +template < class MOEOT > +class moeoGenerationalReplacement : public moeoReplacement < MOEOT >, public eoGenerationalReplacement < MOEOT > +{ +public: + + /** + * Swaps _parents and _offspring + * @param _parents the parents population + * @param _offspring the offspring population + */ + void operator()(eoPop < MOEOT > & _parents, eoPop < MOEOT > & _offspring) + { + eoGenerationalReplacement < MOEOT >::operator ()(_parents, _offspring); + } + +}; + +#endif /*MOEOGENERATIONALREPLACEMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoReplacement.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoReplacement.h new file mode 100644 index 000000000..aa0631754 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/replacement/moeoReplacement.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoReplacement.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOREPLACEMENT_H_ +#define MOEOREPLACEMENT_H_ + +#include + +/** + * Replacement strategy for multi-objective optimization. + */ +template < class MOEOT > +class moeoReplacement : public eoReplacement < MOEOT > {}; + +#endif /*MOEOREPLACEMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoDetTournamentSelect.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoDetTournamentSelect.h new file mode 100644 index 000000000..e60709c5b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoDetTournamentSelect.h @@ -0,0 +1,83 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDetTournamentSelect.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODETTOURNAMENTSELECT_H_ +#define MOEODETTOURNAMENTSELECT_H_ + +#include +#include +#include +#include + +/** + * Selection strategy that selects ONE individual by deterministic tournament. + */ +template < class MOEOT > class moeoDetTournamentSelect:public moeoSelectOne < MOEOT > +{ +public: + + /** + * Full Ctor. + * @param _comparator the comparator (used to compare 2 individuals) + * @param _tSize the number of individuals in the tournament (default: 2) + */ + moeoDetTournamentSelect (moeoComparator < MOEOT > & _comparator, unsigned int _tSize = 2) : comparator (_comparator), tSize (_tSize) + { + // consistency check + if (tSize < 2) + { + std:: + cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n"; + tSize = 2; + } + } + + + /** + * Ctor without comparator. A moeoFitnessThenDiversityComparator is used as default. + * @param _tSize the number of individuals in the tournament (default: 2) + */ + moeoDetTournamentSelect (unsigned int _tSize = 2) : comparator (defaultComparator), tSize (_tSize) + { + // consistency check + if (tSize < 2) + { + std:: + cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n"; + tSize = 2; + } + } + + + /** + * Apply the tournament to the given population + * @param _pop the population + */ + const MOEOT & operator() (const eoPop < MOEOT > &_pop) + { + // use the selector + return mo_deterministic_tournament (_pop, tSize, comparator); + } + + +protected: + + /** the comparator (used to compare 2 individuals) */ + moeoComparator < MOEOT > & comparator; + /** a fitness then diversity comparator can be used as default */ + moeoFitnessThenDiversityComparator < MOEOT > defaultComparator; + /** the number of individuals in the tournament */ + unsigned int tSize; + +}; + +#endif /*MOEODETTOURNAMENTSELECT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoRandomSelect.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoRandomSelect.h new file mode 100644 index 000000000..2b5bbd088 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoRandomSelect.h @@ -0,0 +1,43 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoRandomSelect.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEORANDOMSELECT_H_ +#define MOEORANDOMSELECT_H_ + +#include +#include + + +/** + * Selection strategy that selects only one element randomly from a whole population. + */ +template < class MOEOT > class moeoRandomSelect:public moeoSelectOne < MOEOT >, public eoRandomSelect +{ +public: + + /** + * Ctor. + */ + moeoRandomSelect(){} + + + /** + * Return one individual at random by using an eoRandomSelect. + */ + const MOEOT & operator () (const eoPop < MOEOT > &_pop) + { + return eoRandomSelect < MOEOT >::operator ()(_pop); + } + +}; + +#endif /*MOEORANDOMSELECT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoRouletteSelect.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoRouletteSelect.h new file mode 100644 index 000000000..e53b82cfc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoRouletteSelect.h @@ -0,0 +1,62 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoRouletteSelect.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOROULETTESELECT_H_ +#define MOEOROULETTESELECT_H_ + +#include +#include + +/** + * Selection strategy that selects ONE individual by using roulette wheel process. + * @WARNING This selection only uses fitness values (and not diversity values). + */ +template < class MOEOT > +class moeoRouletteSelect:public moeoSelectOne < MOEOT > +{ +public: + + /** + * Ctor. + * @param _tSize the number of individuals in the tournament (default: 2) + */ + moeoRouletteSelect (unsigned int _tSize = 2) : tSize (_tSize) + { + // consistency check + if (tSize < 2) + { + std:: + cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n"; + tSize = 2; + } + } + + + /** + * Apply the tournament to the given population + * @param _pop the population + */ + const MOEOT & operator () (const eoPop < MOEOT > & _pop) + { + // use the selector + return mo_roulette_wheel(_pop,tSize); + } + + +protected: + + /** size */ + double & tSize; + +}; + +#endif /*MOEOROULETTESELECT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectFromPopAndArch.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectFromPopAndArch.h new file mode 100644 index 000000000..078a51c19 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectFromPopAndArch.h @@ -0,0 +1,92 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoSelectFormPopAndArch.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOSELECTONEFROMPOPANDARCH_H_ +#define MOEOSELECTONEFROMPOPANDARCH_H_ + +#include +#include +#include +#include +#include + +/** + * Elitist selection process that consists in choosing individuals in the archive as well as in the current population. + */ +template < class MOEOT > +class moeoSelectFromPopAndArch : public moeoSelectOne < MOEOT > +{ +public: + + /** + * Ctor + * @param _popSelectOne the population's selection operator + * @param _archSelectOne the archive's selection operator + * @param _arch the archive + * @param _ratioFromPop the ratio of selected individuals from the population + */ + moeoSelectFromPopAndArch (moeoSelectOne < MOEOT > & _popSelectOne, moeoSelectOne < MOEOT > _archSelectOne, moeoArchive < MOEOT > & _arch, double _ratioFromPop=0.5) + : popSelectOne(_popSelectOne), archSelectOne(_archSelectOne), arch(_arch), ratioFromPop(_ratioFromPop) + {} + + + /** + * Defaulr ctor - the archive's selection operator is a random selector + * @param _popSelectOne the population's selection operator + * @param _arch the archive + * @param _ratioFromPop the ratio of selected individuals from the population + */ + moeoSelectFromPopAndArch (moeoSelectOne < MOEOT > & _popSelectOne, moeoArchive < MOEOT > & _arch, double _ratioFromPop=0.5) + : popSelectOne(_popSelectOne), archSelectOne(randomSelectOne), arch(_arch), ratioFromPop(_ratioFromPop) + {} + + + /** + * The selection process + */ + virtual const MOEOT & operator () (const eoPop < MOEOT > & pop) + { + if (arch.size() > 0) + if (rng.flip(ratioFromPop)) + return popSelectOne(pop); + else + return archSelectOne(arch); + else + return popSelectOne(pop); + } + + + /** + * Setups some population stats + */ + virtual void setup (const eoPop < MOEOT > & _pop) + { + popSelectOne.setup(_pop); + } + + +private: + + /** The population's selection operator */ + moeoSelectOne < MOEOT > & popSelectOne; + /** The archive's selection operator */ + moeoSelectOne < MOEOT > & archSelectOne; + /** The archive */ + moeoArchive < MOEOT > & arch; + /** The ratio of selected individuals from the population*/ + double ratioFromPop; + /** A random selection operator (used as default for archSelectOne) */ + moeoRandomSelect < MOEOT > randomSelectOne; + +}; + +#endif /*MOEOSELECTONEFROMPOPANDARCH_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectOne.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectOne.h new file mode 100644 index 000000000..7f4129b99 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectOne.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoSelectOne.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOSELECTONE_H_ +#define MOEOSELECTONE_H_ + +#include + +/** + * Selection strategy for multi-objective optimization that selects only one element from a whole population. + */ +template < class MOEOT > +class moeoSelectOne : public eoSelectOne < MOEOT > {}; + +#endif /*MOEOSELECTONE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectors.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectors.h new file mode 100644 index 000000000..35f913ae4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoSelectors.h @@ -0,0 +1,158 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoSelectors.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOSELECTORS_H_ +#define MOEOSELECTORS_H_ + +#include + + +template +It mo_deterministic_tournament(It _begin, It _end, unsigned int _t_size,moeoComparator& _comparator ,eoRng& _gen = rng) +{ + It best = _begin + _gen.random(_end - _begin); + + for (unsigned int i = 0; i < _t_size - 1; ++i) + { + It competitor = _begin + _gen.random(_end - _begin); + // compare the two individuals by using the comparator + if (_comparator(*best, *competitor)) + // best "better" than competitor + best=competitor; + } + return best; +} + + +template +const MOEOT& mo_deterministic_tournament(const eoPop& _pop, unsigned int _t_size,moeoComparator& _comparator, eoRng& _gen = rng) +{ + return *mo_deterministic_tournament(_pop.begin(), _pop.end(),_t_size,_comparator, _gen); +} + + +template +MOEOT& mo_deterministic_tournament(eoPop& _pop, unsigned int _t_size,moeoComparator& _comparator,eoRng& _gen = rng) +{ + return *mo_deterministic_tournament(_pop.begin(), _pop.end(), _t_size,_comparator, _gen); +} + + +template +It mo_stochastic_tournament(It _begin, It _end, double _t_rate,moeoComparator& _comparator ,eoRng& _gen = rng) +{ + It i1 = _begin + _gen.random(_end - _begin); + It i2 = _begin + _gen.random(_end - _begin); + + bool return_better = _gen.flip(_t_rate); + + if (_comparator(*i1, *i2)) + { + if (return_better) return i2; + // else + + return i1; + } + else + { + if (return_better) return i1; + // else + } + // else + + return i2; +} + + +template +const MOEOT& mo_stochastic_tournament(const eoPop& _pop, double _t_rate,moeoComparator& _comparator, eoRng& _gen = rng) +{ + return *mo_stochastic_tournament(_pop.begin(), _pop.end(), _t_rate,_comparator, _gen); +} + + +template +MOEOT& mo_stochastic_tournament(eoPop& _pop, double _t_rate, eoRng& _gen = rng) +{ + return *mo_stochastic_tournament(_pop.begin(), _pop.end(), _t_rate, _gen); +} + + +template +It mo_roulette_wheel(It _begin, It _end, double total, eoRng& _gen = rng) +{ + + float roulette = _gen.uniform(total); + + if (roulette == 0.0) // covers the case where total==0.0 + return _begin + _gen.random(_end - _begin); // uniform choice + + It i = _begin; + + while (roulette > 0.0) + { + roulette -= static_cast(*(i++)); + } + + return --i; +} + + +template +const MOEOT& mo_roulette_wheel(const eoPop& _pop, double total, eoRng& _gen = rng) +{ + float roulette = _gen.uniform(total); + + if (roulette == 0.0) // covers the case where total==0.0 + return _pop[_gen.random(_pop.size())]; // uniform choice + + typename eoPop::const_iterator i = _pop.begin(); + + while (roulette > 0.0) + { + roulette -= static_cast((i++)->fitness()); + } + + return *--i; +} + + +template +MOEOT& mo_roulette_wheel(eoPop& _pop, double total, eoRng& _gen = rng) +{ + float roulette = _gen.uniform(total); + + if (roulette == 0.0) // covers the case where total==0.0 + return _pop[_gen.random(_pop.size())]; // uniform choice + + typename eoPop::iterator i = _pop.begin(); + + while (roulette > 0.0) + { + // fitness only + roulette -= static_cast((i++)->fitness()); + } + + return *--i; +} + + +#endif /*MOEOSELECTORS_H_*/ + + + + + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoStochTournamentSelect.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoStochTournamentSelect.h new file mode 100644 index 000000000..61365c038 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/selection/moeoStochTournamentSelect.h @@ -0,0 +1,91 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoStochTournamentSelect.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOSTOCHTOURNAMENTSELECT_H_ +#define MOEOSTOCHTOURNAMENTSELECT_H_ + +#include +#include +#include +#include + +/** + * Selection strategy that selects ONE individual by stochastic tournament. + */ +template < class MOEOT > class moeoStochTournamentSelect:public moeoSelectOne +{ +public: + + /** + * Full Ctor + * @param _comparator the comparator (used to compare 2 individuals) + * @param _tRate the tournament rate + */ + moeoStochTournamentSelect (moeoComparator < MOEOT > & _comparator, double _tRate = 1.0) : comparator (_comparator), tRate (_tRate) + { + // consistency checks + if (tRate < 0.5) + { + std::cerr << "Warning, Tournament rate should be > 0.5\nAdjusted to 0.55\n"; + tRate = 0.55; + } + if (tRate > 1) + { + std::cerr << "Warning, Tournament rate should be < 1\nAdjusted to 1\n"; + tRate = 1; + } + } + + + /** + * Ctor without comparator. A moeoFitnessThenDiversityComparator is used as default. + * @param _tRate the tournament rate + */ + moeoStochTournamentSelect (double _tRate = 1.0) : comparator (defaultComparator), tRate (_tRate) + { + // consistency checks + if (tRate < 0.5) + { + std::cerr << "Warning, Tournament rate should be > 0.5\nAdjusted to 0.55\n"; + tRate = 0.55; + } + if (tRate > 1) + { + std::cerr << "Warning, Tournament rate should be < 1\nAdjusted to 1\n"; + tRate = 1; + } + } + + + /** + * Apply the tournament to the given population + * @param _pop the population + */ + const MOEOT & operator() (const eoPop < MOEOT > &_pop) + { + // use the selector + return mo_stochastic_tournament(_pop,tRate,comparator); + } + + +protected: + + /** the comparator (used to compare 2 individuals) */ + moeoComparator < MOEOT > & comparator; + /** a fitness then diversity comparator can be used as default */ + moeoFitnessThenDiversityComparator < MOEOT > defaultComparator; + /** the tournament rate */ + double tRate; + +}; + +#endif /*MOEOSTOCHTOURNAMENTSELECT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoArchiveObjectiveVectorSavingUpdater.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoArchiveObjectiveVectorSavingUpdater.h new file mode 100644 index 000000000..3c6035e16 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoArchiveObjectiveVectorSavingUpdater.h @@ -0,0 +1,94 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoArchiveObjectiveVectorSavingUpdater.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_ +#define MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_ + +#include +#include +#include +#include +#include + +#define MAX_BUFFER_SIZE 1000 + +/** + * This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. + */ +template < class MOEOT > +class moeoArchiveObjectiveVectorSavingUpdater : public eoUpdater +{ +public: + + /** + * Ctor + * @param _arch local archive + * @param _filename target filename + * @param _count put this variable to true if you want a new file to be created each time () is called and to false if you only want the file to be updated + * @param _id own ID + */ + moeoArchiveObjectiveVectorSavingUpdater (moeoArchive & _arch, const std::string & _filename, bool _count = false, int _id = -1) : + arch(_arch), filename(_filename), count(_count), counter(0), id(_id) + {} + + + /** + * Saves the fitness of the archive's members into the file + */ + void operator()() { + char buff[MAX_BUFFER_SIZE]; + if (count) + { + if (id == -1) + { + sprintf (buff, "%s.%u", filename.c_str(), counter ++); + } + else + { + sprintf (buff, "%s.%u.%u", filename.c_str(), id, counter ++); + } + } + else + { + if (id == -1) + { + sprintf (buff, "%s", filename.c_str()); + } + else + { + sprintf (buff, "%s.%u", filename.c_str(), id); + } + counter ++; + } + std::ofstream f(buff); + for (unsigned int i = 0; i < arch.size (); i++) + f << arch[i].objectiveVector() << std::endl; + f.close (); + } + + +private: + + /** local archive */ + moeoArchive & arch; + /** target filename */ + std::string filename; + /** this variable is set to true if a new file have to be created each time () is called and to false if the file only HAVE to be updated */ + bool count; + /** counter */ + unsigned int counter; + /** own ID */ + int id; + +}; + +#endif /*MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoArchiveUpdater.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoArchiveUpdater.h new file mode 100644 index 000000000..6596940c2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoArchiveUpdater.h @@ -0,0 +1,54 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoArchiveUpdater.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOARCHIVEUPDATER_H_ +#define MOEOARCHIVEUPDATER_H_ + +#include +#include +#include + +/** + * This class allows to update the archive at each generation with newly found non-dominated solutions. + */ +template < class MOEOT > +class moeoArchiveUpdater : public eoUpdater +{ +public: + + /** + * Ctor + * @param _arch an archive of non-dominated solutions + * @param _pop the main population + */ + moeoArchiveUpdater(moeoArchive < MOEOT > & _arch, const eoPop < MOEOT > & _pop) : arch(_arch), pop(_pop) + {} + + + /** + * Updates the archive with newly found non-dominated solutions contained in the main population + */ + void operator()() { + arch.update(pop); + } + + +private: + + /** the archive of non-dominated solutions */ + moeoArchive < MOEOT > & arch; + /** the main population */ + const eoPop < MOEOT > & pop; + +}; + +#endif /*MOEOARCHIVEUPDATER_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoBinaryMetricSavingUpdater.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoBinaryMetricSavingUpdater.h new file mode 100644 index 000000000..237ea4909 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoBinaryMetricSavingUpdater.h @@ -0,0 +1,90 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoBinaryMetricSavingUpdater.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOBINARYMETRICSAVINGUPDATER_H_ +#define MOEOBINARYMETRICSAVINGUPDATER_H_ + +#include +#include +#include +#include +#include +#include + +/** + * This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) + * with the objective vectors of the population (or archive) of the generation (n-1) into a file + */ +template < class MOEOT > +class moeoBinaryMetricSavingUpdater : public eoUpdater +{ +public: + + /** The objective vector type of a solution */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Ctor + * @param _metric the binary metric comparing two Pareto sets + * @param _pop the main population + * @param _filename the target filename + */ + moeoBinaryMetricSavingUpdater (moeoVectorVsVectorBinaryMetric < ObjectiveVector, double > & _metric, const eoPop < MOEOT > & _pop, std::string _filename) : + metric(_metric), pop(_pop), filename(_filename), counter(1) + {} + + + /** + * Saves the metric's value for the current generation + */ + void operator()() { + if (pop.size()) { + if (firstGen) { + firstGen = false; + } + else { + // creation of the two Pareto sets + std::vector < ObjectiveVector > from; + std::vector < ObjectiveVector > to; + for (unsigned int i=0; i & metric; + /** main population */ + const eoPop < MOEOT > & pop; + /** (n-1) population */ + eoPop< MOEOT > oldPop; + /** target filename */ + std::string filename; + /** is it the first generation ? */ + bool firstGen; + /** counter */ + unsigned int counter; + +}; + +#endif /*MOEOBINARYMETRICSAVINGUPDATER_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoConvertPopToObjectiveVectors.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoConvertPopToObjectiveVectors.h new file mode 100644 index 000000000..ca25cd7a5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/utils/moeoConvertPopToObjectiveVectors.h @@ -0,0 +1,44 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoConvertPopToObjectiveVectors.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOPOPTOOBJECTIVEVECTORS_H_ +#define MOEOPOPTOOBJECTIVEVECTORS_H_ + +#include +#include + +/** + * Functor allowing to get a vector of objective vectors from a population + */ +template < class MOEOT, class ObjectiveVector = typename MOEOT::ObjectiveVector > +class moeoConvertPopToObjectiveVectors : public eoUF < const eoPop < MOEOT >, const std::vector < ObjectiveVector > > +{ +public: + + /** + * Returns a vector of the objective vectors from the population _pop + * @param _pop the population + */ + const std::vector < ObjectiveVector > operator()(const eoPop < MOEOT > _pop) + { + std::vector < ObjectiveVector > result; + result.resize(_pop.size()); + for (unsigned int i=0; i<_pop.size(); i++) + { + result.push_back(_pop[i].objectiveVector()); + } + return result; + } + +}; + +#endif /*MOEOPOPTOOBJECTIVEVECTORS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/CMakeLists.txt new file mode 100644 index 000000000..d9c7a70dc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/CMakeLists.txt @@ -0,0 +1,18 @@ + +###################################################################################### +### 1) Definitions +###################################################################################### + +SET(FLOWSHOP_SRC_DIR ${ParadisEO-MOEO_SOURCE_DIR}/tutorial/examples/flowshop) +SET(FLOWSHOP_BINARY_DIR ${ParadisEO-MOEO_BINARY_DIR}/tutorial/examples/flowshop) + +###################################################################################### + + +###################################################################################### +### 2) Where must cmake go now ? +###################################################################################### + +SUBDIRS(examples Lesson1 Lesson2) + +###################################################################################### diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/CMakeLists.txt new file mode 100644 index 000000000..e7e1b7259 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/CMakeLists.txt @@ -0,0 +1,140 @@ + +###################################################################################### +### 0) Copy the FlowShop.param file in the build path for an easy use. +###################################################################################### + +ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-MOEO_SOURCE_DIR}/tutorial/Lesson1/FlowShopEA.param) +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different + ${ParadisEO-MOEO_SOURCE_DIR}/tutorial/Lesson1/FlowShopEA.param + ${ParadisEO-MOEO_BINARY_DIR}/tutorial/Lesson1) +###################################################################################### + + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${EO_SRC_DIR}/utils) +INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) +INCLUDE_DIRECTORIES(${FLOWSHOP_SRC_DIR}) + +###################################################################################### + + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +# --> UNIX +IF(UNIX) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${ParadisEO-MOEO_BINARY_DIR}/lib ${FLOWSHOP_BINARY_DIR}/lib) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + LINK_DIRECTORIES(${FLOWSHOP_BINARY_DIR}\\lib\\debug) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\debug) + LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + LINK_DIRECTORIES(${FLOWSHOP_BINARY_DIR}\\lib\\release) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\release) + LINK_DIRECTORIES(${EO_LIB_DIR}\\release) + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) + +###################################################################################### + + + +###################################################################################### +### 3) Define your target(s): just an executable here +###################################################################################### + +# no matter what is the OS, hopefully +ADD_EXECUTABLE(FlowShopEA FlowShopEA.cpp) + +ADD_DEPENDENCIES(FlowShopEA moeo) +ADD_DEPENDENCIES(FlowShopEA flowshop) +###################################################################################### + + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(FLOWSHOPEA_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(FlowShopEA PROPERTIES VERSION "${FLOWSHOPEA_VERSION}") +###################################################################################### + + + +###################################################################################### +### 5) Link the librairies for your target(s) +###################################################################################### + +# --> UNIX +IF(UNIX) + TARGET_LINK_LIBRARIES(FlowShopEA moeo) + TARGET_LINK_LIBRARIES(FlowShopEA flowshop) + TARGET_LINK_LIBRARIES(FlowShopEA eo) + TARGET_LINK_LIBRARIES(FlowShopEA eoutils) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + TARGET_LINK_LIBRARIES(FlowShopEA moeo) + TARGET_LINK_LIBRARIES(FlowShopEA flowshop) + TARGET_LINK_LIBRARIES(FlowShopEA eod) + TARGET_LINK_LIBRARIES(FlowShopEA eoutilsd) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + TARGET_LINK_LIBRARIES(FlowShopEA moeo) + TARGET_LINK_LIBRARIES(FlowShopEA flowshop) + TARGET_LINK_LIBRARIES(FlowShopEA eo) + TARGET_LINK_LIBRARIES(FlowShopEA eoutils) + ELSE(CMAKE_BUILD_TYPE STREQUAL Debug) + MESSAGE(FATAL_ERROR " Cmake build type can only be \"Debug\" or \"Release\" ") + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) +###################################################################################### + + + +###################################################################################### +### 6) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O2") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MTd /Z7 /Od") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE") + + ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.cpp b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.cpp new file mode 100644 index 000000000..7e01baabc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.cpp @@ -0,0 +1,107 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopEA.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + + +// moeo general include +#include +// for the creation of an evaluator +#include +// for the creation of an initializer +#include +// for the creation of the variation operators +#include +// how to initialize the population +#include +// the stopping criterion +#include +// outputs (stats, population dumps, ...) +#include +// evolution engine (selection and replacement) +#include +// simple call to the algo +#include +// checks for help demand, and writes the status file and make_help; in libutils +void make_help(eoParser & _parser); +// definition of the representation +#include + + +using namespace std; + + +int main(int argc, char* argv[]) +{ + try + { + + eoParser parser(argc, argv); // for user-parameter reading + eoState state; // to keep all things allocated + + + /*** the representation-dependent things ***/ + + // The fitness evaluation + eoEvalFuncCounter& eval = do_make_eval(parser, state); + // the genotype (through a genotype initializer) + eoInit& init = do_make_genotype(parser, state); + // the variation operators + eoGenOp& op = do_make_op(parser, state); + + + /*** the representation-independent things ***/ + + // initialization of the population + eoPop& pop = do_make_pop(parser, state, init); + // definition of the archive + moeoArchive arch; + // stopping criteria + eoContinue& term = do_make_continue_moeo(parser, state, eval); + // output + eoCheckPoint& checkpoint = do_make_checkpoint_moeo(parser, state, eval, term, pop, arch); + // algorithm + eoAlgo& algo = do_make_ea_moeo(parser, state, eval, checkpoint, op, arch); + + + /*** Go ! ***/ + + // help ? + make_help(parser); + + // first evalution + apply(eval, pop); + + // printing of the initial population + cout << "Initial Population\n"; + pop.sortedPrintOn(cout); + cout << endl; + + // run the algo + do_run(algo, pop); + + // printing of the final population + cout << "Final Population\n"; + pop.sortedPrintOn(cout); + cout << endl; + + // printing of the final archive + cout << "Final Archive\n"; + arch.sortedPrintOn(cout); + cout << endl; + + + } + catch (exception& e) + { + cout << e.what() << endl; + } + return EXIT_SUCCESS; +} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.param b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.param new file mode 100644 index 000000000..f1a2f9218 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.param @@ -0,0 +1,49 @@ + +###### General ###### +--help=0 # -h : Prints this message +--stopOnUnknownParam=1 # Stop if unkown param entered +# --seed=1183379758 # -S : Random number seed + +###### Evolution Engine ###### +--popSize=20 # -P : Population Size +--updateArch=1 # Update the archive at each gen. +--fitness=FastNonDominatedSorting # -F : Fitness assignment scheme: Dummy, FastNonDominatedSorting or IndicatorBased +--indicator=Epsilon # -i : Binary indicator for IndicatorBased: Epsilon, Hypervolume +--rho=1.1 # -r : reference point for the hypervolume indicator +--kappa=0.05 # -k : Scaling factor kappa for IndicatorBased +--diversity=Crowding # -D : Diversity assignment scheme: Dummy, Sharing(nicheSize) or Crowding +--comparator=FitnessThenDiversity # -C : Comparator scheme: FitnessThenDiversity, DiversityThenFitness or Aggregative +--selection=DetTour(2) # -S : Selection scheme: DetTour(T), StochTour(t) or Random +--replacement=Elitist # -R : Replacement scheme: Elitist, Environmental or Generational +--nbOffspring=100% # -O : Number of offspring (percentage or absolute) + +###### Output ###### +--resDir=Res # Directory to store DISK outputs +--eraseDir=1 # erase files in dirName if any +--printPop=0 # Print sorted pop. every gen. +--storeArch=0 # Store the archive's objective vectors at each gen. +--contribution=0 # Store the contribution of the archive at each gen. +--entropy=0 # Store the entropy of the archive at each gen. + +###### Persistence ###### +--Load= # -L : A save file to restart from +--recomputeFitness=0 # -r : Recompute the fitness after re-loading the pop.? +--saveFrequency=0 # Save every F generation (0 = only final state, absent = never) +--saveTimeInterval=0 # Save every T seconds (0 or absent = never) +--status=./FlowShopEA.status # Status file + +###### Representation ###### +--BenchmarkFile=../examples/flowshop/benchs/020_10_01.txt # -B : Benchmark file name REQUIRED + +###### Stopping criterion ###### +--maxGen=100 # -G : Maximum number of generations (0 = none) +--maxEval=0 # -E : Maximum number of evaluations (0 = none) +--maxTime=0 # -T : Maximum running time in seconds (0 = none) +--CtrlC=1 # -C : Terminate current generation upon Ctrl C + +###### Variation Operators ###### +--crossRate=1 # Relative rate for the only crossover +--shiftMutRate=0.5 # Relative rate for shift mutation +--exchangeMutRate=0.5 # Relative rate for exchange mutation +--pCross=0.25 # -c : Probability of Crossover +--pMut=0.35 # -m : Probability of Mutation diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/Lesson1.pdf b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson1/Lesson1.pdf new file mode 100755 index 0000000000000000000000000000000000000000..b2a20b13499f85a3006e9ca43abd11ea07fc2ad7 GIT binary patch literal 306994 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

a(^IK zR4qCfE#Y-8nU;#qro-k6`e4m9XEuq9*`{0f`Ldu<&fO`|w_Isk}sd!?CL9`0dkAPHts#^Hs@} z!xq0n)s{s);cwo|1{tD}9nQ%^+W8?0nTdHOi7FJ>gK2y}8&?qW=l0*kIxLO)Zvv_U z4c#%@znR%xqz`2~YFPc?BuJJTTwn-3O%EbYUD{bqa+?gVNHRHrjZ6R{9CFcd+o(0; z!6;}NT#a(4H;^q=Ko#)jqj+>J`_MQ!!uzc%W|!HX>5cSi`YlIUIU6^*(Qni4HA8b6 zyYzOCf(%A$LOuoEBU09;r~RCWrv^~+(r_%cm7pLG`7z#w6Iyd@3BJk+;VJIW^2yif ze#LocO3yD*oSRX=FdaxDP(#3P$NGBWz%6^FR%oWrZt=#rU6x&DF3B6tWV2WDwn*TG z&-IM+`*msY7vhW-JpNYWWShlySJ=h{!5 zNVH|&aE;bND-J|U%hvQqx?P+&qn-OSq-OgCzwm&?%9UU3y*48}Unsr{Cct_UtE2f_t-D{Mlaw!YRA}k$0OJD=9zi$j4l;s4# z)mU;H49Yfoo66MhjB73XILbsmu1}I#znK=Of9X8&u^&IV>u?1H_(wiQwl`rY2)>lx z#NTEyMYyy-Cw>lwV$l#F@ckW46q37~&HA9#lWvzjjX!J7s#IsWKb)cUYe-SUdKJ3j z0>5r#rPw^FvgLbdTvdDPRAQ*dV_-}M4$jyvl!Gcdnk!`$uTwci9I2n!HBFj+*`oFs zJnXjHeaL}khYFqS+6Vl{7v_}8xC#SZI>U%hIxP_11mm5nmGbH32~KleXN2iv2oH|I zBF*PQS{-`Cg$_?t%2H31`L*iU+k74Dc`H51V!A`S{$smQ<49T8Iw_#MpLGx>7>Yb% zp-nbzjM&V}F9hT_{sErmuC(=Vt<03WLQb-*V~Iod8=dQG)4Jf>TxG&&TbS(}GI>Em z2ZV+9{WqQAmXZ0mx+2rb8`=uvb_BTvh6Y_i3Dtv!?QYFIHq?0dGZH9-)j9bx%&S30 z8jWFA>g%H_)do+IFZIeVMsq$fMv^Y{DS_JJYc_4s5d;PXVM}_2v7|paD{TgvSdH7Q z6|!tnx=i}zoMbXq>;H z%ADLHAA5R>@U==wE@E|iHIW_#_SdLjn`6doeXXl<)1E<=Jj5CaYaxMh6}?+&)A zj+;DYu-)Ace=hk5^c49EWr0=oxj65hgwP93<>QXsi}mouq)oC_;2dRU1+>P+Rc!}W ziMy3705%dMbH!U={{WgK6x13WQlAor&%RzTf;YS~h55D|X9lijHQ}D%aorUOC z%yFu^HGdDm#!P9FpoVzX2U1t6F}h*4d@Lig;5+H4VUj>KN#Xn0o8kXCv_zDyzf+_L z3hE(55CyECH>-J{u~0cnG#hED$7+ogqmt0eWn$(vP#2F9@6l&aAF*fcp9ZgR$$2|! z8m@-_4Ld~&a7YWwD*>MqBMOD;ID2G}*-V3!@hzNPtJrS_3}@`apKS)obL8bE+9nqp zURa_lmS=@tMxEyY&yX38{u>T5xo)n%h&)^nLajqSF1^r6kVSIZr1?A_v!8sy>>K8T zOjkfy5QkdU_O*eoC=EF;oX+2=6(J4b9Vm03Q{lZTcJ7>nAApFd@nGSg*|x5GqXI18 zf!EdF1?MVx>ujczQ=h_joTb}j_ZNdh7e#koAi_sc6<{(@?(uI4HBtvz{IQ`+UU(Zx ziVs_5rTD*n{nUKM@*T=QeAqTY1 zIE@c+_X_dYS(exO){F-geA}j+EOLJ_9R;Vw9CPy<9OC04CQ13z1t9#|5&Gh3Te@fs zS`fsak1npKa#D#<(M;beBzUGjr^#4q%c2>q(oOf33%{^;YP?tUlS5zOEO!F_;E_Oj>?K%VvV8pc9kcrvi(^CWAh^^xC8_we*xy-D<2y%&WXv zKKIrzQ?r>Qs=an%V4ViIo={sF5fS+XrqoTP8o%{98dE!`P>3lmVW~b}rK1YSFCYFG zLF+tW{_%f^8~&$X`>(T*{N)4vcTWrmiP+?|v?W;5@D#9aIL&V{V(|wij zVt(W_vwI*Ci~4tms<451rn3DH0Jgh;0e%nfQ1kjs{<{6Gru#YM;eKJ?aq$me<`ldD z4hcC0e|e^Q7C!14x>aYX_C5j~5A8mV&+IF)|BFaaA$5?1M2y`B-p_&FH{EYYZ~NA- z5DNb(@bw?Si_nDAv+}9orQZ$s%enF8`Lp0Hop9eVKQ+@UDNvZDyI1xtqFegcMfjT) zIK2A?eB0hy+4=`S>VEfjfAg#H1ze%vJ0DUG-E}Qd^WPtY|MDpP2b>q}&+>be_oj9x z&Mr=-Uu;nzOZLWAC~TZ8WGrNmB>@3uHCJO7PX|+GS=%q>rpyYacIGY?Wb7=gT+C9I zHZG=4%o5`25~d(~6H{g}OBd(QrcUDawhs1orgko5Jj~+uHug?x4qrf~WUM^wke#YB zYg(E>_Q1-)#w=rMX>Q>{#>&phto~OMTFS;&rXUv~p?{I){hy^jX8=@Dh)kvc6Mx7} zQBZ$Y0l@%d1Ox;`1Y|@+WDKPDNEkS1$jE3o_*hstSXlUYnAnhliHAo>L_$P}M@dOT zLrKZW&d$!s|BnKNf`o*Eih_=cijIwnhKh|1nOcC3O^l6=gN;p0MSuq>1XN@cBqSsh zWVEzYRJ62gY%FYS|M)%spB?}P0w4$w4Gr}X@D2kC8UyN2Ka?;;K3J%~6^N*R6=(p| zI~Z6vcm%}vNKpT=5(@AR`d=&20Z=ed(C=X0!NS8Kz(OOlLn<+#VaPFAVMSHGV10B9 zV1vVs%dHiopu|z_HD>2<3Y->)r;1m**t`TebK>UJ1yM^RsGCUs$amqwn*nZ_UeyQp z&AM)1OVK12d~HbTpWC@9Y#f;1z11*t`<7hPG`O&L$1SaC?jDj-+&r|ne~$rp_YNX0 z%->{!hlAz(n+W8rm@p6t96w^gvIWFp|0O}M>huLWrSYayV7#~*4#=6~k_zrG0pO`Q zf6PFH$j3901ai5UZv8`q|5^f?e~R#D1%M3ww>B{V!hl=#cv&hs$w_MhgDZlCBRvHG zj!@$q@obxGs{&wY2`9usZyPDNyTp~GGC^M(k8e_Cv$DcsnwrC6T4%Ra)(lRA0$}mI zlEirneRqfahk3kM&yw|8SL`C^DVim!b#NdLS+NR;V30Fvx)K1jgPo+hL1y%7Nv5nVk$rjRd6HfIP(m0whW5g& z_9z%GOIb(q71FMpD&#E@(s&_65W0VEkn8^30W$jK$$Gf3j}}Vs5sDIOZib2+KaDu= z(<>?e(Ictlk*6j!`2xRv4{`n#Q~QyfaN&%gD%mek))mS0BOVe>!pO};iuAIV0jEl( zE0=T{CK#vk5|ca-e@GR6hP>xNgqOD>O<6>F!L%^$HaYyM(U+@iyvljNZJC8&d&y(S zwXUVQ+?Sn!q0Dcp^=rf2y+G?0x4;pCBd^Yc~XFzSeR!DJUrqs(^#b&hYyx_Vbue%sga$fiY@!glV> z)d(*2ij3(;qc$~L1q;}L&vIHv^JwBDgpzjRkVF)o5WXg#zWK3_p8E8jZB zi06YiLYeHYU+Y^fOVqT=lGS-Y;?l!n>Hq%1m!IrvH1T@1`pr|qReOaA#_WWeK(Tag zK*3awHPB7+9RAsMJznkncFiEZ>ClmoeHQ)<-f$A)j;{p`Jzqi6g5ka1mpnzqoR0hy z9JRI|T?5l<3bp<^ylGO~I0ig&uc^G1Za)d)=6SZX^XfSHGT5UxILo+NBtQM+0yY5QBQiFn(*mY1(-Fa=0(5w^^r;t zLN*ro@45&J*R||=m&kH6v?85f5wH1I)!f$dnfUASq0n2Jp0~Z#f;g*CWLiHSF0#+{ zsO&kHR^bYxQAsHnK%2D{Y!uEE5Afd~=Bm?zl}GW>`j4Kzk?;)m7ZZU4LE85Sdcq6R zuldz0y-Rhu_h{$(T_pOvE%Q55r(-qBJ@@cqOeU{}<0DT)u6H$y;j5Ber7xSgQ03H` z{T|JoKI;z-7egVtxqbR=g1Q9wgEbCQfX7eOl^Rd_n3o&l70+w9ZKF>^0dd*0#8ND% z4T9Aul!!rFYMMNTsvmgMxcp9S?KckJkZQGsHQQ)TD%=T)+dm#~Nl#<+NpCd9t4UYs z9=b#}NBh#CU3Yd5ID=K)xEZL2TDTajB~o`LFZ7jF`<~rUmNJ?$bQ}14u7q(0vrAu1 zQW>k@eV_a!)bBKInX+XvoUBYdI=eSY3~#IRW^Zh{N#Cz1Zy9~!^DDT8x3-?NZ;IjF?vyXq9kV7M2%xKC?HGUx4uEE+L7D?4Z+F8EcN-t6H1?pokX;n*KBoQVv&QO>*Uj9iy=E=-GAB(2IljhZxNOwV z@map=Oim{-m9Eshbho-_f%OkvxVeI~&z_<;-z)>G%wJUwJtewg9c=`UpM>{Ff7i14 z72fjw$nb&So@S)3P@k ze_EE5ZNT8T8ujg&$YbrdFkA?O2P6jGCi&S0*8rS+K%ic39vtBhWK zv;JZ@c=*86J$+D>zqR1+_XZ43R2_}ik&}pC7aG(u8h~~T7CqPSTc3-UrDiMrx1-;` zHFo}k_2W|(FXvY#`+xKS{;ymN*8j%E;ACU}zjQG;+5h2Uu=4zW(#3ECr2YRc#{a7> z#@{sndF@01+1+GMZ-vgD*)!mRgo@H%7Vu7X3FeRq(!E4ZmK(*wiAHbLR=-je&iJ*s zkW^db<5Ad&cSUgp4w1YqPrZa2{d{L3!#)|m_XUgYOKRxa#mOmUiK}1hET14rlkbn# zC!8pQ^P>hU4YW7jY>gK-;nP}3(hVtXax5tk3Ou?o(->R<)lBbz{Dp$NA^6&ABA$0b zRc(NnEU((HIR8rG&P!^ysax2AZvJ}{+O-ERk^JL{mkQa z=&H3wop~z{B;#?Kk~D_cR+V*x{{kuCHum%iCh#+ln+yuvm<|ZE21j?5%D+X=b-7-|SDX#6m(ylZwrW2=sQ#^;{9 z)^B`1_BIv|37!;SvM$+Ji#$FDt%E+*PFSDtXNvOSVeK?Td+zKGwHC>Y6zXVIA~pU2 z;9m4!YnzFDg89sCeKDsjaefdgF@j3`(#M=iA7X~M@DMSnwfsSt|%AuUaX!yuhrL{ z^E_~FmK6)Q+95) zXup(9>z|vlfgxL@)oWr)Kc0p{jBxe^Q&aBNelvhGhz_2k%VXROI*NZdjvWD|8oz{S zTk=IMa4Zb^_9xkIChSF9Y-biG!;mluDp=U}*BNtyq^I%k1arq6oRv}GL{;@H2FuD} zTdMr1DmUl&jo6>Z=A$1Q4f3m9i5x$Cva^;(tzu~6AC+C&zDBay6wb4slw$CbNK!y8 z4x7W*k3RPn&MfV-jik9x2R43yA@~>%875%KCar%3#X`)PG7pPuMwSly>Ra7O8PCFj zD!+x!zS!BxduD3`$=jjA#o4DKHA|8r*vSR>#$*9|SIUR5*hEJuZO5HNkJmKBMMtl) z8;bUzTkh)3o9(1ouY^vatT{KNQ{-EcS%cGB_9k~WM~aBniF1d!GD8@lk`2nMAHIMD4uXjX|Ilr6XpWg}0tS(J$BN zIVYXGn)w$G2gZVIxB?OTX;8tt&>fV<;9icUBVVTqzKQlKie8Ji< zMl&>(0Oy-xN|cJ4x8sn#?hC;VJU)ZmFV-tMmy80zg;3yA`6G6|t}*SFc?8i+gA+WmA$p4F|O_?grGz@$_5!3-gv zv9f&u_7TM+cE97?XEIIKP&@Vh26=CRY9mgV`Z?z9a zqAkCqZyiV#(lb=gc5@@1I%hnzW;)?z#l+*%S~a% zC)s!EXjkj%!~|YB8VCajx=}kZ4cM7 z{|LWT;?(F&ZI_O7N0gB&hwt6M10pOVhIgYfyLE1$3*97R^vh=*`qCE=GCz ztvlknbR`G~GcW)3o}{-i%|dv=1@o>&w zsed4(<=uTr2M5~tOOKocPFAM#-?i>S&{|4s_gSZ&Lbd`)xwyzX$GzqCpwm6!KewIy z0hID+M6C-ge(6AA5H2WzBr6_rc;t0%&DMB&qfFWM&GnBZjdmZtT>8>?sgavP)Wo^T zh&%0Qcj&=oMPMyF%;!4*)k*rHDn)RDgaFoV6-8;;!Ig=qsYlCi-#`Bdx`a(2p)-`& zL#(1QE<$oHJVIO?h9z33<~(nNw66C;FjUv9pPRSpNd*5=oSBKHx#0dY$5xaJK{@c| zSzp^ZdeP5X`SL=uF#j{)8j7`+jVM!k%%dCTl9$Okb!!oUB35nw$SY_zYdchj*_+qJ zM}ck|w6n`^M~rK*y;6h+o(mS*m3lZpLtCk0hGTj+7^7Y3oUaaVynRLK^Zt-UDF61Q znPX${i~5e&d87IEHGin3w$tOvi}?XJXqzeQgec?{^?HZ{P}7_mLi+( zmDjf{XMg+E@W5lxq9-?GXx38LJ3w<~p~2Py1=^njaYliS#z{FHA}`rL1KaYu>hWr~ zs{dCX|CM*i_P_To*|^xac>nL*O9-U&5BHLj>%Vp{e*@6vq-3QaP!IrM0(k)boB%K+ zTtU{J04M+q1SR@w(?4OZ9>|uz!(4xdlKw~U@BUe!|55(sm+zpUAhnR!KPvvG3x9{X zGNF{Ap&;nczrb985s27OFwl^_LnQrsL4botd=CSQ1Pujg?C&_&zg7VN2vF}J)v(Yo z=l}rRI|$D84jL8~3KIBT9h384X1+s3oCcW0jmeW>~{7IZ`K?QkIQ$5;ClHly^|`Yk%;nzv>RD z8l2K#q@Bncq&YxYQD-I24Lzghi+E7O-lZEhVpRYbr{=-Yg&Q5g(T03RM<>nM2V{cv$B%*lfKc8?iW>l+Uk1q{nd3Fu zSog@d%dd7dWXs4(%|kokJ~c{>9PIH;!)LN0gOfI)EcUr&Ja zE{opr?WLf@1v9U|;@>s(pRZtHXCB`}4SYxAi7S-p^lonURtNkV(ZOo+uOK)o+_TaT zuyxSHz;0Ni5ygh$o*DQUR)VY$*Q>BbB6LyBv_H~%OTTFY^9N9&hqeGOezL$}?ech( zbcArv|1CkzlVW0xeMsrqw_GzITwEQlyBU|o%he|pSYMO&a;#2N)Z2g5(lag_74qv5N0nd*&#Zrf4+wsT`1bTP`6&9H|eT$Ow-ZO zeeLL)6US5g2`6=TUBew;&=ptfi;3K?w)pD|iXwu1S=70^2C{oEtGFFZDlOV6 zVZiTO3{-N^2b%5o7FjNou5&0#30!`;f^)oczY1GgM^|Zv=Z5owNvhXoj#><)b)mdf zqe=}nvLuzB4bc4&YW$2JbNU*oB0bLfqz}Lx4|Lqw-pLnj4I8q|eryN0e*nkYpC9xu zU2dA^MVeJizFiou5uSXXMA_Fkt^;6^(ls*1TNQQ6LqOSiWVhfe&_x`9fi$9)Gq6yvJp}d*3It-!A zJ0pJRP$4{ORwOw^{no}wK$26g<*LqiKpdc*>oc&=m_7I~-e}vI=F>ZSSgfxaCBk4P z3a>KtP3~LtwxS#z8Y6cRnw9cnigxM@;aeY3HPxYsFE1h6r>&fX)kN1U+D&czhnD2& zOU9F%zABVo>{fwPs=_^oABp5{RPF@!w;+soI`%J4MMN5}7%3Xy%~NQlnKA7sx5Kr_ z{)5+HnT4)%w9`L;aop<@ex7rhMl|N3`S~05H|luTPi494+8UizW%=r-4yeg)``Hv@ z@zejJ@nI4t+A(!%=ERBXxU9aryAMEcSH0Nlc@(jaE{Qh)AE9JitP>(wUQ z@W7c!%=_D6G^J^~9@v#&;m@R-x<4R#X3fAzQs-hy_1E$K&o%m=eT)L`bM2ijMW4Ru zhr*kk7PcL!ov&WI4XciS0AG(z-CR?`-JNZOm5I|`uTVdTW%9ka67sqT7TbjZV}%ed zP4%{2eeb=M&e(&DV3iB+E%4RBU!YLz$JmPVSuy&~@J5?1h_iU!e!O;+3)P9o=y`F{ z+mh}ReUpp1k!yb{3(B*}%uHNM3?3T`I`j;4pV-+oHCb-~Q_)bq{)o<&kr8sqtNPyM zb*M%QNv$+OoBOwS@>}h^nAOMJ*3C z4v-a~fgMus=x<#xS%Y#2t3@VBeRkHoBex?fAr3JiX2RiFTdA#}7@gpR^iNUY;JZ6i zhM&9|vi;ksyxPrC{GDaXKdcY*{ZB<)4)jW1OmBBWswNB^Ndkb&0$=CDj#qXk#**Z^ zB$*O*DcehvHaC<$28EV=jqf=U!2Uu~6UqZKA&I!;l=uU{bB}jrj%<{%N0D=MecC0D1nuKB*osG!Op7Jx~FEe0b= z6CDkUw?X;dExLg@kd?TW7Z&_k?_zx?Y-`- z0`ACZv$P5FC{9;Ag#08a%f?Wa1{Jri9$M3+RSF2CIV9vsiE1s5r5~Q$et3ITU&0;o z#^7{=g#_)0Pm48XRrwRM$0!T-3{-x1@w5}#?W76!t-DH=SG9c~XAr~2Y%D#|_e)w7 z@zz2cG5792^L2F2kZPkCit_KQJnKd- z8raX4yYzt;&uTmreyqHvhb?)rVMGW=D zFY-SC^bTFxUuMkaEtR?pJ;LtRu(j%S@dcQifCJR@C^HSCYoXNRJN`P)LaCYAVTVyY z(at)8W53hK7cl{ObCXw^OCl#M$3ekeyhT@|H47Ha;bYU^ZcuJ3f(XO-RylV{V?#0DY4uJG>winA$tX2<_%ab z)CH%(34i(=#x;&Jw!`5h9wCE1BvR)?-J~2&Zdq3izRgvz96^B-kCL`9V59Ktx z0bmuR*mHuIe{wG6; zG6$)#Kw$FDFZNcb#sZS8HQmktZmmM9J-(==DLSS3ay8vXvdlyBEAo%=F2Au3(l&Ut zMV>Mxyt22IxRtSgui8zj9$IZPCf^*{HFzf{Tu-N#ES3OOE;7TfifOx3J)vDTPVJ6# z>5faRr_@yLj-YqTXw7DG%|Mq)%@tj!!_JEdHC~0Qix*y7t=N0_O($_Vsxs0udEZ%$ zSskkIYRi+N8cF<>P)P;m4^5}v*bY_=4F=nelI zfwkrV9}I5QY(pw!?r)nv#Ro%w3zXO^L)t!@!JV2 zd)>X$;buZ^+w+fOSwCjW`LmRN18#t%(?BS77XaeidW6w(%fzz5c+K{FMAICHx@gXe zR<;J{XrjNKq#%J1TJe~;oUz)hiIIzB>mH~x?v<15NJYY0y(TnG4!6;t`DG4azfR?H zraVZESJt>uZ`UCfs%<=Ufp;Uu0z!y#~5CZya#g`PfgHPALZ%m-R_}RWK5?6;~WhHEJ>zk@6R%7jR)G! zNjg2+6w}!)mMK2%&K5J^heA^1V&d=fj=_?PNJs$K$0WSocd zGrA(J4v9Lx;t$|6k!G4hSWub0$s%g&TnxU$&F>cmG>|DYfBpI}#kOxc`;nhu7Crn{ zNqxMZ)?W2w>xSD~g|7YiU2VWyw4g+#7j!Q19{{jI2o0o^;@{ET;1HDHBDf2OM!LAd zO8WF3SnH9aBGnhHPz<>=BnRj=%gj+sI`D~ z5pTt20obAL?w6!*XPkpQ8YAFYjlk*!Ca=i@c;(btQb(VZN9TdG#)TDAyHBZ>PmJ@G zuTsGce({`-q(TCRM7uky>`!JKEbn}xch(X}OJiX3OK0FjvPEb)I&HWPtBkN95LsY+`Ry6(UaP?n{BQ@4fRt1ND0QS`TD|iHl?M}}r)zcwrmQPF_*00&K zx8t>S#6KG$F0xE-=bpe!?1g1^DSm^>b6}!hHu>R;OycI^izV5w7GbCEZhERpdK5IY zt(dgT&p~UaBP!!#17&Z~lMjMZDylI; z`zPVCHA5fz_bvw-dtMknN?cL5-+^uqZ$e4kgdn*op7HFu``q{3ecBraPZlp{yOkHI ziCT77UO)ufvc6Xl*e+W%0*fS-zK|{H^S?0_b?dSJ# zwC&H23ZS$71TfyP+XkJy-!U3-bq$)b)AdR~$T&lFiyv-wwxY=ua5zYi=vB@Fd~*w# zW)*`&6FD(4WL5fYu_?*eBP()mO7HGQR|s+exSZj>lZ>>Cm_q(+0 zj=L9_vpdnTdn4%-X7t94E?f^RJ<7tFKjeO%cqotJxOC$2U<6dYjqHG*lkZ1x7C_k<-uRo zDEzwBs0@n@EJZGwQ_-7<{U0b?apwY^%iR>p{L4Z$K8(mn|6H^S|Cn<5;r(ee>$?tN z@ej1kN)uwlBINMs*Y>c(`+D?awyoaH75s3LNS8Gw^taa6E}#`5F8X&Ob7QkT8=`}k z_x#liE_UNFT=_Avzuxz;HM$)LAsSaZ9v9kv0c644u$f&J1W8pd@!35_>>UW0+@>G$ zT3qHQhS!@b>g9p*Hrs=h)M9s75_i$jF`y=_`2>}$YjA31VK8zbA(@~#bYF=h;C~vb zxlBli3XY0RON#|zprH?}WmZ&VG@Vd@D73g$W)BhJClY1LsXwI`nBoA%aX4maA;HOa zyski9-*U3jAWS_g9{@6(3j&B`52%>hGQA8b$meM#KaKU%mzB)bW90wE=`U?rwW?HjakE}sbi}r0$)xm*X86*r`lsm!3GA6NqD|UF6(+c+AIl}V zjNc~~(^z_`Z5klj!)zvPo9F0XGmbw(&y|wFlp9`Kz~z_Va;9UV)+c{=yTUOL+vhU1 zoiH@&6OD=V@;@rbV1$0z4L z@h-n`cH?Zfb~MLrI(Bw|H|p7NYg`r^ux?vP=PRN4{YKK5eDfTH6K(@;X4C1spbR<3-?Dd;W{RWeRN5(j$+ z^qXCS%dVlklYmqlTUCmi9lLl*OhBs8ysGi-)XhsAY2W2&YtdV#Vb~erGddw2?vSD% zm*uJ|Boy`q`0BKQG-R0UOxzqzOT~80AU!(=Twk{a2Yq&XRhzvn*BHy-Hu>3x@}WVL zx{`oX_U~EMRYlufFzGNQVN}VmgK44UK0`nhErk=gj~an( zJvws$0097A1V9Xco>K18Wr~z2IA1Fnk7m}4GpDjU>>eT0ldI9if6nV;-viUubad9gy!7p)tE2idoQ{*7PXDz z^R-sPkRP{dtU;yJ3Qx7!pD#hF&_+l^5UGQ8&m$ST@$Ga6~aNoliH z#Z2hvSNe;Y&I$POOVY9P#ktk!Vb0kUfEyn6Iy=?_j%?MfBmBzk>r0|3gRYMCAAkn% zxDoIFq3kW2;%dXL%|;R|1Si4WEkJpZWu*0Bt`qKp;6g6)aQMiYPS*QXC4gbQ7%9uZ}BTGEO-=w?vL z>;*;~M(Q%wcx?@LCSKe6MoIH|UP76%cJqvKEY$+k)E=QMrhzP?puJD$6(oN*r1yI$ zLQ~iVj%HOGscq3HnJ{Ho^5=ZomNPp8_lV6}E*=@AX0|fP2oyDh!hl;9f++x33d3O$ z5#z1_ofv(Xi>l(}E2`Ig`n*c+DZhs(3tk;t^1fMPmz*L34TVacQeMIy>s8ef0GRyi z-=rwMOoUvawhQqH7UwQ)2=Q~+RW{N7e}K`o4}o`+-rn_Ql=}R|S~?UQH~wu_4KSMIR6TTuaARTnVFf{2bAEdmCOllRCm^FRYTt zm2C41E(h?K<&Fs)<<|P+zMkn9(mB;TRj=13#QLpT{#+5ZtXu0azby=+-L7b^#^JD~ z&6jf~E>Hs?BU>rj)pu0rm0Ngai)tcbiV_APABmE@Ya&^t%@y=@3xPsVw-JZh4#WZQf&c-Lu4q zrU_i=FnF$3TD(e~NB)LK(;EjP%_Uj6LRJbLrewznBail~!hbGMSTv3JwC&%Dh0rJy zj;qdb>Jxw~BOwQG!rl%i!go6kZTO~vSjPttR4C+trZ~d~meb8(q^J4qA+^^S5QDOO z;rmw(f9g|)YW_8Aq%ozPS z9Oku(l4jXvtogFB`wH4-NS7!SLjE0Qxy4cMvM#oHdt?naK9w&^biyr7`YM&?U3kS- z2dnbW;1k47QSmI8(sZurDJ2zgW$%LQJ)K2?x984sv*t;-lkMfw!+DI6pJ1hLF2_6* zZamhj-|+O?G`@$!y9A)p3R`-zpRt@*|@5C^39 zYL;%-hr24ZY4RbA5&ae4UY}3{3XJ)7)a!6E+dbn($49uR9^8w+$Cj)(&u0+il2bC@ zJG7YPH`AEiN)$6Hafs4yfPd0$0JFn@5(2b*a*gUiW|)6WcW5N7_rK8JD#h>Jjc@pP zy-ft@6c1htpI4Sz4v#SKF>qOWo3*N3Q<9)No>hL-`W~&zWxnL(m~SPc5go z#)?$`JmHp}s*3!hXp-A_SvX2>H5Lw~&%@#5oA$-{=bkmSESn`RU!xYT;)8ARhJJ@< zy!=Un*cSLFx1JBR`M=+tz%^1jN#Py|hFlu&^NK`3fhhYt#Vj+mf8(2+xRZ0zG)drK zmj|(N?WlO-5S8qfa#1r_6V>paub0kt$#1(K+U08b=J2$d;bZPq2gc#?N_&Vz^4Vsz-A-aM3JwPz|pe=x(27YKv%JCr=5ehJhe*M~zI(jRxk z#mAfUsrM3Rq`(yrcY6=zcV8r3_Sni^<;C~zdh_YC$d~6f6xr6}G^D?@)~>;l3gT46 zt0UpawT!|2X-E$WfCysWU)OiDeX=afuQ{1Q8>RL zZBP2glry_)D@SS_OPeAV1xBbuv;~etM<#ztKEank`J4=~NWlqA;lT)RcfaNJ1T0u< zr{z-P#uR%!sgRG=(nMz!WfYpMg^n(mUp&g5MQ%?+N&|MLTMyFQaTohLs(dx4z9$iq z<#nk1jVErZ9s|Eg!LO~{S;b?uuGskfl4I;=%`|(*a@i7^x}XA=f){79HBYmI0dw1C zGl#vJ4p=VHhPXFE`?$v(=+aJ?oE5OCVIAWQ+~t1lw1yv1+o!IYU!Gv0w~Ntxjfr|# zQ971y9O{aqZwAnwYb#kSG5RV=$oX5lpyhhmhV)R>2+-!U6y&dl#-7SlfDT;*!j~7s zuz1+c@ntNInd$!;iVkP#3&+NI{nLF|_@Ix42ys`}+WkVAi9! zu~ARgaC%ukYhCwHv%Xe#dSW1lB4<+Zv5;9IgFP&Pb0l7Vp#3M+*Q3cS$~^%ozV}0z z9jE9HXR0NOVj04p#odKo&TiK(7~`w_llFoUnEbI0SgU`Bepzt7OPv60;-JLiWR(o0 zo@AZ>5Adxu!nI9yjHWRR=dXU=asnnlAz!I%q;v_KLT)H15DU~Oet$Zi*FfIZJQ$RR0*yB0JH{YSDHlfGH;pBHAnkZ_Qr}o zDy`PvwzhUb4Yd|~$LsmP7nJbSF>_VN#Hw}bj3d_cSslD^4OJZ)Icgw{+K;c1wE3UN zO~a9qF+|5JIBG4ZzwreLib5>3R4d_Bzmq>lw@v0_B&t%EijQmd;JOI#k|G+JoIyzM#PMSI?S4J!+>#=ifdksu6c} zO`{4*07Q_E6a8(jN@H7~DeEkU0Cz8z<|>RQ!H%w${{R~aJRX-ANp4KKm9I&T6u!F9 zOv;}53*ZHv(W6=}w9D`ruZ2d#F6srgsfh1l=O&ps&Gt7>ZVTPK=r zn%IMUXv?VPi+6D`@77d ztw-y{WOKWvGg2dd`L}0HRY+KtZV%;{+xm9-h&wc|#P}YAL#`J6gBSp+JG>sZPm|f1oYancDfc6a)D;e z@cWzz^k9{_m|UpIxq1Kz!ZT=}Kjl9_f8`nvo~1$kwxVWIjjw&zsnPHDgqxSH=1L54 z-mZJ`!RBuM>C+9jB}s>+B;UrsQVZxtjMYT*^{vnAP-8Ce8(Si&R5_nV@tI4q4-<6t zc-^a2i&15n2wu|;b9AQs&JzWN`*Lar7Pwc*j*Wq1Ia}d$NiLpDNuu!?ZaqH)eE;n- z4)f46*~(d$rTvNNOlhsMk}-wZ4`M->=#{GqAcNx;M!o9cy1c_%A=Z5=E2Nw?yI0eQ zp2Vep%GN#t9Kp?CE0=SUdsRF|JZ>mtTJD;0EIh}yqorOXa4hT{yP$pli$k9!am(P* z>=ftakAmk!LY^RgDKT)1?$qhq@Nm!f%b>2|o3rbaj{Utl8BAUrpDd`I42ENE-vbts zUAw|-vFQIjw0xpj0W%f0IAO$niK2>I<+M}!=>2In>uouIWODvsXGiJJf;6n^26~C+@znnf`=TTwlZ85Tl)3!?`NgRZroVdB0;wl>uMiItcn{-suq#$wD%;xy*r|HnX-YuMGQHU=`e zXywlGb7B`)ieSfk@9R3|O$>`%C|K+>ke+Btk8vCpT^!VqKqnyXGwn7|eMB7PR&=L7 zt)af|X6kn%B1=RZ2aP-EBQXC|wu=Hd{q?dQY?+QdIqDYxruW zU1Mp?92JwlsLdBYydixti{UBg2l;e*bgUSfQmtNr_jsz1y$QmGr)4zU|31eM(gl?b z#wF~o9jgzvAo(j{kWqecJG#v`O831)1n#^s96gFnM$gdaJf5CP-_si!|$oyH@f zG5GSI8~x%(P!zZKp1xit%-LC@Kx`&0?$Fi~wTC9pMj+2k=~&ckF+9zUGSh}b6=O)p zR~{X^mMwySG%CKifHz`o}`FggQ+&i~WK(l|AMKAcMd5yX3_eX;@0r zDrIX8RY~Rd89wbDSC-L=XR}@PiekT92(}FmcwN2k>qL!0|6;a`#=02{O6h*iYRL%x zT2yDNW*zu6?RSsPLJb2Q9q&p`o|eb9XUjl`KWLs0$^(DLP=Ob?(#XtxxSlH_w;#?&%roc)|1o>mH(=Qj%#SlaQ&rV4)>8t~rY`16Q2!caQV=}`hrvyy@R<2h$! z&4M5IKt6a22{tV&3o4`h97*STAUzzx!wSne{H-MKoT8fE%Cz9CR%(r%^%c{*YUeJ= zPNM1#pW}M;x|Zrx9qBmYy#b&`r0g7yV_1{Mycg#ZB}JmWyX4MiVT7dQ;n+VJ^dA7^ z*kY#FItFIIW%FL~^``9vfAlP%+#U}`K7eL06G3S)HDrb)gtGYx)ZX&c=mks&zwziVQ|mCJ9?&~!F?Gh(~79XBuxtp z2^o}SUu$sM@hj6Qy$xtVnb$}qeP-_dUg>5U;eO#0VrN7@lsS1S2O|!yl9}+vUJAIgC82QK}tq~njXlO7S zj4Q`j(B7*qyNN{SOzpg)Yh?ZJXKI%9E}m0i+Xdc5_0Qvt-9nN!gVTh$mb8erU-t%L zQK2vW?1|`SG+r}N42zmm^Xk8Vqq1K|lXi_yo|k{{nvL?{b`|Rvp0Wzq$&!-MH&(Zp zG_B~Kdl!6UJsw?BnDMl(;;HV6uB_4wa(>4%E_;CzP7=HWC1mv1%tocX{14f1o4;T4 z@XLo%fp?4Arww>S2VaFaCKr7bEzD=8HGp3uyk>v#2?Wm^Fav}0!oj$*8xDuR(NFXl zW5a}LZuD<6Gc5v^%;SvUYG}Wpa+2z#J8n`klYG#6&IzrPk z*o^QL8|zeaJs&Q2M>=f+QrJM6#`dKziW_#Xexqe1epLHK`>E>~G;bDHIXky4ZnQY8 zH2x$X08vO2%04iuT!iZ-)5Tz$X@)h7IK1*!F=QIsBu;1aox;>@;1qNL44|J=;)}=mkJhRTiO5hgPuF*%a$sxS>Mx z5(l#Z0Py>b^XH<8%$JbO+}D&f;aeBS{{Vkh_x=O0zk6rjgfZS=Jx^*YZ#sLqkACj2 zp*=SiXl76t!`z367R|$xxe`!j|FHJetjt)LWCX1VNGV7-%h63sXI#G&Mz>%2~fNc_mv_;Z-}^1nov zpw5B@$9srwg}aC>zZD*ai3vvSZYH!`rT&zmWr}dan2bkZBX+b>M{>egrIe8aUGE2c z#4MeH+Ngj$PNoy{R2Yr8{w;oS9Mmu%Ba19-@uoS$HhQ8u+R|j#&mz6|G35*8kee=3 zljbequ_b>ztC$d9%|iQWA(T6#EGHwPETcR@JyudxJru}=!>*JOk(Fmk97Z3ZBn}Y~ z5%EH{Vhm?=6-3VVLHu@MnD?8}Hx-<)sz+vQZv#$sV)5_Ly{L~R`Kqw*Nu+-IxLon$ zTUl*7SigroR`Bq|gskk1ce$zpzN*G)pKmXaHPDK=oqX5Ki$B&>@tH7{plAW## zt0^|MTHA(H4HaIkS5JwF-ls)z3Azm!IydpbCrVZIvH4whQj;YO`td##*f; zn=q$ck#DveQRoDvIvm!K4zNa>%5uewW>LyO?02=u1UZquLz?2yNh3{#E6yJTby7%2k?i6G9PeD)kWwbO7x)0*cJ_-;X` zG}O4JA)mdptW>a^u4gd!$JBmQPKzm)K$=UIKxf(6A(3)A+O10NqocV#0XDZD&mU6Y z#)Hzi-=()vwu{NChQ_L0#!&TQvO8j;27KMDtL0HXgx#XIGiJviHT!JknU>G&k80cE znnSW`(7Y;3U`1spfHOq}%@)e#T&+%}5QCG?#X|_r_6FMMnrl$T=!q2B5fR4wq<$$&*DK(P+7J4$Y|=7X^LJ zCKZ(&4Pt@AQbAoQPq$D!(4Y)NWx^CD?NZF4zL%YIvdR1?bkebBwp&D)B1o-nVC7FV zvi|3gQT9uJd&%D))J{)fN}mJvl}^hWo%p0(id_oiF)R^cP`4{L_x)@Z7YDHe z3pbn^aLy*7#Lp+l$oE;QflRrAy=o#GmbiEaen_cxwiTwp@$vi$A;b!v?^5JQ1_C)z zLjee2z@Yg5?UlG}ewOtmzGQ7fc|>P(>#?znF>xVAyke7^f|=UA90fFBXd3bQu& z3{p5Ls9;Su5IrWd{@|1srIPCRDg&Q`Artc3jEmJ^_pL)(l&r4E{{UZId6u#GOE1|~ z!{StxID{l+A`tfrVqcT2!lIKUkYu1s>$IBqA;zFovySEr?MeDC;RJBg)Fo%*vgXGDF2;fIJ?J-m>qmq#m)GrXn^8>m71B*Dv`bF~$J7>0B zghSfqIF?D5)gqE&XbXjrZDw@kEdkQKbSya?rW6!>4~$LoSXK95)B3Q88G8YkVQ zKmrdRi|D(3GR5lpCIQYsm5KDl&_-v~i%)gQ-?Efy?@_{P3=6}vCx=+GP2){ijLVm- zEKEE7?UK?0qmtrd{&h$`8Nr<{RkT^{_-t@R?Xr7oP$-cN0>~p^G6RDOXmBZ!F_5q2 zwDVYIltUG>F{zdsa&sC1ZL&sT)C(0^I0izCGDti&!DTyidT@%Ri<*fpT2ReX5Uskb zP3Rx;g6*Yb4LpO&$a=XEE|B{;b;Iqn8Y3Ncx&@+8DUZ5RQ+MO?rww7Bd80Yqu4KM( zIf0+*L81!@>wHMlpI`eGP#XrSZ{W-#gG@N`Hw6`M2bGMD_=I03q5d~#(l2pXjGg}z zp3&)+aCqo~E8zKfmiBOHQ30N6K0`Mk9xJ52`-r!8ROYwywG^+U7)P?e7>Gb183`b# z$~h!l1?~BSp_vpKxv(*|H<3a~0xVxq+v{Es|M6-*D}UY9c?qLZ{)vXY)+iJWL{Wcb zh0(vr@0Qtt83evr zN!*>8w3QS5$Qj168`MG(q(1<7rw%I0v(6}vdhKq>>gh>eowUTkH|j+5fSr$z0lP@l zV5PUZ)3}2P79F9c;$&P0ni6a!-*?#ruk^4sqY3ozzUZ%WCo+ge20>#`m3G|SfALOv z+$l5fJZ8CkVS3=_IK|8K?Qw5HgWqlF?(&}D@N>#D^*SyZd!VBk-d=A(OWNP@Co#k; z=~HeycmJV@m-D_AZ159T<;I_=qf50<#rR)~`#-+s5&pUkcKfsmn z!x&S~7TJG*L*bXOH&hexRh~LDx;n)Qm7eia89_A!v2q6W%EjG-9?gk|%~4WKotyJ9 zZNj;0B*%Zf=rc^T=c`3PcuaMmg~sL^>tzXB^j%c*iF4)T=xE1!eSbIXh6IXTeUFy+ zGSZeFS3X0Jbvj|FK5*- z0D;T>)Ey+A`OHXTO(1E}NUZ-FCmfFKfy9aH0Ygp;S^lK(p*083p@9P&AOE7WN z4ljGCZ)Jz$WYxY4Z~PFQ_VrI16vZ9ID^974FV>lea%+dpdvvCw!RBfqspy=Ri;9S} z(-DkUP~9Um^RefdE+ecqmS5S)B`tGJb)wdBnmzjhG$G|$ZwJpwc(MLE6_iT7*dKc4 zx%TNHCM%tjxV*={of32t4Y$xkHA;k5aLI`jRi$yeePswz9wq_7V#sR=VcA$JMhFxy`jCqph>7JWnmDz zCpF;+tHVK{MZJ7i(ht!X zB`N`aYr$O^M?nP(eF^`iLT(i=z%p&Jh#SOl}29m-z);flri6L)O{qmTaLAlm2_n!J zziL{)*G-=Q9oziOlER+wpC&k&p#Bhx7xW~EC;MA&7s|v-Pca>mGR15gm ztRP5N@5SxW5$Dqfz#SIc0v9hfECxS z=e`O_cC`26Boyj;n{GFlHDq(5^dCUdp3!!ay4=lLQq2*-79Vf#3=Ird8h}R7aV?Yz znQ?D$pgI0_LOrbBEGL(LX5mtVHTlLU#`($AZG&vI%<8PiRR;+9jFI=fJRRAoVx$W&y7E{~S7DiyYYz9vSe+cHmWwnxNb zBMSq4=pVal=97|;Q~^@UmZL((v9QWkjE3cuipJ_)uvO|<^GwNPk|~2noND7rD&r{A zSzA$(K$XFZ*yMo<^+6>45z&J4zcc+x52wp_$BY^4iM?~cHC#)}E4E@&ent5|1y{e+ z?cHp!GhFEbYa-paZrEJ3r;j0bHv-NW;)W6O3mXt+R-l@jJdj`O3Ex+;#xtPp?L%Egs@;JW($ zK~C8TY%0~y9%|T{TjcPS$#)5#eX3t+%8aAwWam{LX>JRa5R?O@1J^NWf zU@V&R&*CfUhU?1-M7nli?uw>wNl@v15(_O&k-=}@aS~5>tQ+jlBHrG-?h-a}~ix)KtaWqmz;%bbE-eQ!DTcLroN1ol-tUgauxIH-obk)p}P=doQL<$|m9V^XVy z8a32uukGq(JfhEFi7%u(s5E-QV_iddr|hNQW>_25Knz1C_Y|5@n)x;)j#l&PWzSd1 zAr*rwMGdsGAF%9`n$04_$!)cD*w3o#$;*RU zR?+59arB-#2+Tr~0_2EXIWug&sGwll9)Cd-)|4*I=6q+wMMYBQRE~O+{QRl=dChoR zv4mt%^WWf{Ix6>{2!D~4t)eB!;_vENwdX{Wg=|VqYh;~|XX6`>YZ0P&s#igS61gk? zV?OK^zQy?)zqC&OYXR%xg)=L3W#(UOCS;H@a`yJ5ss^72CA0Gj21#-ynoFQO%se}* z6cg@TAnMs_cWX22V(MgQnap9x66xg}wh+Akh(74Yi2N8ncCR+(-!9;7IHYEi)NTRA zdb5mSt$i=c8%9-s8Nl?DmeS9?&Pw<{actUk(qLbEm35It&)eF{#nYjHi^El$6A7F; zpWg;!Qf>YQ8Fhwz67QbV!#TGytVzJ95O2wOFFK9>BcC5O_jvmxea@_xOKTdf4={?c zrr}@v#w4oMJv+YqTZ=2WGmI@hJI|Jvw6KQ-PafCy%BAqc+_2jbU?Ad3jOKz2Scp}EpnR`ciP{`sKSNEa=+4b~d{RzQDWK6RlS4KIn zQiAJy9u}7=?T{94jVOPe{Lt2;V?47briIoPvS+WA@OL+Snv zco@?0FYXuY=2pG_RJM2#=S5wumVD#GpRF#$So->upQMkfC1zMSnEdtLjy1IZ-n`#M zcd;?Dk!w~4hpo^7e{R5E z0Ipg7EQ`8JK85Qkg@Ab$gc{;A`91h3B0Ox0dZ*Zoq}7CmfV!_Alr}2eZCjv}E@Xa8 zS(aFy2Bpmx8N$Sbo4kTSyGsggwTc%im;f4(7-aGr^4Jj45LZsadGN|TtrUN~VKjk` ztfr<~nFW;?GC8K`0%?I4nOF3|OV|&OOmw^U4$!XCsjRr2Z*2hs<$`4iRa%oLiaQhS zzT(Hh);?ZYi$3Z(5Vnl~B{ijNeEyU$rz7J7273broXjdm($>hb8mv;rt4UC~`Omu{ zZ;f6%Q8ruY-_Hb=D>mdB9!F#MGoCvR*BSTv0M&CO(Tn^Kjc~qw#wxgQ9De)#ibOx$ z+Bz_8gR1d=ydlcsP8R(74`3dOH6_nO9e|3aLg0=PHf*a#dvq$3iA{771?mqD+6x;e>iA3@8J z;LhGJ)oYwc>sA{x_L6hQJV;5JEKa5YH3Lm}N+M1S{QT6bN!)uU6{R2?Nse@JNI^uL zA*na~T>EbDi~rIs{ZwY_{VS6!&^F>|%BB3yzPLo}-#FYyQRFKVxgZUhug$*`c%~q( zHb0|ha*)z9t0Cz@F>e*!+>p=1;xY`(29Bd?(y|Hi3!B2cyK-#5;Waf*6sWh%9RCL zL$)@WpIIvBmA_v5I2*uGsbT{kk*HHElU1D}3w4-LICLzZ<==8=RrwDvpye-yCn7LZ zAg?06Oqm3yDdwh8a=g5x1)NowNBH4)+2z;$cs#FA!mit>Bl>x8l03qB(_4Of{O_sC zEqY>Cvu>YxOt=AN@mb`V&nJS&?bp~f9!}$;`dFJU`hmvVz46L>u5GFyrFljqMp~YO zA7Li@R!H|f3`Wif)@pw>UOn5>iY^#?+C_7oT%z{ilOSL_QZPm za>IjP`98>R(>?BK;BXRiZ=JXC564KhN#tUC%>rYTu0OkWGiAK>MT#V}$h>DFlEAA8 zD0dU|E4Z>0I+10ps_?c+P}&d70&aEAUWaGX(#k8!JoVsI=6p9_J+=0_F(Pee+QKi| z(KfbAT2D!`mMSSvuj%{dXR96BCHT%UFNlsS6|E{*Og+X~zvcu|Z|8^0ZKL7n|4luz z6&J8(d^gP!)oBXxrRC@yzE^!E`#ddV(nupFIA<<7@G*j#Srb$ssXQtMPd&2h_k7z^ z^4GyeK+K(&!D;L6)k(%v)rP1;D@yt7FEcb}Yi5>SB*s`k~nns51-nd+oMPOKhEza1u zf&kD>-i^cV|(#lNDK-V|K7E?c!?={Y#r@`(kypt7u^Y`WS_awpDM@Ee2Sts-6w>(Xw9fHz4JaXBxw z>w?w?GYUf?Q-_fAEYOfs%U`uxEVlKN1XXZW#;uKingl+(8mF`@vuT97#IQtyCP>Wb z*FfKe+2wB3m6}@nuKK?om-MPcr{a2wXrJbZ;FW(jF=m)u7oYK+XE_>fKW(%ru+=PVzzz9z3Qt)%yd z{6?dMICVhn9PbG|al$$*)$EIU;p*9}$`qU04wT^$Cju!PV$ecP&&a51N=@GIFDg8y zON?{F{&xP`8rr}5itl<@+@E_jGw!->lH<`1NOc(b?$F{zFSQ2x{RS^m~^k4)>& zD7*1DMCz}FqXt5Ov5Sacux&otIsqgPJP}QwW(Wx?K*gbhj_g`owL60tCQc$$>2*3yFMaBsu2%SpwhC3 zpsGR;huNbA0mXn5%6CZBrv&Qbg(sOwI6Bc&LAoDi{pY|UkJ7v*-v(8?Hl}1Fouw#u zZyuS-v9TJjG;5rDqxi=g)#`P4w{k6W1@&)f*bE~6pZ0(A9_kIhPTZ5MVQ|uX1C9Gz zvs6PF)mAkFxP$L)+mA1oz%>CL?}yiJCzJi^b*&SbP!`|o&dt&!$Yjf{Qa$N;*qH0V zhAOuSL%01onOLu$V?lQ_UuTnVCXUUk%`4lM6mBE=6u)b}{qfIGvvKAiD8b={Mbr!q z3nE((^j<$NvMLQ5$$W<1Kc=0xUS4(SE;`=6if>1$9U++a7<&4jS#Nes zpEYPd${MQ-Ix15wOB|yIzQe%~aC^xqmiYuKtMg}qLTr&wkcC3XAO{FcRJe}f!TCt} zh+aWLhzh%2LU)A3vYWr=)>waTAEDoJk`9Z`A5zP48lDZwgc!J8xl|jALKONXq*!f4 zIV_kQ?T^*&*x@rpJ+Fs*ruF@w?`>;363$2E0)#5cPJU}C6{l7uf9}z8hO5emAhZ(Y@e z(MdSOx4_D^QRfh;Q>4e-SEU%j*+yU^?o)fo1OB{`*8yrpQ3q{fGp0v6o|7 zi8nE-{X#S|R;jjDUDDsD;RU9MI5#;Ommv?5_~)s_J&`(mUA89|Q%5YX`1%JA4~lPj zI)jJMrVOq9giKDbpP&6R%PQ0G9k+{c9M|e1_B|Aj>Cc2{xBduFl!-T(trgQ+^BDC{ zq8a6A#bY$e*O7?O%ASoq z+}PHxR*5(CY866s|01sCQp4HhQiB4w^%0njDk4Qd#RSRMBEKFWQy?D6>pN(JLsIN* z`t#^v0_N-dlcjUiu2Dz4rF&7EZn=*yQ|y=0r$^s4G4%*c~9s{Bl;X_5Ay zCUG&}M!7Nh`u7O3%T@8dDC|x9fCGozK^k$5E(p#JI?`+S>f7jU%{goA=8h^YGaE=h z9i3fOKf~>9jHI5ei_>{-Q%3Rlh+Z_gE!pF%<~>6L4UoY`RbDw4{efU(=`7aWwJ+%B zP0jdwJ#DrZhYc+Asr-b|nEcv%d!`m!uhE< ztNz_JA?}eD_-{@Oa!G0xZg~ireCXOwbu+fId?;h@1H1R{z04)e{{U^t4g(zb&C|05 z_q^1hgxPq$?{c8Z#}elo^UuBY7m7w0&~n<9X9Djjhbg{j_Q*-@hG{7|Zio#Y4RO>j z(@w^nNy&fdZpXBfczlsX=?eMwTUXrc263#foBsi}-TGp8CcHZot;f~t>yV@fUrA6{ z@&Ji&Pfn8#^KAYDg%%@kY+&B^73iFq8Eo9ABTAS*e|nNfTT~w)bJM;{q$EpKZcOUj z{nJnuBEE8!d%Te9J?5TI@ zwrQ_KW+-QGb5m%zebyibt_=vs(tDy8HU3x$rqQa-66Cc#1M5sx4*90PI=5fnkB?qG%l~zUBvp%6pCsZY5LEw5w3LiXtx+3S@YeSCndO9G8uR; z-{DlzgGsz`JPQ>i<|;0e)6$tVK5{z`?ywR-?ahJ=Eu@ia7%xA{Byj#v|6tJp82@^L z66-+I_S*fh23`lPSC5QVpPtzf*tI1furGFKy(64tXIu%70E8&rZZ&OW3=TvNLQ9o zVMK2X&;J27quzzw+ZEx}Y zNlo(OjZ#O%01-NU<+R6v(X3rte%kAls3zVIrzK5gI{6D|$cyQsfV=w-)bOI@STO=H z7vR*}E6KkD???dwJ0AaV-7nUEk5iucCa`bWJ{5aaTMufVo=j$li7{?mTbnUacYsB{ zSRd$Up1>(3L=x{`|K%AuAYR!$uV#jE?|rBG483#50Z08KZw^O3n$R{WBcINCZFgkO z!RcM5a;;qMym0#zg&RY_bPgZ6;uVCWhnfRj;>bo#pc}qVyOxs>E%7TdU6j5+MYwsy zP~Md&edh}&qCW@UztaQ?Wl*|d>V%|ZLnNGh`Th}WkiyLHFi}KZ%rE*wuf-Z#AK+e( zjr-qMdPu5F!t|!Z^rdh_M^Zdq=NCd*q?_(>LTn;gFm z;l4c2brD!$fvOfS@mXE|Ls{zHV%J64iaM*OEvt&!lvS|MZm}A8sU)tdtziqQG|V<2?iV+%UHOqGlr zF?)$*b)D&RIiYx^JJJEg#xp3DgI%zKBku~zmrB8zW!e?jx(4H2rpf8q7S@VrVA&)q z;OQXQsE&xRG7eaQKBZqTV?ER1L`&O+A^D9u6T168`0Hr7dNpJuI=RJkcUKEA5neIt zFhEae3JeHGq!bm5Y!$v+U?+J-l<+~< zG6xLoK%21Y^YI;_bHbT&+AER?x==-D0&JS2Toe9!yFedP*j4y4cNnv0LbHQc zi<*W-21lu#HA8F1Ykvx-nnhKE!?%>ql4S-m4+sWln^jy62_n8C4HlESTw!AKZ*w1( z{4Yt$JbumlmMsN8te83*`);C@O8klB-5wEX4{odKdxQl!T8{fW-pJY_cUGaM$Icz_ z^eL43!B@@y0UYl>46~?-cG4RP{xoDDN<@t1a)TBX?xGaO!7nz>U4Gt6>z|TLhhEGx zj{o=|KZ}HdDNzuiGW?fhfa;ukZ3xWvTV=j3ONNI$ZJ?z_)$b&fY?>UBv|g`P|X zePesHOR6oFyENY$8LZRm@@B#*7eax(0hr<)`9MyLa+Otda4|*mwm%9(W9BlIO1JD1 zEch!55eI#cbKLeSAai@9(-8=yZVxX}gOfh_8sT{P|CxVg8&<>0Vj46KscH102shPn%t#&r( z$(7C0JBoI<{G2eb*5+%lE@(mKq6e=sEwxlsDW2Y?*pTzT1J}u`fT33Yu#*NL2l?bF z-fZ~|_j@t6$iiBs#E{v40JJuZImT&;A}Y73g1?Z?rp`w)e%Mo8>jqoZk3Ub@-|tze z3Rk4sF($NW)XFVAZFZE=&vL%4z5Xp_g6L-$BueKk8`;Kt6^k5~zbs)AJRwSqE7{7n znPD-zQ+qsCw<#C1!KiGd%igm6!oJ=!aj|1VLXzy;mH$-M#^O?jIB*%H+XfF0vnwS) zWRS~oWkwXBGe=-VOym*XpI=~YxuoN} zdUN=_<28*5j|qXFQYan-K?rPR3)Z5lqO%oAhOxXG`3@Wo<$T*)6ySgSDoxMRv&Ez?aM|Bc^{{xfIO@0=vMxc>mx8=21_o+q6e|JB??;hVSn*D$76T>rdS*LP-W zON!CG%R1Q&KiN6XyW!yRV(PVp=#|;OL73YA`1SAeXRRj&O|>ptZ@A9!Vsx~DYH<#? z`cZPpYQEvA8p?nRfgDaI{@Slg#xoM#6n|ANP%{j~JLT66d*XP;{eG++^K5mUM+e{( zyDz)AzDCNo36pk-Bq#M$F7}5gadhNq4(I@s9#eT z()R^?ug#kSyY}1ub0fDU+uWkOB_-!nqZAOLL3Bx9x(0k>^Mqu_k!zt&;7*bbcD6Kz z%ulTM;Re#ZW8^j168F!<;VV9Tv&E0IriB|Oxzj4!fqb{QeiS&ncel_b-5Q6z4&+M7 zZ_%iAq3>i+d`tD)3E};`ypA$Z_f(r4dkGNQW)gyXQNzBPy`Wb> zqup$UC`Kt76>^}W{20)qCWR;8yl8O>b2p)kM& z2q;w=tIK@C(Y`xe$d)cY@%3W0w0g$J!fnTxb1!DWb(Ju4&d1$EpD!1()f}QPF3C^kxoPLWFcg( zda}`9_bttU`3FDevIjebUkTDez`je0-nGw5>ILDoWRyIf%Ba0#2HWa7TQ-zg?ap)T ze3h_eET#CUJ0~O`?knuCboGwsf|VcdBj@Qc&CTiG zH#iXc65$DYcRPt6xIfosGlJ>ppQTcuZ;Wg7eDW&F@~iHo!1=_RvBdinMwwZ5>59Iv zuee#KekkM<+CPV3$cKSf5>EP|-1xPH`(P!J{DFl$X{6#R@_w+E75R??YB1bUP9T5p?e82bR!O{103t?eQYPpFy zZOzxybWWBPqLb^Pj<8A|miK#wMwLDZsbEFQg&JZyzn0GVCX;{ZDtnJnto&iW*n#5I zL$p^!COhFQqLd#?oz*8pHNQIWO((nV+PM*|vf;7QSrn2|6mi?Gtf98aG!7s#(pa?g z79T$V6a_+2a`hv#uf7gjJSgbWe<0g@tuPgF$AI|0YgHW7;X>N%aPBfil5MD+TcYmPY-;Q^eBXTbo6Pe zY4l4zGQ;dTxw7_C_QN1aJoFj&7{BDm@2zbZsiid-Q-Un*Dl1jaM+TG^_p>LCxBVF= zYdExsP^-1b5|y=*EH~_`aGcUuBOef0Zy51i*}S5)pi#`S_QedJCD*FAj}!}9qt`rX zW%**)i+XWC=0fb9=16oc^<(8(8$R-_2X1dOvtXMJ&fmrd(^VxI=4gNvK&slR@3-E} zxrQW)wF=^y6z%MWb+OrXKF5`m#pSnAliw$K%`#YdC-3V$PhwM0onC9Z!c$$H@@p2W0h?SqOhDHoqo;JlqOb0xq!z`_;dV zj415ce?D|MCebhI+3aScokNo<-B?5Iz6XmR8#sRlrEn-Va1Ar)6cpfn&yM>@dyT4J zFLy0}NV4iR;Wda=-2pY2PEsqQU#7*P$d!Q1lU%+`wcy;JJ3epZ(Wl}x6voOz_z_v2 z;@AD(nDCTy-7`L1psM4LEA@0ZZkuYfC)lCkx-phNufW8TwMgvVl_`J~f{iSI0a0eF zwub5{I=jZZ!sx5Z7zUdzYAWl&Hv~((Gxe6_hq5*6r|BQ zW|dh%j1TPNT+FwFT7QE4Q0$E$fhgF{r2Nt&6lky z9BhH_ILThXB(5=?E?~ol5s|+47a{CR2B%+l~_L5GEs? z6>19B%IDW@s8mg^xCrI;Ujpp%RF4=BjTPyXi@xCyWYvK*ECOJL&~sAc_d%ZqvtOrz z9Of8ehU|kR!uezwHlGQBaOf1YM;SdfDNv;X0V6kcUnPs3vDX&QE~9#|pR-*x=Q8+@ zMFq(pz!5yx;RL>?$FF`UQ7MuX`rO#of8=Bpy%T&{S9$-+0{dkly1o4;0F_=lj||2b#> zYIAf~rJhn)sqlD$QP9ZyQ4#p%eVXC|7P$|H6I@NQoQdegiiti~U^8@Je0Gps$K{D- z1yRej1|0OyLev@WbZ96>I!|q%wMgN^chYPK1hn5Ve3OG~U`0Oy*-MQ*ae2m+y&25> zNr(|keb2DVVYKlOu0TeIGCNK>@X8x7^c@%~zbqP1D>5mLq{SVZ6Y^j-)pLGKbpX@n zA>{D`KJW4a8lBw#(46Vt1RjAopd)Bi_CH(@_))kgLz$VU1-b?y*P4U+@e+;+H1ifN z3qJLtjD2)0GrQ_m4Y4*qF3pqh+k^*U98#qiWrS^g!=urW6yE_utpjyalK%6g{=Z$x zT8~g3mrpRPNnA$Om=^Kz8)s6K4OfX5`9EH{i-+x_praj5vP}n34@`-p%GCo=X`Du+ z5A3&pqs-NPO&-vyRyfHbW-*}_2)g+L+~a{IHGY8Lj)ChmVENxq!T;nx$?jf$gTtFY z0UyHIzyE(f^IeXpb769{cgL(P*!TbW8 zMjYy9ZdOhnU@l%hV1XS?4rym651{T2hOW1x$)V}&Vdh~47UbjrlEm!Hp!;(I|KJtm zW#{Gw3qZJyI5e%?ogcbcSh5t(ZJ$7y3oO8Y(;-j>_T%|g z<^l8H9thYD0rT_z+Rh8+gZwJ^RcjgBwzgr1_1qFY#5(I|xvkV*IMSl`?V)<*k2t2N9Fl-`oKYXe)S>%=HmQy`hr0DR~v3lu;8!W zfx`&?I(=Z8xHx}x$_*SB82|0LaYKNU_|+|NHe5W=sfC_3H}v4YI|Gi+b<<2t4ET5) zoZYls%q*;cIhNJ}=9r7~whN#FO!DnOfHL&Mx##u_VpX<+y2bRL`E?}dIB(hjQ!WSG5x`_?YXfur^P-gIHUTQY;DFNyTBy4@ zTWDE%+~-i2k>k*|^6~&aLNgmH>DxC&BMwOgZb zF$^mwOJ{R?4CnxWcc8Jdm6MH!EpTF-yua4Al5+t1k+HIHwgmQY_i(c^bHqSZh}hAa zbt2=(_FpJVk*{wXX)+1Sl~`_&g{yX2L^#JrdP;NmxS^pg-huY)obs!RX2X3v=5tNt zU|mx7jb|e6Jxj<9z3@qinb%(ZTTThhY?Vj3i*!XPRvD2fO9#P71i&(5R{;?!4@BT? z+O>?YT}G&{gjR@&KC4&s$Q{1%>S2%C8SK;VuD-*vuc__?xpPPGZQ-=@!VoTny)b{4 zBA(O`Vt7&lT030n;i?>qT7slM7W2uMCd1dZI$}`FOr)}Y_8jyklXJ)rV9kkslN#tiiMXz zCeSsF%?dIfcIl!-%c0hG5Xy@~D97ewb%!85qg9CZy;J}VvMNBn*kb0u5$k?;1>=G8 zO<|L@{K<>(K?1-!gVI=msxaz(!5!d><6uRYA=W?{wsV1UCeV;1J=`?hq9(}YNB3Oc zg}^=&D676M)0+y38Uf^;qayK`2vO{c6CV|Nd}qJ8&{Y5a4h__3_B zc2-&~Iy(Wp5Iea7+Yt$@58e#233A-RDYlxyb}l94$`D0RXhgeA0=#J|CA2d1-ZWPc zcE2tclRga}^tp5mTE%Wu+7JMJ{OppY2os2jII6sTO{Hg0xV)t;k{Ma3b>P9ArP?|A z+DnK)?XQjB9y4am6Ha?;xZrB{fpjE$tZ4;QR3Bu-xiAw>D`XL1`F18cv?OmgJp1ID z+yxVfqH_&PP(do$fSz@DjwHQb%!gZtp*RV?E~n%u;3)Y{1u>r2Jg7E$+k22PFCsS3 z`_b!uX|k)WG4*7Qz?hrg0g}ry_O6_g)=6t`aYWrGq`c70fOLQ2=9l;QR~>2!b}thL zzHNFoFzqEDEZECMZB2JC8&xsSmZE+nFs)M;z84ZxyK=EL+VI)o?htM}q1usSYMGd* z@}1d3lD3q)G0VbEGBO`6lJcbqcuSef$5(0%6HSVFNBeEL*k2qCLj1pSy0qGIdGO+q z>o?q+wB>yq8N2e`hIDXGV);0rqF&IK-f4sA@I)0xIP&?W8xAeQTbm!8<_m5Cu4hIc z4pb#Bcs`?Pti++4$>8OgbZ;Lx*4H2U%r|W} zhUasVE#f9$nuk0|1meCwGz-2z{CtvwG*Fs5mCTvl;aN!MObW!Pkae>GsH zk&im(g%ox*?u*rxz7<*853GA?B@#y{TMa9&k8;EtD)u$ky!7h`IS;`#1% zz;)1^xr7sk12);+TpH`@-*s{MmKEOt^gx`NyF> z{q%Vc{G{rL7NbaWR5ZopyCj0FZBM?5$w+S$6Lc8A_po+XM^rmPvIB*REj)C;6qlLP*V|rV_cJjCQ?&0|UsCl+mU9>Yq&C{k*apVt- zJ!m~T*f-n5k7YfT%folIq>x{OTVI;WEE2LIwLV?$LS@OxWF<~TIQsUZCnS2f(S;@u z9sop7hg9L)2<^R0)oLZ&?Y*{D5je4#F*A7!VFi%M*nGL6fGEEzfJR~wlg_}O8)*oJ zR8`G22NjgKipy43C@@41N`c1>iNpgHz)QFz;pU|Yq1D2-?IYvHWGuHO0Zwy@i1x5; zFF=dug`=zm0?72BAYY*Y^T-f=*g%0H#GGy^Tm)oNwsPW5e3VL=sJbx>QlCipd%3c2 zUE}g_7@RwCx$L9B!I|g@ki;Sl;ZliwG#}KLGO;u6Xf&6rnd&t17+g6x1vpCIY~hJ) z?f4a?Bfv4Mq%x$?5)H=ku|uE+eIz6;Y#KRF3EvJJHjSO9L}y2in^aE>Er>j-l9WqQ z7=fp>&WmP#o=;#n5K5wxtB5Ar*PV*1V$eC~ki#^s9QDSHZwMbopWOyd1t)OD8d{M+ zs|qSW27_fY(IE7op3-rkCG0c*SMH>N%K>5oiNN5i%nCB0fM{cR%TOdUs?hzwgFS1Y zbF|(|h)C_PjZi>jJT`7+gvN015=9+FiWjM!Y(1v^GF-Fs?AD@ol zK6)*YXI%A7ts<=$=SeT|6!*0$%5!_#2nU5T#IwS=rHjMUwf&^G6DE9At-H1FvZu=) zg<&=JXAyQvQ3gc@@-Td@rf-pO$B`XG-pSNFR!Qp=r?G@ zoO*hX+-bV=;(T0-GI9W(Nq`yc{JO%RiSljeew2m+;VXyplgVw4+1dUBk}KSE+_liV zWLq(+RUfk}gsCy|TLp4DkgPpwArC45?`oY&vr=ii_#x~Gqo~@J*?H&5N#Vql?ho%8 zA098Yd$Lk+Kgd?`1fp@3_l!)(XxwLJzY2Lj>7XraOC=KatDAna_wKRd$OL)Iyz|NI zW4@ia+zt%8FyD}!moEc+)71@N@wx>F>oSi59}!u2$kWKySbkK%&$L4z$C;+YQE%yZ zab??sRXY{5PwGRNHkDoB;2=iV9F3>j=IvZzY;s*87|`58!NT%9%z(W*vH8B?aQN5* zKSbFYg$=fA?CL^s1MtxV$t4@UcZEk(YkIS{LsS8Lm9Y99t^B9!$e-_2ep5(=qrJaM zZS#GJQmMJMI~&l+-Iq+< zd<0`h`!=HKZjWw#>Io9_m}!EDJ0a6!9?kXVq6R~si)pH{dlsovd_dNT`P73JBxBX9 zAFy|Z#WvXP`U+oVU8G%|GcquOy9^D_K> zPLE(h+y)~B8rg8C%}&F|8=(a&SIj|dUe|>mqMyJiA#CO$Z40VV2|2S<#eFNdMM<0%LS&59|8m2qSFU|m*j zEI0_jH)(`55`457l;jUSX9KkD)a%~~@;tDYbZDATk0W9Dp0W}-e2{YTO`U19fz3KV zmGe#{%Z(uzWH9Y2%-e9?Ow3SflSApOj%;4%-YUUywZ9L#lm7a(wmr*iwVlb(M2np- z|5q$C5vpCn)^t-=tDs8xe4+u&Wb(LYaL5iX9(l*ATvY8zxHzO?9GMHysNqg~%ogRl z(pTg5=BQj(54gVjl>fe|{q@%7`~C-V+!-?%L|m_t#WD1r8&Z7_NgwuGX8-VLh0V`4 zBK%B!Dz>yA#OHuTUU=1EpgJ9#E@vTtlG`6xAq#46;4wCW?P**B z*K}9rt|#3@B1Mdf`=?jJo{sz283=0Lm&^Ime!@TFqCO2KexIBof5%1haz5Lts=Cc6 zS1pv;M!-D$D=zvR8W*jE#zj|T`A+THw>p`9qgs)jQfDoIxG2i$q7S33A+F7*$kSC^ zH5)h$L1XJs;R4bJePwilLCu@UE>S4V7u(bV5sx8FSM)1=LqymTWy41(*?Ql;!WE+E z*s{|QugB!bT1$j~yNLDXdG9qSBihDIHXHlY<9B{fPyl-Rn2nwNU!RLqMwe)LS;RP$@4xBGl`D(YP;?!Y`)#Yi^ zVtp(!U_ajx+>nwA=nh`WBB^FQ?x!COCBxhu3&yE2ZE>VZA)*%89)!ovA&cb2o=F9{ zynK(@H_f8X%9l~G0c(p)5H_&s4#WB+CRs2Yt_O#%t15sY(1wtX^dTSgcYtoq&%h{K z;f#Pf6NnQw!Z?%=lnI-Yf)F8Dn~9JBn{y8oVNmUAss+jkQ9`UlXnO?$|L7j=o4pN; zdS!T%-3CS#CE}iT;9=t%m~!p&;mSl3;*9Z<7RSIp&y{_J-95bjR)b46`V%;!EukeT z6rY#5moB{8xQ05vM?=sWuriB5VRF;Ph9hmEpq7nGRFlDiKj=u70z*l>*yrn5(6j}J!#&dCewZSL{ zb^Hu?f_H(%;MK2SXkfHMo|qu&P2ojnVV=3tSFxMGD9+s#_|BAK=g3I?7_bo{aJj$7 zZvtk_NqS`WnThJV+3CaB(Ai;Y;mi(iF9a=GaPZn`+XP~wz@37H38_AbYQc{2zdG;lCkyP2UmvYBWV@Tz z$2WT5S#!qn6v2@OP zA2qXhUK@$)i8h$8oEm@Fs_CXWLo47i+@#pryC`%JR~!sVWXzUXLp_pUO*-I0p(^Y> z@E5F$1gXE4@<~KWWlzJj0_?0cvFZ?c^c+Qyc27G?Ed12_bGLc* zS%`J7o3KG_;ToP>DZ>D-RBL#e=gdT`pgE6o^%!H@m`(Tcp}N||?1mMAymJJh|b$+O`Z@<-N@kaddZ}r`eeb}eITO2hx4$SCsew-Q zKOmrb<8P@sbh5DO(-wv=g2>lv5}c~AFz>^jU;d`~f$EN(?`)Gpx;WXk2!D`Z1QmVy zJ=zq#U{TielffxOxJuEgAQmzU2w^x=Pd72>1r0O?-D%{0yslbKbkZ;UgVv?nKW-QP z5!`;&QN3l9JVTvlyx7zCg^!+Bbaxh1ymz0IwFr2d@}j5{yN!TB;b6nvMe2I$$B#)l zm)@3O&@r0GyVL7r|5Lgt`n$GS*sNH(m5p7&*aSY^4P<80i`-Z)pP%n~N6#+A42hgm zJQ=8omlLfw3h zoG+1{63B~7$-fDnCm9xWGYghw&Bm2dKseh)m4kOO6C7j1=hxMT*|lu%VNKcVmZ!9g zo_`7lL$?`f&i2F;3`$ndgY|VmOiNgLD~#VJQ8eW-L5{izcF;dI#RSVgQ}Df%2yCNJ zs6ID^a`LKit~t!m5OngS1^Ff^2tKGIXBj#0HO$cGppK%hP^tZW@j9$~^r%+w!Tol+2W6lnu=X_aJf}1IfINK7qy7j{N9RYBTE#yey<|`>2?@YV&ygutaU$%SLs<@bFreI5gGA2lV zx*N4FgF?!+9jRX~^6q8OZq@pS2yK0W0@zA{%%x0PocAshE9Ze&kI!HG-#`2=O7=Y0 zHL8;;<)Bhf@?O?UwdJ6vO{pK^F01Qg!I&Ia6x!m3Jo$m|2was|=+`{bcnsa6_55{S zB-U^abFFwR_#)m zc5FM5SqKBcU;Dk&19yK%=45&S@0yt(wu*MdsN^3$jws*Vvf@-GDQS-weyR`T12QR^tyD144OJWbJC1;rIzJ@ethlMo8U=5*Se@`ziU?s=a)R^C#yX zo>SKh>7vIvgJ~1e$BzT_Kfk#$P*rz+^yT>e`Z(s%4DGJ1ynR8WQ9ON8b6KD9L&n(= z`s&1(IX*_elA!=HSW1oOv!+Tz$(hc2_ILM`$tW}C?^j>T2^qKY1XJ1=&WJ)P#cG9OSGj+Rrnl9utMjkeV9_SpH zh9J62`q{k)5V-T?0u1!)1-J?zm zN`fLScBrX|rTa~E&--6QUG%SkHoh*$t*vZC^k+R5EpEbipKg(Ms)rlt)^xNpcc_sAL&UpD*mi9ExID43abb}G*60y2KAJ622 z`aHYEO2LPL65p{+mN?ynh@OWXz4~mrh0hs;x!tGXX4_y{;20OJ9{K$9wx81CD=AN6?jtOwiis&}#E)1ylL`5?CHtWlHFMv){+G|LKni%(?-Qly7{bw)qMl7i9R69>M?n}naE*Gt6~geO&4@XF`6Vp!N~nVDb%}bmBe*sXNFD8QR1lE zBIy#U%W8_W58%D&ZF$({uO(O@MZ3>2-Z(@L>w|SO{i0!9bkxjZFd_E{S4@(F0}P1v z_U|snUc$_xc-kzkY~NQ*U_+TuEqJHyUUg+YH3sbbUr3WWJS)QV#r-A} zmY>su424@h%3y^&497sNll(^Vk%ayhvI#OkwUe>XN#_+tC4d+mHoAFcK0zn+YSg2HxKfEv_c{ZnI9UB6W)Z{N!bL1stDY6nNnb3RPRssU!0d~R{gW!~HpV;J{!GkT ze8Daxa4}zCrNf!|=2I~rQ>(VUFdCTqzT~A#V$A*` z9QcrYMemiv+?A_1p59=`)>xh&qZqpJAkpaf5c=0pxAKfDfgk!UXQk4}n}J+AfYZV8 zXn&#L<123R)bb62Bczlc(oLiUK z2d{l_u;^sEshgfX742fe;OEGthMad2tY<+c7&$->r1|)h_^EPc}zaXHQq`4KaSC7-XTum+cLIs1|IWCdM&$;rE7yRfiDR66t1ogk}U zEcCT0et$XL&p~1n+7bxziAzTETNv(E%ecxX?bksL^`^DWB*CV+tT21HY1U+uyJedC z)}dQU;IgdVy!|0ICPpEp68CtFtF69O6;&0@Hj_(qla&Nge})|r{%U(^n;5yYQ2YCP zJ+(^^Hl{&ea#Ga~h4k& z>|$Gp6KxBBw09NcjT2mTB?W?Mc&QKf(g-<_UOOeI-U~ibCzR({6NK^7e3ZnWDe!5z zS!$GEAi1P@%_Il>eqXRm9y=7JnCVa4K`T`XueHj35 zS`wYpPh2XJlGlbjxw82;BMp?Gj5O9yMw;p;BTf8^k>*akWu!ehZyD(yrau|!_MeRO z(k&xR0Wi{0|BF}(JmelI*_7mlr#g7sHriF~*J{O#bZN(IMy$@1*o z?4g5-m^gd?uUQ)iPH$qhGfwVwtLpN55PlR`yX%Km`^c)|`n>XjgeRQ9q`kN1L&jQ({mTZtj+zx= zsUH!i<9^RiEFQ@dV4hy=u2@vu8-d-<3W=ZDWw*XY<^<($3Q7DOlK4wI|Gz~Nw>g-9 zLLYxZAAdq0{}TH6FEETZDbN3cB)9+r|5 zJcWs>StEF?WWV1^+v-0@Eu{=HPg;s@CX|o{_(eGrG*fB^{dIdNzo@_aodrgu3Orm?A{dBist@1? zWze%=6n)k2t~r{ZMR?q1bWxBHf&>>DZph9o8Uunv6$rOxbET~Shzkh zyVmpFL25AjeLAzLC$899TG7hS^K0vh(AS7lX%u%;D3rOOVmBV~6e~dM zhGApQ+24b&Lb_=tFqm&UqF{}Lr}D|1^fNQ?jvHuZ&I#z(^b4RBfM86qjR%R87D-1i zAOHlTAhg<1KT?k=!OfpxqX|Sj+9B>h#DnE+g%@d5;lF(Wv|Ha8tgE2#7%Q-t+OiQR zgQ1XjKwh9zh3|m>ph8Re8^K@$5oYPy76v?s<&D`;#U_7rDpzb6PDXsE?Um8`n680&M&XEZsE!V5tM{`bgR{AMqMNjf6S7T0FX296%q z=+B`ne>tF_zG?z(cXID_e~o1(Kfr1%EHrP-rJoQ(qOY0t@4F&21>N@(#{N4v@s|Ym ze+wsWO(g!ni9c}S51jZHI04A!f2Ys>l+fP@nK=H-Mk6=2GXIP@c(?(9E&dHhz z@$T{cTHn+ZT*@O!Z}owSL%>LHI$eZpUGR?N8Du3f4kZprgt1HkP}Gw*>Utp$1Q$vk z{iUcE8&rL77m(iEU)9QEK{1;3rY$=dQO?~hezdqJ;5w9$c&Hkwi^on1c?MLGwJNnA zSYqRrmsEHlLe`S*E@Wc8cM!3dTrcm?n>q(am1TrXs@IWPNh4O@F*+@w9Yd756#E*; ztJRCo2xJq2Rj!Z_z21S%=)f|{xQutT-h_c48r-b!Jh^keqNa*hJZvb#*+(XM)E9`o zMI~&#i@YL=*AMD-Z~&}Ejvx0EpgAGE+?|S5kAFSKI}>})^T0~i(h;_MfFFG`CzU51 z17W(BcIu*=KGW39`J+nr1S`{td^N?aV+cx(%~ZjP>l4)d;2Dx(Pe`aMs!R521{w+= zYXWe`P-Xc);*KT}aZU~?mkBClumnJ}fUDtP7Nro-`r3tWB=uoXNxh`ax0fKo_j0}D zeK4!YxE61ykQY-CBIGFgU_1gtb&SY+;6Y3&61}h4F||=a3{bBTq+ebmjppt7AX`F- zTtXxADSXgoPIAx=$b|{eHCaH8*fIT318vwtdG?mU`5-V>HOglFGcVX+DJblay@eey zpxNHY?%ZUL!yW>NWCJ z<<@ItA^p~CWGMZo*T^f5TdxrZ=bv69^FO^tntytYT;6((%%LSe_tIV?8aTC>GbfkM!ZY1>?aVd#|RS7O>3t#cI+>UAt`Jaw~Z0rod zRB#|gZZA>@2k5AQ2Dc7Q@m>3c`scTi#rkjLx83T)7n@R}@E!zmSl=@w+PQjjmq~@^ z*rzJD#AeBdxNtRLXLT-kf**mc%qi-i;fKEZLw-^s5AVv|v+xtQhu-H1386NJW%6!c znyK%g%Tz14wI9Dbjy$S*S4O)?o7YJ8Ijtr&5^pp-Mn}9a8HsoxcAGxFKg@?{ilVRe~p*z>hwMf#V znNII2*2F&7svcl|&Nj2H_w|Gx`=$DPY zU2>QU?IP0$%*L^8p>3ykC+2-AqY}&wb;A!C@LPqx948g&WIV(5nL2L~O@D2aCEAuW zvuRT}!-)m$f%R!LI$UmHO-9*EkNF(LvO?wHX`817D}J6oj-X)>SmpnlP?NOKV3d8)b0SqMdfDz!vtx zfIt@le_~lBOMBVT#SY)#)j;$^W#3BJYgAH_{*Q{Pvosf%2yeM^oZ_NwMxJ0-!&q7Y zK&h>SwSM^1s9#dd!W)4(hsu*v8JFJAIJ0ingKgajuXD~~|FUHBJbDONvVAedxCSiQ zQleu)k6hHJ)e1}*0&IoONPZCeAi{ma6g@d@c?CGKUCI)qMcoiRNhF*A(PQCF3?+If zO;ckWe-S-3*q9WBH~`Ue?7FFMJ-Sy#Q^MpTGtZe5Vm$x>!ZWt=BALv!5f$NCwxF;luTnW!VOxht zDv~_O0#T-6fQMQ(7S&wh!z0@KO^p?UC&`tWzlk281SNV-ex)Av|4cnp`IUP3;%Dk1 z|IgGz=buE+{7<6i>SyYq$}Q3JKgCJ6M9*)W)YpCm;H1!HJI1Vk`vN6;N<_#upy=O- z@4XqZ#-ZRF7RdAtO5w+)B9Fivza%4+fXsz=s4UZdY?BW)bR=DIUVh1rJ=9MFKSET? zJ4d+F#GD9UDmTJA#j!QF;${*XaCX#^ve#P}?3B&d+wEU}Z?HCdYt5}V!3-es#DzK9+Br&uhG<2pi3tvt_?+$DPgY4SpO~ZL1!Q zJS1!Ti1@X?;q!|stFtxuM}**NugaR5xAqRs+19cq8orPjQHb`G{F!r!`mxqe<<8poJr6GqcrZ;}hYRPvQ zpJ;7vIi{(x?QoKVK2+JZ>?;q^3Y1!q9nRAWOSB z+1r2gZFHUb6K&)%@OZ#61(l@Ofc_@V1DJdMPZhI2zm9(U#{N;v{xOb)I=lk5t$&PT z0T0)IFpm8%&_*|o#{Ys&c>V|8XmJ2KY2McBbL9`L|8XV2&^Sv2GeW~VOc_jWsJCsu z6!&&_4t)0AKhg5OQ+_Dt&|QEx5`k>Eo}L0;u?G0T%*;*!8EytUk^B{P5ziBHPSsri zY=Xbh!4%LHvK$MqwpaGrF6y@kCI1~ytZO?)r;aOq$3s6>V5wO>vo{tq2?VElLmfA^ z2+5t!WwtSxF``_zcCpWDpmwok$52~@BOTWx&(19;Ex)!qLHE~Vr;>Sm5d++X2_OqN zfGxte8}4Y>sf8W=kupUSS4;dVJVPE{8ysTMrE{SvgTJlM1>PywHxl$A-)fQNi&(LM z8w`j_L=!EGg}Yvw-BSjX zvTq98aJ+j1G1CM`5djg3swq`0RD?49%<+Srfo9f;03_r6zY(F7(F@@iwYv{#l@^XMm7z^}e1g>%g`M%82o`w=qmvYQR|>@X@;!QACk|sWy3Nij5UEsW0nfQ6 z2+i!nPi#{CkJ#i^g97(UgYxOO28H~$1_jW}{?wqr{nDTy0UDH<{-!v%Y`DeLyEn{{ z8^9c4q5!FB2k5_;qn_W)k=t+PsP8Z4DE2pVy{6j$F>to!v@y8JYAQa^-db$MYOvp(%Q zv`&8&(&8%QeMS+@hpuIjQbJXH+3*<(O?05p1hSNYVLLnUNI!A6bmsAy%?ZyTr>-9Y z$7HA=+Y39Cjm z`tm3wN}5fEdZoz=Z2>z=nQAOo>>}>no|+=V#fppNdjujETN-I_7A zd}M#p)JIjhEpoxbGr_g{5w(c`!jqPekl`tNJj=q&m18&fDH%LD66A9= z4%^p3#a22WL?z8(8WeFD7r>8tw zpRD)-%u#9B&_i;0#*f+ya+3!sY*&CueOTMlPt+lVZ#fxjx`)M(X}Z*5IqQmk_tPkj zQTH&A4zCLPKp2x&yN$VMKD;y!C0eWPP|^6V2gCWT71Q#1yxj+kFi+CdHf{hBof~r))rH%4lhALn)8EB(!2#^Ns|JJLBEBw~0g#Oa2VEojpkOmL~ zUQDFfvbIdZKr?WSDXNS;v_!*ucx)T|91yNVo(-eZYT>`84jaY?yy#!EiD`GaL6s|> zeX$HAP~l1{RX!C=LO(ZVc$D_DWt2v(pKK(LYq z6|9J9bmIbMOf98rwovA%TWLcCkiL4|Fh_Eu%KT8~s9@QSIqToPKqDeR_Snye$OmXd zgur^zwsH6@)^h=zV%XktNR>5N=BK>J(4*LzN zxToBJ{Q&?YyPt5$9D|J=eV=G+R{O?{tPWeot?dkt1&B`#PK@oT27fA^0virY4S91(4b zcj)87QT|ZzVi3Xc@nc5pMR&>Z7i+}=ukZ`K=?J2b>T0!R>2iq_ElMrkx3$;pjGXs; zMR|QB_|{X_!p~Q}x6T+{pWx!Mp((C3tJJ7>fui&@cScNXoJ%z6T_>hS@;E70uWFBp1rdA2 zE>jhMH^{)b>}basa41?Xi-7zccKM&HY5x_w{87{X!7hKW%im*{|FX>GW~HZp#w%Qc z0{@Z0`Ag=a2m)j-phy_Ucuck-g3PDiUos*Nx*H-~rR~z$KK93=pH9}YqetJd!bZQ_ z0@+(yTcYMD%elu;l;d!^9X{%i-u&rS4zOUA;mS_8hPRw3z9e~;3?H}WTwxaijgpXR z1F1S4w^5R{s2!=I-XCI({Z)^-Z>27+Kcz0#Y5q;Q^g`OlZC(s2$dY6d$*Sz|SWP1d zWN$@O2&eb^gGc+BF9Oy6f-7F4xRB|;%p-?AEBk;b$!_z{C<$#F1tQ~RnLL!i@wg-d zq9pK$n-m6L5B%?Di@BetD?x~G(2wMXXn0Iz&ZR&2EqnmXBgfmh$)F6*6*N_c7yB5a z8=9&^Zn3~QC?{?so2<1M-ee6;)p-qv>gFt8jul1?;1$cBh9v0OWxhXii9nI9*Gmj2dVSLuWtS6{G?zE2BixLkM~S8@M9= z)q1|`Mqk^x3z$eEGl6>G{vY<l@vGihz^~f^-Nd9nz8#(%mV!Y3VKrr5kB! z6_D=k&P{ihbT?=4=kLDn=YF5}yze>J^`7gw&h_{Q?!9N`JM*1cvu4d&pS9NIy`%Iy zpo{l?Yy?X(0B^zcukuTs{99gmH0S&(>ys=lIc9E#WhRMGa2FF2X`ZtALl7}C1Q%mN zt>5P<$E#0pewHGlgXwLh5C2caj=b~K+4?J~PTyZZm)}Ws1nvS!f}}e3e}FD`U;l_J z8Vs?47uBvG|=n`G5N7j{)a5d`pwH;Z9sZsu5>V-Tj9FCtUNPUECZSGPSA) z?U3f=i{a?zoRM@l16YwPNDWtwg34~oSNHT?wk`?q4HI38ofmJttK3^ zu9>li6DIOobu{nqF_KFbb6U#^X`%VZTYA#_6~GzD+W1I6^VUSmEqzumJ(jRxUo{;} zcCoT{Wp4k8mDEcr8*7DaFTAur!Jv@3?Qn6*CS_o+Fgo;yn*~w(p}*d3%7GzzjV?+o z3@V&vI?UUakajO~#JLK0S1G|9$wNRa@xUEbA0a1XAWCI*(XLQks$BiKWqGSvCFBLx zaA!l=j_XIE3A4bNv9%fLj%Jl}tQrl19b?YWUlYrZ*rJKp58F%QLMdVPTZRg{q4nx{ zW3AT0PdfCFO_DzZAK^^2SwQ5ztrKc>^P27-s-4JWe;SHP7G&!h|7f9QHqd1 ze({$F@#U6evgBc6CZqSF-GX<`mIWFxG+`~wS{T0*O*W5=@izbR z{h|IW^;Vf-ni=8W!6n!KQ*en;Gp@@^Pd}N$ji9=x4Fcl@J+1hBA;gS3$0&cf{s5oi z|HrOB(SN)C5IHdKE;VFB99I|ZSKaV^oQCKoJa;IQ z=q3)d=F@*-OYYM5{lS(H{f#Y|{R>;-xp0Xocl7N8t@nQg*Pri0m5=_#^#^uw+a5jo ze`CD?W}VwqN9RZ*821`ERee7N`y(>3I!^~*5ZUgJ0VgWIm^wB8&|gaTMMC~c72S_l zRCJ^Y*DzT^@h8iD^H8~ZhKKpcFT8TXZBb85oo`Dxqaw9$9jUPW4=TS_uWfH`$XKu) z&L}(As#!R!Eack-5&LC8C*IO+cI0?jZA$L7Vz7Rt*$mm+5G(lgx%6aHZ@+^2q;-`c zbbT!4&|!jc^3y%eB&DdiCJ|O1OSYBN#QZKxdN+ag_EDZ6`;{)q`N>)*X5y%g=x2azigwwpRVOEwpv7!dz??we05;IwbB}0(WBcg!lE?=kD5cY^E}@spU1v z?fQ7x>NH&z+Jtp=wp?WBdaJ+%C_b(yKvAQg4zc39YkM4TUav_V)kR^otS|O$ftxE0 zo46Vu;eC~y>79eEyC}_ruEOO1nPl<5k7E6I$>P6JtpDY7ARw0?NW=SA=3#KU{da!h zKM_;@f1O|WZXf^&P+_$^!IFuo>WDewN?f0=HGLv-Az835t;+J z$2?$2bUq5X+6;{s=w~|D$?y2*Jf4&^{|_OJwH-n;+@|ZdlaFVJlI)Tb8WLMP{=_ui zj+yD#EjIO%!t^Df3(g+w5Tv34^g24bw474Fa_=ik4ypQ>#^=Wv)tuS=TWNj?nh zrtZXc`In%^*Y9Df3za`}3hR}6#PQq0KH`~$jcRLo;a=z}$I>^18W1%=E-^dQuWlOL z&lL+yV``iZ?lSA;aiIt+;CN15_@H`qUwJNtnDy&%U(G%2P3Jw3@oIje_Q9=2$_9lKtCxIAv(Q;*e5@acT`ElAk13qpmd%dFS%aEVau$k+2-jvB{sf#wLHqH69`T6W3Vi zPh8``KXHw*|B7o|@+YowcXvsJq7-X91!7Ehr!Z`};REx8aXdaBN@Q?WCw~K$-H*W% z_J(aW$-62C3>%57d>?pcjMVUd2R8nB8%mjXxMxe4+}8|qa^yspUR&7U=1%g@{^ySu zypN=%FL%;*??>j=Zx~YfEoW-$*d1hvNjWxii)H$wjOJI14DsyD+4os(oR8K7z5Aa3u(HMbkLrvXudYU~(7>A17c27lq( z!37EGFA?jnov%N{KnPRnU~+$~6KZb8zk&!$8^H?eJaI434B($u4|`wbhOuORN@0#^ z>`SYcXzfSse9xa+*6F=p3r0uX#-x@pK8|vFkT`y{b*JL?HOn0BZdvi%>f6h!nd%w) zI>*Sl1)RAd7mzSJL5eK*5rgducqPvJ5IiEt5BScAi3Z=L4j)r1fzOyZdCVBsZy?Z( zP~{9Ai`{l%7TAfxfvvk7;R=hZlgKhAbmWV8+h3K^l~EJ;loC0{rM> zA*R$A2gtm+>;c6A@ny$MD@eW;FGn)6yAqZLG{T-KdnzebcU7FE2bo^+3yly3JXO)6 zz15Jjd(XDZ7Fa!E&n#4>#PFHHXYHkRaJVLT)>ci@$TAj&KAZiZ6vlbw(qe;62uFe-We9OFjrF84 zgx7Z$XoJVEf0j}6=yNObe14D1C#=0VMOE_z=qQ5K(-->|RtTaALrKJlXx>N#-}YbA zq(m|xq$oF129%4v^N-!h>C2zXAM=n@Ha!}P${1a<4u16EyZyMFw`>N}yzPDK4~+H& zhX~e?n$D4|sO`j+9hodzhx<6mqAOXW$nbJr5t%RNLYZSNB2Rm9MKje`ZHG$F(p|z7 zzU8>b6m84YHB)uBp-KKq7wDR;rqfy55X^_&@Pez&q^iVir?eSf6}j&tBr>FstW<&MB`GpTMmNTM?qV)` zkxeo5g(~WbUX6&!#`kg6X&19RqMY7i6UO?foylMRO>cU>Sbt6n5I9Jt(;~z3~A>t3{b|Wlyvh)WAd#_DN=u+Ge=!oj_rnPYek`_)2 zV(6HT(<+j0>s(*gyVbgt&eD}%Njg#9#rXLsDfpj(wSP-*f1T&@cJFPStPFrur)y+D zFJWL|WNS>!{Q5Q9e-@LBUI1!qBV%AKXlZU`X>peyh5cUyz<)?U%20jq5Dq35`o9yN zurU3V@I*!Wy@`RIEf3G14BN<}pSQ+bM4xIBAzJObcS_Q>4h)eFm9Q|q7HgrAe8^n# ziH_o(!Nj8P-e=@3@34R@`&7A>hcxirEG&--MP)vU`I7TDw~)hX=4s7mW=`8}wEUbL zjM`;Ww3JhJ5kGU(bJ(nwuk{ek4Vyq9D%|f!3Llst+-Rp($@H&5?*3VoAS~CcDe9}; zefffkO^o>*4t&yC5Xia@{`d4ni^IMv!lp(*_&7bSVej^9l=k^h>+o=t23>5YJ}WCL z5)zVFW<>8WF}u9W^8}>3+I#*o^GCE-2YEG$vJT8+l9 z*dx`?Zx2xJYR}JwL>O6F?PW`+sHv$nH8rVV%oG`jyScqd;Ctro?ruVWt7t`0eh|d@ zS+V{3H&o;i-{MP>-~HqZbu#nv-sac8aliUT}nX^#GPwIDq~ zOnCyS>~0q&rKP136p`I4^78UqF%LAE?<-@!gaRGm2Njr(VNilCsO$@}Q8J_Lo}ulJ|1?Ixo0OAmrcj%` znY)S~B~VCL-@r^!GVYHbKd83vJ$SGg|21hn zEj|6aoQB5LT6LsYrri12nT&EwOw5rbKYt@{#TjWw38_fd+8iZlyN>jx|503AT$KH? zb>)%B)z#H{`0DB^@7RchtXg_ZVp0;Ap$*cPFQIi@L-haBtg&ZcaF8Fjxus=!_`AI6 zXl^PBAQ3W=5RGd4-sa}!;o;%V&hKBpdfs-xvZWn%rlERzf(}qAEv;m+%*7ogWo3VV ze|qh@>GAO|X#~DifVf`v6TWed;_U42e`c0^3^g^)QFsMCTWm!^pp{PMPW9NReMYa9 zvGvxHk%=jd5EO5EK-Y+bKf&`Sa(npscK{lM{#L z)?{hm?Pg_eej&p0>Fykh$H))GBf)Qk7#LO?Loeb5MT8v?5fQUzf>jgie$FJE*m;Yz zY2*Ihof#NCkD}_R)MTzI+%8Yn*Vl8D^Hs(lA|ajMTwneg%iowB8j48pIN4JDF;G7< zGsBWXii(=ARok_bm6bKbz{*;dlVfUT7LE$Ua8+7`@9*C#_ZYYZ6MVfz*_x@2MGIk~?7cnNR=2ihx;)=n6P*Z- zORnqKdFPaL624CY1N7+m)H}{=g(@J{Y#at_7CAbLjYRt$%})fg!A#i-$)Fi?)>kxfGABCCfO=pIFJFE}?d|C?X6NDQ%ac)77Qxci z)~+fmDEMlcDfjZse&2|Q$5nI;5e*;1HRf(lbZc|7vwsPA@#2NX3r5E9SE{P2e~q|v zU_i#i*s$2+-rn9B)7x8H8CG;S=R32tT&KsS4xZa9c^rw6@!9;ghfO$ zx7sA`W;e?%Np1Zf)4SaxqoD8>S8uM)O=G3y^Am+ir$Y)nLN5CtKd^m_1i@x`j`rx0 z)gd||w`la@;`=JCGBaGw^73+&I?byIo3*|{J2kcV`QqIEPoEyTe^}{?RxmR+UwOsC zPsY^R(z18?Y&R^w`i_>8Db!U}-&Nuf5J)yR`=cLb8|drH$kN63ySZ%>6ciSwBDdoE{q++cNWIVC;%vP~zv9*P_4#$6?HSk%=2K-el{RZ&$WNbQ zAq&~ry_V#$T^}fM05pY)iuyezU%UQ*EBD*CuN++VTVIwgytx|S*P^MF*Zo~@uHuBm z1S%C4EqacQTKgR)$B+pBuTvx}#s_cHmDSg0PZSam0V zFH*{GN&XXVCZ6ACI5^>SG1G~~Fr(g+8_b;V7{u(k{pLX(j{=2(#Ng<7)*ecPg?!(4 zysJyh($dn#=CG)!=-k5m{SPPU zzZ|NIyj!FFripfh4f{?}sZQe*>fE`NC9enyUlJts;i-R^X?G~h0QR@HOdV8 zW+L(%q+>*vm^nvmGx&SnHt!^tJC}Qzt3Eiwkmw~;!$*N#Z0XfilSm|YF1M3QCm$Uz z3dT9DHXm{6t}f)^j`z9p!g+!S<7P&6DUb#eA43L1u28@Vl(L|g+<9_Pk6EMf59vUt zD3dEyqm33jc7C(_5eOB|C2Dz80Yh2AOYFPFci$CqMuu)jejNkn7zo4^W>T6)rDitC z9&*To34!EFma3t?uJ*XS+54)Mzve~-APR{PqvCYw!@y zksnGqnfHT*$=uX(Mw(#GwaKT05Xjf^-wo6XqQx?2EV7m3dkrf!r1D!nB%W^Em70{Q zsSOyjVAGG9lv)*nUL0A0(C~f4L`XKO46rC@`BdOo!e5QrKO`>ggGSkZ8gXj<7%^GM z1U+?6-2MDlPkFz4a;TX!W9?qCzA(XWuf#`(K%D;`o=vJ!j<2tCZC$Go0>m>}El=sG z5Hw%uRkVF|QYGwnqpBzE``ASP(n!y@R4osCbo2NkCJ7Zh3k*Q^X=bL{cZJFA6J#*F zVhy_Ngb(2HPuA?EmCIa1nhDS!s!R(N*Y&WCxCZ6&G znK6k4NXJ6iV5zA%B~c)JgHUiC2#^9tu#9ayHpDXx2Bg8KNq{!KuK(Amda+_=T^1D; z(-*zm#X2{E%R)Qw4Ayxh%2Z_A7P)U;hcKYsjlh(|%$rU< z+5vJQ4qFw4!Q(xPx2M7Fz9fb?4V7>Vl{B-yH;*q4GkNQe z-X4G6_XrNvCgR?bLw6vbof%nWh$6!-Js5r&3@_}yGx9rgox_5AvD zuD`c8iPP@YTT8=uLkqgP!x&e1&)4gtC80zvS53V18WqmE%Ppc02WzFb-PSC3eSD7^ z>#|SnOow}Vk6&-ECk@KURYhoYUhWQi#AA;uY!IxT?Jv!_9`=@+j!C8P5C|N_86{Ub zADgI%65;c>vTqE1i%SUHt+~*XpoEcib~rNC?V!UKJfDd_DHYF8V)r0TV!OEzemJOE z?I7vOhKWs4mxP0Zzdj0@QL}6#r{+N6Mk#BXUH4m`d8qBJ#A^Ft5a8q20P#ts!tU27 z5HW@_WtrKY&2b#ocXPKXFh$R{wMP^NyFK?Lta`mod3&>*>V}TW%Xl@hWt7U1j+hpB z_^i39m544&y4ld*A|bx)BOnn)XaBgA6py1p5gHwJuo9 z?AOaG&-&tSHCGu~XbWCfy*9ttZInk0y}IdGglX1KzTTgCtMcW{{=JUXSM?A>i<2H@ zNt6K*5+-fO1z#Y5(DKXx$qmQ=%}sgg<$ivC5p*2!m6bhosSthFPF=lc?d zFnjKq%c!n(&m6`hb>fH^undh%<qop4X(3_e}c2;(--Rw>OoT+~B z05PP_$@Tzf(!UFq1L83MQgbVnAOMKGd^F3ve9E%+cyxY#9#Ax(Yj6#27AL4OH>^8E zekKn#mjn}YLXX9~d_*V)QrlDG7`AQugc^_0gvA@P$?ndTaQzk>SU#?lpSWf`HmfKs zz9~4XxAl6WgovDI`No&ca4k5?fY~Q&<|bT6f-~Jg7-iqC_tL2L<<44`8<&#{MI2+B znd_|d>{yA}V@XqqIm+FX>Al;N`#l7Hll1F7`zCF#F`|53x_6r6@10x&| zyBl+Y6fMxRW0iG}RE=K-BMD>hLE|9iy$>=Xd{(I;0W>BUm>I(A(Ly=GIiFFChjlR4 z2S`ix!i|%j8VpqNWz)Tt)yKSO{2;YkbIQJ}g~{*eVWD-iop^YC>k+%VAa>2DNR9;; zq(b3$lX@|*X6ME?{#=SnG$X}k^5VkT*C7yGf9vaSm)b*JHd=tJx)6nm$6CWC5H7mB zxG1NlHYxrPS598Oxz<0r5VNz}m!5+L$_?q-jEA*4c-V|c{6|H;(eo8Vt@1VymrRl z-37`{tIU#EMkJ=IOX9bMpGv8>_axaFw>%S(JMX;E49NSEWHIAa8IFR0g9sa^TD4Y!-!KgQ+k z%<1`Kgoo>W7@1JB2^@zAvR`N)(tDg{c8Wd;S72#! zY8h*kpa-vpa@XxA(uEr^T*0&Tf zpYwRik$Io?+2o1I6|x&KCITCu0|zo;YUy6Te@IV34MP>{qSZa_l;Cp-+Lv;lOs?fB z`d;|Qdg^<(i63W5!ID_7-JYbhQOt_kUI+ieC???~B|udN6bjLqVzyWdX8RO z(BSstN{!^07;s!QWZS6#4r|Dc+4L5hUTbS*#aBLr@J&~1Oj1&w^^ty;u&}V@T;2B1 zt4K=e$K!Zx7WW(k5Z{twO7(PKwkCL?M#z4hJP7yPhigt1^zTdJLNsU#!ktccDXJGh zB&MaM?IQCKx%6R|c7+j%gpsyUmAz|&qvL8u4`vq>cX@iU z*SUF)Re#vv9yuaLq_ke1W}dG1t}cl)UOWM(Nf%WqiAJ$I7s{Y#24ubXiIL##`|D>c z7w%Km;(=H4N?8=?V?jm*Myz*FXKqL9md)XI<5QQ!Gi-;E{kdQFJnJ7(~Y8|qZ<*>Aa2K-Ba~8!jt9%{ z)Yb7~va_;CS=_H2eO^&hBN-|yk1Z}Pj^%3~!pY0XKwyoHUQ?(%52;_h`ZO^)`5Y(| z4nF(CJ${Uh{ot@Cj@fdy#_8hdr7@mZwc~!8TFF;kpg^zCY}9Ey1VtR?lPq%9ii*)< zX2=3r+zvY$o3eB%Wgh?&a@d^}vio|93^OW^(j?|W?(FFy-xjEaKnOgLD-@6PJ$%vT zJ-QM(Y^w&;Nu9K3 z+%Y){zMM#gV5B*v-B3iS^629y$P(3^_AU1cy((|$e|?TqgPnIV;Tg0U(Q+umsjqr) zro0b-`_`sHr)nvH+Y~b@^jlpxkAxNTmnqZoK!f*I2T>kbR^@Wo{E4hL)sFA8cqP`b zyDexc@O!>_f6L8QMMl;4v5Fi2G7up1u#2(u^-6IJ=3KSD-M>jnZeT4-e@ z$I;c5>pEcBEXdACp%N7G)n%2Hs-)pSYbqnGrm4BTy6RU77EIZF>f_{KQh)Lrl$r5y z90@;)f<`_jCMKP}1h!C$J^pXgvYMKjVl=qKB+kyx4D^~+M?eYeE5SMmtR(BEV?Q$o zfvTsGELu!mO$}$9PNRbFpfjqtsAwInYbBC3J}yqy5h$D&q_oY&aqs^KP8<0`{1_Pp zg{#V#yA!Btar+6zWqr}~jf|Ruf`eC9J*Ao}_1e*RX4WyzwhF4-*VtFWKL|BL5t9oz zXhq?hGdds7^sxyFYd&C1ZSaZwBKPL|fy+lG#1l2&j~%5e{(T-Mg8t}OEl{UXQWg*A zVcRcoop1xswzME_C1b`s8Q-`PyO64Hs>Kb^stc7;)G^VAXxdaA^Y^kO5-`>5K44w- z)%6{{r6i(sd{5tcqOVS8=KFa!cd9eENF1A!z&_A1d4x85d!XxA$FEGyx^+f zx@=t--VJY4<)u93*zO1?8w>#43#0hkw}-14?;<~`f<0j~nycCZjx>L#<4wh?tC1XK zHO(5dDxi2jphf;*Z7o-g4SA}B`}{f3m?|nL5KoSdmH}<^cX?oHh!1FeAJ1&RrSg_v z;VW2zDD`J}kMz$ERv029BGw=CJOuZG3RwYWU^Y+-!;qGi-Yh9EpR4!qFg2wnD#1ZK z0-79W+jsAfxaW0R$j5=^sk(ZhGpdq{Dpq$y^2L$OH`?CG6#I!jYa(G^nbnb!Fobz^4${-|Z%Drk}>($bZ6`y#oEA{}MTo zbz3W5%%VXn#|ooT;KaY-C3*x5pDz2p5avCt^N0NBNMla`!vqIf>XgeQS&3D@K-=mS zy4){aHtdFJ_!+-1sHwYf)XLPQsV{Zq73u`De55xz%QVLI7vqlOrazlrN5JY%*`G?- z2l^zp);=J~zOOC7wuiZ8N=&2}!5P6|OqZRPmnTF7XlZI{>a)MA`u;Kb>dE$$Zd+?B zraVPtqwDp>>zUM=8vNwXPbdY(V6cxjKsg_sT|7p}VSVr7>ikggXYl9G{4CtuHC0vd z7|};Zws|QWd}d}ewvH9z<2uCP=o4kP+l(Ui;pgX{mITW)-y%>-OafGmfS2mX%WYKO zX2Y^1mp;b4{eXQO76GgvpWhYSM?}ogkjgUC*Ke88u5>M;RN*|PlK8zXiqe59x19)4 z(b6;zST>GbJyy`dRO_7%{pj+4{O}ebfBc%2^>p&~z)A8eI&WssIqjI^}9rFoKn`^$L|E>#Ha8z$pY zec-dZFUst?3rA-vOG@<#B@_d1qq zkF7B`axD@R3E-cJ4d z_^`L^5-h3xyN5AHjkoog8GkPRMW}@9N$!WIO46B|0p8x9WNqd+3urnyC(NcFU2k8u zKAV`^Wh*|Mnd_-anO1$mA*|Icv6k2uUeBd=StdDYzjL;Bdp?az$6dwXTpC=S-Z|hF zsOFNlP72HVv>IpM9zsxr4rV{F2OKmahOCyeTaP4RQ46Da>Pfo%{9ccM4j+fZ9Y_vL z#inC)PDu#~)cHU`OnA7tv!8ascS=n%W86a5wKm#_9^tt7sOmQX-{f;o~gdqF1z9evw?2PDN3(QuppQFzK z8i)^m<(6~yhNC|kGdxV2=8>LEZ)ok?aoXrE>(QGp762!G#v8EKGUMvtn7- zM{_CmqPqjT4%a{O6+CQ?@sJ)fMZGh!YYe|1VSeBdNe{KTzCNbDtv+b>aK(9-x3eZp zSHe?s^Q&9C|6(e4dbTpIu7{%1Ve1BUn=p0EFU$CPFC?~uoH^oR zc}^GRSD8%_tEl}`+D|+2g0ydTn$5o93~p$=e5^jNR{64XM|vpjM$Qo?x6&u(^d{~7 z+ejY&SoGNQuH9EpT&5_@5$kRZsskvW=2umTSybUashw<_8q{B}6Qb41IVT{2ML?70 zdchS%*buB088c8yJNN-@VAKNGw}}e@Sk(FzI*st1%0MR2tguRDwpEIyRi|hM_jkbg zv>(r`bjPxpPd-I@yt7t!I_tv3Z8gu=(^u^P5QZ1eZqE^gWFS#VP7JybU79l7Brvi7cjN1=!xxE&z`RjrtfcoHD@y$$9OYw zwZt{$cyYAR(F1-@->nmm+#wopJD#qz0T$Dte(=g^T->f_1^CRmO+Ku39z6tB@M~Ss z)GHq~Dy>^TM+sO%6RQU&cS9~|E%vP$E&pD8yR`3b@4pd`-Q=pWB#+`$Jk}e*(EF61 zK(8t8k-bOoPBMkyf+pD}3B_)GfWLdV=&<v zB*e3}fwa2S3>JipS+mME9QS;}&JUPYm>&5z_w9jm62JpmTU)Dsb`ypW@oJH3ENgsr z0vA9$7GoK(*@39>01dywcrXnJBdsZTqB<8V7#B@zgWGQV*?3M+Bi9R7}-;JUxqI$P@k%r7ef zJSoy48xzHAHBN_wyzcnY<)=F{%#Q>~gK46pqG+^gR5+v9V&@6^cQ_nW)AWw?4?}m& z(wCb%KrC2}LA+l>8JCE*+IH~g5ii8!OWY1uCFA=0`z@C)+o!!mLJ6Z|V;we!-|>h8 z``*elIC41*0s9z4kM6c8IjLT94^*$w=uyWGmdHtFGf?}XXh6fZOuf{7JTjYeTob3Q z+?hgNWcS$O&2EOGP?jWSFEcHKgkOR5TZ?FCmDXtlG2jawCFc3@w19TCjR{B|!u zA_0IRJi$0X2XYGVcdwmSJ1GH+qO1Y5c#yA)qg4(}MG;^+eJ9HDpz%L{fvcE%y*8m; zcTtT6G6YiNrmsfT!y@TagW%;^gZAL#!6d_@e2@_kVo4N-{iDcS9mb+LCYT!bsCl6P zfHt#dKu_x6nU(+%@qbIQSiQU;C%_f1bj!k2hXVdvGHr}bHBm9yDpbWU;>Q)?9z#k9slI=`e0l= zW~46fZb*0KSWCgogF z?uiL79+6|lVZUMoueruYJg^wvs3Q}?@+h643QSO^aF#EV+0-bDWb#^PB;{@93!o^2 z=Bvi6*ewAAS6)Ynj2|=}nrDRLHx>+xS7oFyfjcnBBw**GDp}Ggbm-?mHh=%qVybK# zoE2K-z=k#HBZ0CqGCbTNSZBK-myZY5v{N9<_uvjDL=_6k!h!KfhAWlC@YhiJMR~fjPwh1<6FZ^SnLS#ot8t@iO1fURe;QhO1sUz<<&H$Nj;<=L z>Y(X*ZN8p_{57nH3sR=VQ`0R>18FDRaFC~dT;`^%qw2=h|gzdDFb$P*hh@86O-RoS5KnIWeQFO*46=w()#| z-Uws;ulavKDJPY{$q`MTtvXcUQFoc`(0*&-Dx@yd>VWlRHn|~FSwT{WT9eErzbI-u zv^R?H-pW&Cn{ii%KN}F(j8b?hf|ZA#2s7j;5>V-I zve(*nf`^JoP-KNQYjWsJJ=)280h2(Qwi_a@Pg^hdICV304DN|@46vhNd*e|^>j z@G1Z*XJc&*j>WblW*VAYpiO^vbaFEED&JP{$I$Dd^@X=nfD{>Ay@RCobu5^#_|~&PDjeCQ*(P|1tWAtRK}& z0<63(W$lF$$USt;-0q$pSllP2$~a2xQWYAY8(dP4Pe=f!_czoWY0+t9-C+0WoWW}`A8b@gpT`u{M`udCi?&u66a$pn;2Xpkz-cZi*$cFFoLpQ) z+>Q)DPc%8H)-M)foVnh?gtx+lzw>8iNf4|j9qj9vNjwAqu~gqyPig3AmAHgQf%WKO z&kI^tOHr4Ul4mwma`^#)h%w1z+p**0v6?a9JQ7YX%*bfjuszVU5LFBap()-UVec92 zQkznl!suh-+Yf~e4VM;R-;;eYQQw)BaJ76K`NP5cj8@6;cou5PWjd#J9m69`Wbi4z z&|Y}^qgq`z>i4cj4%$#@?V8E2fp!3y#P26wq!JSagV$an%63btm5RmTAATn*Dk>$~ z;W2E1ud#ZSnQ~$pPico80#7T`g2d_I*CpKbvJP zAm!Cvqd}_*PGtGRZxk3NL-^1mCGP&d%cGebxcL&DFHIw|IMTrinG^{IrpIyKFw%!< z3;G;I>nmhIy%s2m&)LoE8=#F0zH?Pgj-g5@bI`=Fu9>7CX4r7 z70;fSB$Sy=mOw@GsC#`;o@w-IS6T}-hQBe=87Hyp^lL3nr?FBCSSORFV#-~M(YHCM z3voM$7UXzuY;2stGxWu{r=yqZD%Z*=5ItM-dmk2Vm$}bkegKRHT7_9PP#|+H>NY)I zG5qp7PgRy!Qr)oRy8YAp*>0b{U)3>bJd^5uyG~}T`rS$9y5^}Fo)p(x_}gmN!_{5@ zg98_vxmuU84O@UQCE|5=ZS=k$OQ-pKu>)L7Q!ii9)Au`&IX>6?@PW~s!+N>nEBX(1 zH#axzK;No>kdUnU;NW0nw4ZR<(N+3hw_8+biK7lFvM+B*u&+LN(Lc8emY-6sUTOrY^l&W62lyHMB*dBj{aQ$G48W+sPk}2+2zd?%EvA z)9a#c`sdNsBWn|5%KYpC0*3IkV^{eU1Mv#_%MFubQ-vCUxicf(ey^87yrBu)bZeXjN zqT=z{zMkdD0X!$!=EB}WbGB4cny+fHArktVsQnp3Pe)*;8v%Bgq0a;MMd`HaWiqHU zQcX@Val!o4adO3Dy9;mW<4jf9^FqU{)p%~jf5oaFClF<6#!g5gr|!e^E|T=*SU_P(_stfQ$)O5&=@m^g^l$Uc>JMwO-THe_ne`sO7ibn($^Rb9 zObjcyl3Z7PIqBDvYG5e0${I5vG;z_NXFHIwMXn~*C6;Ee;9>F+Z`7RdB8f3ho^T+E zhF9pIJ)+9x*FuRH@v$aFbLvEv^i|_WL|{7XOMcV6R$ow1P+NPw*cw;@l;zt$$|uZ9 zd~aqic`p?SpBO~6hUakH3&;L2iopMt8~bTfAv+ZzRp%!LPfn^&-|mq)Fj z;x?o35s{Ik409E-#Q+1`d;NB@b?+VLrP6>j(%EnLRlGFiCsQ|dKYwPuj_lbJkhq@B zaaKIe8LOKc8}dF6L-hn|5OQEbL8@>)KLDDmI``}62M7%0q6#U0(h>7 zEWgeB8-M_6;Hc!OL_^1$RHFF!CV9I>S~%~t9F}FoK5KQg+XftIj@`{A14GI-`m)xE z(s>)hZW|XO{a~G8_+i)~+FYv|eVw)OT%!&Lj~B9D(yj|s9l4X>GV=I8FuV$Q0B zP;?Y46+Ic`70n+{d5^M-wMg$M$Y6NUb`~-4?PWS-kSet|jKf-a87GA?g7a?FScu36mG7#61%=SJtRtUHXaT{@jE6%NY1Xfd}P&v&ikRdELpm|s~giOR10kd+e z=?GS;n8FO>uz9axglyXua!R!!U7FV~1jgi84s^W%sdP7S>YC^1dO^;x9}yEzKkU3X zx4({85|Ph_epd35AulK`RoqPv^F)KI`LOh0{u3sds4YOsdFtxw+MWYd;{qp0wum%gKA}xe>>OUWA0_F+fP(s=(bP>8(!SOI-U{{?LX>GEZV6&VZa05q>k-okU zA!<_khXY_PWh^Tz^D|3-BKqJ>_=2baTC~^;P2jxpNZQz#>Nucv1$nJC7Z{hS3v)DgXSd#l9qp6AdP*r>tzzl2*bwm_##!F3~>Bz}NSfMSmBm!>C zZRR>q#5A$BZ$|0PWKvt7+?X{;Y_M?F$Y8HsUN(AGi7e`Gs@#sYuQH1_V)PN%LhMr4{nKi$+yT~ zcc#d-Z&1pihd%80GHBirRxj)Biv08nhm&?UClab4yEHSSc!56W z&xU2_N$QQ?1m|PEV{B-Q9?Cb# zpkjK%rF5N7*BHsAL1B9)+(C?+!4mVi`m92UF7INT>$64%hoNe~=fDc>%{v_cjQ<)N z`^*d2);+;}=EVRE_GAyZ?$~npka7b+IgT_iHXMwtZEfX#pe+RWApn{Krz>CeBr^^}8SjXA#0-LfQ-~vlV6<+{`&MLK z_XyqTiVvF=FYv)4%1Hxr7B^VMY{Cc*3JO1G1+cLZKQ?@o5)o+!O2`4B;=*(&6uNhL zc_|;7kbuVxHfJL4xGdHK;J4u`B-Ar9g4G9X&W8p2{M}vp#qGsOXPw`UZ|tj%a_LpI zFJ^E^JUSy@yl3S}FMLgVfr2p9DNIp2m(YqHfYbuPkb)1E3~p8APe60Y>k@9_Ju>ZY zO;++KAl3YWQ$_MQB#}G9vEXu#7cGU5jR3ek-MW^qa0P{HwD#K!54C4TaJ-<0zkZaR znfK!N64q2#6&J=uak~=DD!96R!fovju)Mhfo}svDO3is^PFdxvuJWu1ueh+^Pz{~g zZ=NVRJhD?Sj?<4~B#Uxn!MxcoZi5jd8F4m8+S0s>EtzD>+Uc59VoD(Gt0kZNsSVpS zj)*@279?VDLAd}5&=$ce-U}|TJBW$`)zf=j`b-TWA!zXnfGO`eIy&l@nV1B80KQ|( zaO0+}_CV+R7NEbqFv>lXl9CqVz{OSA7|0SpU?CI8DJVF#`E2~0eSX~ERQUw`}RW|ZCv^zQx}C)kpogp15B$b|H{MVu@l+xYLqu%d&Qa_ zXKk|3UI%jF_X_o91|N_)E)OADpN-05)V>Qf$A*JbXc(i85W>=Kdga*a7(k5GEn zHcnGWl0a&H`uOJ9REQAFF zynch@`EhsATMr8WJCo1`WQTLW%Rkz`u zC`cHzNQ0zEmkUH1rBhHrS`ZMBkWf;<014@m1(MP!-6=>)EV?D71*B{4<@@eE`^81Nc7ge%U8Try! zafp@trBaBV?zJkEk?rZqNeb`@NnPrWl#(sI>#&_J8pq_kdv?T^SWjdg-z_y@{RKg!bMB_aYtOZ|fi zVP)=@&yNK2f>}pn6rX|2>ejA{yLv-8|^MTM|RW@aWsCqF44 z0`UjdWps3OgM)*|d+W@MdU|@bApvQ{#XC^v#pc~iK2AWWkU2d)<(F`nztm$28kUbV z)YR{}vP|#uHzjLkT@x`Apo)h9Y~Y?iqPTmsTTM;P`w4*&&=c)!ZH?Bw7A3?_9vK{b z^x(m}c2L<+r^4n6WJ|(5Kw0*=nVX&66i;=_{MRR=a7-p)z?)u#fxLiJ@$x&K1ygi) z8ct|kXG#31Tc3VAukM5T)}eMSVb}O+VMHTAH;vNu=x=A&a`w+>d-ZJz zd&W@Dse*W4yiS_(%CnOvbNf~C$KGsnyr$=AB4_JQ%7cPKBBdJ6u`@&4oezW&C%K_?c?;q9HJytog)n)-dJBC(HENAW|k zM0;NRs78KJwI|urZRPdJD0zQfDB`1l7Dd1rKlRgnKIbUMDxa!G`qP+Sb!mfPUnOGl zh6^lTBHHV$pFO+S6o*7+e(&$Udi@gC1#T`b4A|nT%s>SzD=C4FHR$6< zTmov?FM!2~kuN z!GRnW&hcICl8cz1ZwGNl5o$)Vp%OnAajmYI@2n-dh97z!)Q+r4h`I`F{O~wEJGPt_ z<>$Ab{pJr#R#4V)8B`&{6hH&kJ_iu6IT6og5dnez(NT6gqcZDJfF9DU-^JwXR~A_f zX2UdnLpd59aImmY*n`P}x(0YWtdiz|`3EMWk2j`i+}?{d-idVTdaZduU5Lt~W;jxD_{RWMBlOF zP}V8t`HKqZc>X7wPtQ&cx67TJoZ8&spBXyR;n3q4R?Lr5H{a@+DyirBlgJgAo);c~ zu<2!Vh>0B*R+pn@FaKs5?B(pSu0G6j(0GB_n9H#2v28`->th}EP3~|~P2bfiy_-6p z_((g4d8YS|Usnd+h;?(`<*_!fKu~ro#|@ub*XH)r?WazA3=H%?JmKMT?zufw8@7M) zvFzw*Yjt(ith^}k(P_?<_@3=Xw9=iR4&(bCb}c=ozm}1E(@xXc$GW1rG>d{IFU!_X z*QX}-JE~cpF9dC8f6J!TNzqoy{kC)e7qiC6bjbl#+xYK<9ryVghx01Oj2@?hni9Hc ziS11Eb9Z_34%?~kR3M&BNu)hoaCLpOUTBuUzYwxfl3_76O?I?Q;G53<0DrTy_x<}! zmQ2$xCAI_Z8YIn|Y9*?jd|yBJoNrfp?6M3pO}AUe>bSL9j0v>-uKTD^kzWmKv+;5} zbyZcxZ-%vQr5PC+|IjKm>{K=I>qQaV%>&j$wdETJ&fn|fPqqU=YVX!*b-42Sq&kFo zI_k%*i$5q;_0lP)Vo3af%=KB~byZFd=ik-@aR-Qb{s!f;#-_5tf4q$FWUC=yii}`~ znmUd~)N9~yIZ-0WLmAmaEBq8;6KmpPgv-I?J57g-Hl|E>yN8Nq_uV&3Vlp|HOtz%* zHO{{MKffu<40U~vkm%Ii&zO=`0wpo1hKgpc;JtYwQ$F3zr?R{geNL{bM<9(7z;FKM zXrXHcKOOxDs;a7&uf3T5ySId_e02Jx>|CgsPett61bxAZ;48wo?Tn4XeM*~*>6PiH zoBkd&D#@-hl72_Z`l6+1g%#g-;b7*=#sElGX>8&o0aD|ArL$<|?0eaI=Kh6Vz;>Rr z(tZ!~w6L_yDk!+Eih4Pj>HNL|Ey-(8(TTos8mgA@AS+U=&_;BHj&Z{R{YvKGIR!D6 z2*sWqfmi?&(fA?FZXNM+v~24WNoNtu_5Nk2-%mNB!s%_sgI{U;-2s6YM&u8BTJ{g7 z0?V$3zrk^UAHNx)I{Y$ql4kZJS{s~J%%$AH_*rd9B33DFUU9rEb&L$82^ij2?*ucC zhN`fN_jJCNh-jzu{U`_YX%4Iggp4#5(=qvq@^X|V7x}OfJ zumVPl27!k>?Jz)phM{Dv6OFhh@|mZE0iL@sUiQ3_li}|NE#ZTWf1l$lVg1h!mQK*j zpe1Ta*wJQ+d|yz@vz?k*kzB<#)k4)5iqPe9KYmVF6R+L0f2U@a^VWZqj9y$VCMG)n z*PiJ_54=S*^D6a@jd27*$+!*sQT)B~Q&?@XD>i+(3i^ipM|7nm`N8tmgUsB?>EYEB zG@qgFldxk|MbONdHXK4LfWX(8pn5T(Qu#`2YG3V^);=-|M&P+ds>n zF?SDJyiLd9b8l~X)kWX=IqpogdlC)Lt9_OQkec5W( zm7QzB@Pu-Ei`R#G=1mjPHKHYMnl1SfU92uDgiXu(o^$8R)YsXyORnm#g5BhIL_pb6 zlUSX!_dG>H{U@}m;)lecG^auD&Yrx=KOEkUHrOv%;_>q!;Clum0tI6IEaP~mNweJl zNX!R%ZI`AritxA@ir9}GSvG4i<^Tn6&Wvb=E z&7x7D8?%&3U&$cxSg1pSrk;cg5$z$3J?eEv;?i>s{)0m7lLAK5gs} zOXf5(BG3I|i7CZd!1H72%xh5G>#XL4jmWUZ#s1*;Pg$@RD=DFc=s5&+|K5ME;GE>_ zjW?mim=)VV3FomEZpip>`Nh-9Rqg63A?MF-FIEPo)$-1^Rv2JxML3!5wWVd`cJXhH zyvewD{V)WIgAt0uF+_hz2&i0QQx*14dlOSrQ(*%h7a#8d-Y-BkefNt%71bLx${bS{ zWbftCMPI!<&9!8QSt5(lx|f{(8s+BrYq7UCFL@(xQra*7mmdGYQsa|1Vvi4-qkO0Z zoziqsd*YipJF9hj^}$f2Fk*IzJLrrTnRSAI<5p}}FrDaI;`PnV`j@L(g;Li+`Eh^) z&!JOm_w*ZmSm1e~WbVla43SjJoaFnc4T*C1)v!E)#FL*93^Lt5i&Xn6g){YQF?cEu zm&v|=pz>vmG}cI-*(UxiuBF2ud(ABGN(xUvTeg3SiI!Ou7uGN8YwQd~-c1%J$V(Dq zlyJ73=#|H^HXKy_Hr#!-^h%`?92)-SQlU%hZ+I(fV=D_>2Sjfr7^$_1?~CqF?0nw* zv46_$rMZ#+YNx?M%ya`WKdC{X_j>jm)Pvk2c-EhFGXkR0if7$X{?OcsUcU zz+Azk0oc^r5y`^5((-aJh_FB)H#Tfj?kqSQ&de}erlh3Ah>@XgBvX85{+jMNRi-7$ z60Trgci)4fKR^C7mHXr}J%~t(t@LDF&-P5=@X}Sg(2*EfoikZE&-VOFl83A+fKc1U z-rYv>%g9Vt6eE)W*r1?;`(wL*{;d7_#ej+XuCcQ-a5gkGH>|6RN&26Z+x$?nx?xSd zDl+`lN|*Weui~Wm)jRWQdz(e?nBP?*IG(du>0(P0i@uTPr)F251v$Uq?b{KeZnY93 zB4dc~2I_X?=QPNf$R5@l z6UqJ&Z+VB&P3c^GR~)%B`iB0)H}!^jjCM|Y>Nv&jYXz1$hFUG@-?POYZCLG((md0y z&1SkM_d-@T-O^vNHmmR*QVYM3ag~jZni^>^de(eQ$DS?5K=(q4m8I)Q^`g3+}`0D2od@Ecl-4EUty2p~~ zeZ4H@^ZBOt%XECX+BtvT{`b9aEOf<0NWSG~W~@k$4r#p9qO(hB zVge10;gSh|re$Amd}|TG=10^wy5f>jUw#>x?{5`eMeGl?>}#G+ zvfNezO=yppbd2JP^QDBPGGl1@&Sy?1Mx$&G17 zyBUEp3VjbBqoWuoxn$B4YQ%<8@yff}Iy3YJohp6h4JE?O%g=P98CUPM5|b!DALhvB z0OkHV;Y;~310S+~6TGJ){-_|WL?tJ6MZ)xBAGz_hr^xxISc2Tt$mZCv^p}_ZO$vk9 z40$7wl`aDD;nqOOk1N+7UwZr7TMt{3FxgW1{89Fc2Muq2Wjpvh4^waV{c1fx((NQC zK=^oWJ%cftyIkk9{iQi}8o|6`lk6%K#ei zrK7X6nDufjE2+=jHjQNEnH4ZI!D!08os^yzJ)^ z3z@#M`MKWv65;phr$yVH$=qg-mvS?8jcZwmXCvX~+P2mJFHmNX5YAwr>RkTgnJs{G>eKS_vg zY;4TTWXtSmZpJzTP0a{jC8>pO{*B^u?z_6QcTv74V%X%j)3|WXeC0mq@?MVb?;0$5 zHO|u+J${HUxGwK^O8*!_?}fn-kQ-uwz#I|FC`<`?*(O)%=m^?@a+9lgH@y04uL}^i22+6G%J-KY%Pda|Via_ZKY&F@~yz%n1IA6-{;S7h5o|7|j>m#G%GdPKI zX$8$An^gJTwtp2^)d%zhoqszg_0c4`MpAOR_saZac&Uys@bZHy&c?eLA0RUHB-qn& zA?|Xb`hC}I{YUxIi8y(Zb%rO!hm!O6Zg`TO%#7L9(CaUqvnNs&&ix2(i&Q8`bdxqt zR6C4RQ%es$i*xE#P>SmBZno*?WnDj-IKGRZYrxm2+b$J(&^vA6ZtWLV@~j@&xP97+pB99&tj@dz*Tl$%)w9fiIU?!Gy2 z@n}=B&uh0pD^AeNl49U8D1!$?-pBb=`4q86W3Be3%FEoh87pDu;=<<{uma&(PGDf5 zAazh&oSu}F6a>$A!it~ufI_Kfe4Iv(aS^!K@bAyB-PK_b#CUjk=o=VFYkQ}F*ok;& z4Jr6M>FSXI#Q!iU!q+A$Ny#a$Yp`7l{SB~{lhFNl0Id1O5#zqhH>eik;UP>Av7g0u ze8nvH5oU{|#3~SEz|0F~Tu+J~WT=TdF5*{ut&Q*>Ib&W1{%$So`iF+JD62dUi@M(X z`r;-~_3hrfc=ztz83Wiore(Mu{5Gyi0QP#Pui&RARHhw;hzIE^_VlbA9ND?KYY<{G zIpQ7R(bNOmnpL9i%-CG^#qbzIK(fR+e_z^^VzlnjbXr-8AoMY#Y>-}4fR~o|_UAtY6 zjn>pTRG9L!e*DbhD`g_f7rab;6ohmkm{6RI;Sd&d9B)eu@)F6tGW3VAhi!OH-)_D@ zNSKLIzt{aYL$0;%%dwHzr#K(5W5$b0y0UDd~@d7h&~A zZVnEnRKTHTY)1-zf>r?H$?qJgCcsaMzvpcYc6nuGEVv#_-H2jgVL_Ad3krw^n2RZU z$pXo_-;&a@=r}v?LtF>~^7pR8=wkfCcDX;z=@j&pJUl$Vtu&2oY}P@W(02dTt37x< znD0$aPZN=WwNXOP|?sDw-T$Qk)2N$E3sO80R%yIz`x?qDglc&tOCP)yg?M2;cjC1{fLV6{@(`T zeC~Q%fAhFUVs`O7lqi3rl<*Zz0$>A-yHaG{qyg`Ug_Aa@sC)nOA=YG$D8G(<+D0C z6;7k34-1<%ufNWC$Sxgw?Yx#!{{W9lN;XEEhcq5pX*1u`DoJ-;!zw@r8NC{GGI;lU z!=#&iPQJmj5+1R8Z#!*tbQcHO_M;ueKU9q2=2@y^$8in5?O*gmM$>k`z_uWcrQ=^UO z^RGq_@`RNjE0TnRpQp$Kt!A=wT43be`7Ofhl`XM(&LKD$xj&!2z43b7b^q*qnq9)1 z4t3PIyuRM;llI9sB!mb}txF&$v_B(54U*kvQ5A|Ux}%Yc{Pg9(JD|2r@@g<9aMKsn zsCruKJq|S&uFM(+;#-fG5!iZq);ZzNBi;g5X;oxgwuN);nR@rDp&N4ys+_)$QL{+$ z3J*TS^@;57kGf>Bc;0sH{@E(=#5|njPKa~nBC;L$#8wyMSyDH5nA;u0L-^A8^=5I< zkc3gEz5*S)jip`}pM?1JjW1CVy$KJ6F0a2|zHG%hhLqc~BLDt1!S-i>Y}nDV!8)5c z4LMCK6XlTei|I%lcH+zcgMfuHI~{hLz$KgRIl+FzD8*L~r7K^`tK#{;owJ^kU*x>dLAD4&gJy8=Gu;40;b$<-?cmC0UxIhQ2)ZLdcXc4`L3pyb$+t_Z z->>$r?gltYW2}Q=+7#Y`cN;A5UB11=S7@@aww}iVA(+o48K0KrgHJGQRH&+|4jqCY z!gPiG98@z*Q(&fclb(*Q8@DS_l70h5gM({Z{*>q7QL5nlRf090FP4O!zQ9)w907?| zoT>l`0Zrsr9(2{TRLIK7>E4w8ztj$>UwA%y*}1a7>=Xu5OcbY|JGX#$c%{M=o$sel zl-R)k$b;1rjggf7-hlNp0|CPR5)(hcJSAJRBl?(HU9EM0GZbgOR&5ui;${X4Q>%4&K@*@NNPtuxh%He=xF(bw0##2vx2Kj{0hDy)K|g}dl( zU@uy%-!80x3fNLa*tnPoPc)JGbaChMz88IRfU&p|{*sROczUUQ>c`tk;wp(Z5(#w) zzVf&d*KK4x-g(60pB;r5Jw18r#Z&m`mcqD+ui$xJAAYZshg^35R?g|WXlMVMe>=kL zTqe~M(%UV5v!k((5Zb2JoxcveU8?-62O`IV&A2U!m)4I_)3?fJT%@(tedx$eCU6$y zkV86*?#AmQU$L^{1kA34bbS`32m|90K4%ajzW^Fr$3$o-aRuxL=jXtYHn|r{!?*S~58@7C{9KgqI0%)6cQK384gKVl z3T4;^GTd`FOiavQCYspZ_x=6+q_6`E6&^pPoQS(^mn}vzR}X$d%RFnJIJNU5aSIHp zeP>|hHrPAUz+O~b+_$i_^qpz;gfl(RUJrupYfh`C9g8wwtxUpau>#x~fBgIrf9HWn zZc)+IM!*Y0jHX4f0IKzq!o5YI8NuGlc+WSp%QufVN!UGLJa$2;RT`=FQ9Z?yk-gsG zRO$BJ^6l1+N99^SIX-m0G@tq^mWij(ID4z*d14;-sq?b4Ufo=PHs9^%&&Xf-s|S|P zkl*Ge+{#TX?lt^VAbZ{LI`Rd*eT+$?)f=8T^E#iXaeZ!^ z3m~;oN_7#Gy*xkMNwm?wqde%xbex`}u4`(=QZk|L>~&XT@%(9B;Jl=owt-cL&G#bm zlBM<74`rT_p1XO2F7tfpIsZd<8i|6c61h$VhEhx*NHn#*3r6I(p8en}|MCUf*3j_! z7xc7t<;s;$oo=wSzy~o|7Kr)ZQC54N9)VL@B`$FfFh{s1035ex1&dHW{Ti1rd9YeZ zGX)u`zKGysW#vu)j2Ku(96e7C?3b58d3tbVgfPq!l@4~pl*Pae1K7N|%58sRy+7+B zZ1e!2LYQ|^mW_d((+CE-SA#~(Ll6czFX9N+c)Fd2H&|UhSKvj|Le`(EtB-+R`3(VK zxvm8p>`;qZDCpRW;Q=mGD5&hk!C38U(vnUM8s%$6Hk6KZ9qv|lV+4p@+{ z3^EWcX6rxKG4a&#m)=I}^!cYW&Rsm-{p0x3nE;>Qy=}XAc#iPxBlW%!9Hwt?X};ji z{xaJDw=De60thJ@?-m#kW4*c`rc!aawcvN2Jy={>4A`>0Zc9A15@P9_oTQkK6J?%xlM z>;kS3>_0+8sojCLKt@h(VutTs6PZA0^`QVG`LUK(I%=6u0D*9Vl`OGK?kZ4Ef#Txq z=!i#1sHUi>Q)GI1(F#E=L1BXXU__6UjxNuIsWq`U>Usp$`0g_5qSX$F<^vEQDghOH zVpNpRxWi*~mOH~Rz%<_`X!@Ndb0v?hiVEsp5 zS!az47@N8dO5fI_f>h+Oj@X(U-yZiR8+}%|XWT1GG`g_VRmhE*28UbSkXap-6gPk-n ztMaRiC3UBr@Sxd$fAB8gaZdpE1!G*>=g;5yiG$;UiVC>N?xQIPs@-b6H}B&2mzWwM z%}(RV$Y~ZAe=gF^*3rS_X&E)m0iYveFkn zn_w6eLB^c^o2Is^&;OBTV(kBwzp0?o>r}f1%)m+YB_5s~-c8lj$R`v-!aEhzjs!4Q z#`?T|dghDB!%#tm!!4pPGkZKiMuW?&%9Aga)lIrPV+coTDk`1wVx#VQk)vZ{ECp0{ zBk!Wol`b4p(}``}ouZ&o!VKxX>LOjoywv(f*caaXUU-Y(e)HraKJGnN*UD5K;!E&H zsRM#9mY1>hj0IxBEmJO)pE@Xb@h$`US~Au@SNJIPMKlZzH!OJ2_cIWSNFk%83NN!p zDCP_bsOI!pe3VN~r6T$JHU?E?h7ky$dTXOcsylb6g1`e-{ua|e-$Fl!`S-cms4P(3 z7Zk|f14UDioczw;JANu(wA8&IEspPd{?+IruZ^`0?e_;hJW8w;pBf)!>5vt93@VKE z`Xu4%FA)9GrD$C6*}!|lp!wp#TGeCXFP*skv)L=Nlh+K~hOI)Q6&uJS;@!s_Hzy`c zSwUK|WV(I&`+j&kD&l7At)*v*8!;-ZsR`!AI)^2XxqL-I%g6vGX4%85!EAhN(d8MoiIYt_Qd_O`SaiD2owwLGsbx2SwpQ z=X$W%oCox=I^X>mKKb{(_c@~Gh1yL8qzOi?wS=w(wv5Mv)YAnLW4G%zX-`|J+Ognp zUp-ATjNtEsap(tqRPg?Q$LIWYc(8UHK55NK9$0=0@@N5SN4LzsnG}aix;txekd2y; zm#tQn--5LM4z+x99i2%A7zxh3=z+4v5C_>Dd4Pq%_X<85>Q=iUtY$5R{ua&N8V1Hk z3IT3nQ#-p&FU*G?1a7;qZ8z>A#AtAVyio&HpZT_0&fpbyVt6-QEP1aKKz0pmpa#Z5 zYb;a2ftmma^uStU;tTUwJT}KIcAsZ6`{8ugE8Zdu0&D8F5{gJYSRv3r`oyD#)c zQn>0EtMdng{u@`o<{_wUPgu7HfG+0aR#RKco!D_PNG|n08_QLHFfW4zf_ZV4i0Hwq zSLInhzRLbhZ7K(QcywWQ3iTcXMv7blHBjDHwwjvWc7VNO98he)9Bo@l$IwtKdH6Q+ z=#?8M5ipiUV$#kPRsMOw_n?!iT2fPYcfHRH{|_G{aO1$F5(ym1si3qQjli zg{8$sLL#C^?>vABAS)%eyZ%S(y7kpVNf~TAXa~?@Urn?XxO;jUiW@$DeE((}81TUY z4A}T5s*nGsXaB_(`Wc{_W>z-Y_(z|8z$C`49Cd#6>g>SS*;#x2b!U-PDbnhNf%e$~ z=LK85y3bP`b#@fOAlz<{Y%7_Q^PGe@DY#bxPX&yF>BvEw2mV6Y(h>?8D5e?Oe_nr8 zUU-|Y>e|T$CbOLF9*m<9vwq0&^7ZSyy)&?N&e`2h%3{Nu zfV}bP-#1ws8D3dlTU*=O`da1Sw=n&;ab8jSSofjt|L)_0tP>Q+*JNWKV400U^V;17UH^Py)nBwD zGe!ja92#(pPk1e^6bE)?z z2R5@dRGte6I*vTRIEYg!L-#tSc*{8^+slC|Y}w~k%o~vXC)Z?!QNcr5*bUfw+)zjBkVYwO+5fMBm=Jw|oEP-p!mDfJ(aY7(CMjI5jdx6bP1t*+8dU~Fo-;e~R zkchA_<&fT=&9yZZLOyYEIz-$o-BJDK2Qhtc4EpVR4sO51+SfOD@3Fagm@(TsQZhkH zreqU{-2)!|p@+ov5D1)Y12eQ#7aUETVXT4m`^G7Kb#p6xeIW|W*3M@YnuGWk9CY&c zKTQ#p15pEScx~r=cG*2d%n){OHJnz4^^^v;!Y8 zMTk`T`c@Q`rz53^!1}tVq-4nH@cg{#-}L`>yE|=W)dpjukX)=F`r82S`i2Eqm2^)n^+M(*A1CNI7q$f3*SM_wdb#7D|qp1Z$4|MRxW z{*?1ZO|9l@qtB8&&Of^1T^H}bW|f`Cdd&!R$OXUWkFAp|y1pBvwOl zNMU=XUsd4Dvzsn*UsF@ln}dt%qa_@Yle9chxzlrzl%75$4UF(ztzkPc)no_W*Md^i z0;UR}V(=8QojAxLIW=T@F=}_6Rz&}7u|(1+ARwTj64=Nn{W=dSY8dp>4;MlN-^7c& z%odabw`KxnpbncL2`6Hb1fnRYj7|_5y=ki#1Y_x%6u);sRl$ad=pj_&_kGyQ(pj9u z7?G~Z&IoWij)Cdr1Km>dZY20(&V2vzgNKcc4FYqI^gzCeOLRT=#dp9L&AUFmQ6jIU zjEIiL-TyiT6!q@UqQkIN8yX@X#n}#kDBfh{Cmc$J=iP74fB(e7ZD7SGq?e!-uC1-5 zI+J*P1WgI28vvxNRnZ9&Og_ayfk_G6hSv?DQBg19ER~b4_&X6sW7Nkh&A=K9*aBbJ zkxPGI;|W@SN-Vb}Oe2DOk@cKAIe%@{ARrKY{7w?_ILca9I zv{cUDcpB{QrKp4Co`3xI{d=>5si~=a@~rIr*p5!S1w0%B$(gr=KfgT18KoBA0JQc% zI`?eQ&y$y=qN^jG{4xgD9L@w_bx<>4)-AR9IV1#xsdm7;z3YQZQx8!Ri{G#-ZgO$C z(hV-V8oZTuEdgYpc>t>=Qp0BmV2Hn5Vv1|=0*9bGzX4leeDd^rFgFj6Ed+J9;8h_( zVgT+T;MA29Crm!q&I>19mjb#WHs*PDLN!|ORs^I37655y`SVwlnT8_bglsyxyYsTL z;3Sadt6=^1i%#4Pu?y#y(5i}k@9yq~z^43|?;l@&))9t&J~&H+MXc=!01zA;96&+8 z#4W0E#TxlRMx_WJYj%!tDyf1Z9MB0T<9ZBluWL9bJh@*Bo?!TV1W?_Uz(MV!*Xfa< zhy1uUEe9q|w4r$HEw0CEJBECRl8ZVt()q-k02^hMo9(!Wi!0#{ARyuU%vWEx0J8$8Zi)`r z0}J4RPpt2r^7nV9@7tb83Bdt4ST}s%bcKe7f-9j3`E1@|okG50ZPk;;w{Ng6UZ8BU zgC?{QjNnA2q%dKwTU~`Uo0$irx3pgCA(f!jfaJOWM3|sSR8@(@-b+!YFa}Ejgr)ym z6;(B<^!#Bb=_^8+)vxg}#v8mDLNc%=Vd$8TDQm4e5-u$(GpPX@pU{QcjErYaPKZ`- z!}ePzSQ<^V?p2+ZRUgZ(&D50D?{G3@=j0HqZ*nDABJ6z+9TOrV-Yurc297v2ZO+Vi zpTkHzN52%Y%Ov?e9Xxuf9KT|pf%DRH!V}069|pMD)FE6TuVdD{>w@cunF9FQ~ zzd}Z`ike!qakJ^q!H7G}vkL<}a|?Pe9zS{f`@`j?B37Dn%{~u2F7D5uM!HB)2lmL6 zAv^wyWj5oP+WOG}OH7XUifd}(k(o6g<(Py1scX%9+_3KdC=Cg@G}e?939Q#$Se8!8E9zy1Xk9A z$4|7^@E~^okzT(@Dyx;iPUVRpGEvl@f+GOn)`f?lK z)~XLOzC1WWKAG(g9hn>*zTMQRk+$b$5fqI2)#QnZan5$-z~J#yqehGX3Q0*x{TK7` zlp#x4b*by9SEeI{2&GFS5jtu+l()VLWYB@m@gwLKW004&E!2<*etPY%co1)1yU zP{jqWQ;w0|I&pV#p)4_-Zwsq(WY1{Y>wY6I@&=40^9R25FkLkTyu8Oi(%A>!Q@xi!hPwUnv#OQP7!JeZY3AHfst^7+s~a0zrhT5V<@zuy851u zrY2LfZ+lbDO-J9B&Mbr0K=T&|oaa2~YUTJ0K7YLs%Oi;kwj!Yhol}IN@r{J>{{Fkt zhKzoRT(KGtg9W0HcSBjJ>UjU$Ut!{Wf>mZWZ95}So|MFZ00%rd)eHXDC>nLHHbX<~ zgJZ3pC_`8a1Ic4h1;B~b2B)OtbZ-LDr*WT3y4Vtq2mI?umbQbt_^Dv{WkF6(E};9# zkI0|LV6pHGLRCQUPTww)@{7y6s@fU)_fMt3_ApC4C}Rse*}}=c)n35`{e9mA9AYDh z8zLGBvJC<2Ph20bn(UcIKdAml@!SDDU83H|XRA}Y(Qch+L@;5Dv-734TZt=JTCyWZ zSylK>r%8S%Ew0Q~I^o_YLt+ud7)vQB1yFl|dE0?3Ooz#0o+rX6zc-4yPW|EZ@9q$I}WzsP}QGDC_#B2&SL467To~uVg z=X%!fK*j6jICk!BQHMhwr3P|+nd02skE-&oo>}y~QgQQ%a^Zoa{YFP)H`6i*VuC+( zaL7+80p`ptF8;bBk{wRo0+KX-2=M;n>Kqo75(utU-Vdg_g?kPH>awq28x7y9j|;RSuHPwl9xj11yJGq=zZ0_{7A;WB+Z5f6Qb5 z5JF|W?`~<4RSjm1MaKVfQ^nV;k)E6aKGUz)9v+{}Ax_>qv!H78ezT(+P_0XGrkClm?LQx|Q$y_err~Vba}T+D2K& zd;7wL3rTR|S*usQ=jreBKg$og2U{G&)_&5rN8R}ih*`5YOsZL1se#&rbRyR}fFZ*l zMEU898Na7M(@p$`2Yf5{V^gRoD83iKQDvBEAT2!u75i^>DiZ9&t0sg9sT2(TM~@&# z?VAsw@HXp0kWKuuv9L&D<>2jy5$oOe=+Mxl|5}escjO%*a(%)VnRy@97OU$yRKF&x zZzB}mW%)mh5RfB}eK}hAXQe&fxY2=?J7#P9cE%}@-w}6ViBpP6-q){TI&9qBKIWi0 zVy$gb5~KJ^ckZ`y5(#`XHvYaZkM68!S%E0b0;D|>aQNc&Q^0)p68fDiu5qSV$gb-c z8A$?$f$#V6qiHR+129iiQUl)zztL&AhJ9lS=cEpnwS=l5fh| zwbJv{jYR>Lff$OaE0ZAGLxSlx&|k2c0b)>5R(=}m?ZT5V1~K?#4l%DY4`pRM-1)^t zU`_~3Wo}fs?xa&o9xO%8o7Ayh#fm85YE_p5Mqf+odC2Jzp1;ZIobW~)dBz}9@-C5K zruDqFSKD+@=xtW%+e}@_frX;gD5ka>g>i*d{7uSs6v<&cZ|A%iv)mb}n|L0+ePI4m zS7XLU;a0_x`wy(n8QbFGjZNW?OQ*AyFA@%mr(MlG7I!jnEMNUH9b}Dz8O-Xz#&di7 zucf7eSN%b3r~ne3Ah!;I;abmA-R^P|GqVNI?ZBoUHVyr}cGW5ZR#bzNlj}>kgKpAH zIbH4!apBbiQA2XRAmr*wdcVOHbjBq#FPVL_T*QW{o zKXs`pbx~RSg-dkr-}a-4CS`2`ve4C9R%i?m3-n(FcEb+Fvm;`jT%$WAI% z>f{%-l+vMRhH`>YG3&S^aN?H3Hq*x*ZtlVUX)yg8oLFXTFbt=(u#h|)BHZXOb6gVH8mjmhM-!ji=eAy>(+kEuq1R$vD4nqTjsI$jhTC=-5!3`nwlCbY!>U>lg1LMS< z^0YMBU@AJg-9w3M#|2AEbbAMtH6dL=D()Ebo_GNUBCwHE7qXkIx{-Bn@gmuY>4WuM z!^f_PIcMrOSy>0tYkDAV2UA9v0vOM-M%XPpevzj2;6Z9#0!X(bahB7RV+K}hf#fBA z3JaBLImN|*H8HO92O9?2u-Run7i^==7Z@2Diav?PzWj3G@X&Ri`Nee1NB=)<*hO`9 zJkQWXCRo{fZm>nznXQPgxn4}3DgMoNk2MzNCOGYLIfmA3d=KP}rrOTV<%uz0W?n2v zTqvJt>=I?gNkqzrP2K)gt6fJDZulj^fF3nEs&gkDWDnm~m*_CbgkhPoAO{S$hhMIR zEC1U@n0XEyUFl=>*kj41mgkN1{&6Ig9xjqsA-pKHQJyrChJu~e@85;_t3_*3KK(6$ z6gNgpd;XS-9$3yVGI4%~eS)Ge9vPf4>KaEW!ipnc}yQInA&?^z4|CKyy{o2#qi6B7@Y z+|XT!bDyMQ;otrv7Vx+KaD;ZISZa?#G_{{TutllHbBZK1Bse!DnD!3Se*eG#%MwV= z+xVf(Hk=!tA_6|&sG+xSOzb>vn`kR(@B~a9tcQ!ZI?HTg)gdr!YQ}Ls2Ei-om@;Q5 zFYj}^Mz2xW_zr&m0|}QNzHpMLNE~&EgI}{w64 zcXz-h-sR`8z$-9f%aUMA3ZW|Hq*@3rK+Er4z__9F-#>i$D};+-wRXN+_iZcA}Ixf+reXyTt*O(Y9dHYrzf;x!2^%aw2N|#ak zsrZg41mjP$*Y9mK)ytdd!bFefz7qkE&&5X%(w8k3+2FEI?dxs;k?w-5>teK-&eNw) zrL_Uh!dUxkOj(sL8cgcM2){KLK8{Ya)YZ|6wM0TmqObcHQ<|OkzMQm=PwGTJ5b#td zI^7Zia}XMceEb|~-b;r5a|=KIy%cMKSd}!*?GO2Y^kExZgFny2nCT$XWmEf{L~O=i ziCvHR`@~E16P}>0VHAp0$?ks0aU33#rGUJp^u6;!=7 zG6vT$B=MU=50EOXlb^F5Dv7)_aHhSP+4T1US7$$hn>r{RW$9dRGrr}bZvv*W(t}{@ zig92}>5DxK7-2OhXbE`?08Sh|{~w-Oo~SLe`95dwUz%>Y;bj9)dDHtEE10UXM%0U- zC5V{l6c#7?{7w4bQbJIxW}xatTFcg5#CX0AA-Yd<3E;Wk&3yQmb3kW!TnHKauw1nv z{NwD}Kj}ahU7rQwvzj}-<$n~%;@QA|B=XxpM@Pr`A#q^K{1bF4FIT;Q7tYwB3q(sx z425`?PlwLW_|Z|-E*|vsa08I6z{wvFEdA#a8v}WuV*2U!f^x49+=<~XgBJ2hji9|* zF^FHGK`@N>fEL1k#%Ooe{~upE4LOKCJft{YpuaZwvSrK1=XGZYSq`zEd7o@Fy=Bl_ z4H9WSm5->)6&zK%vSB1Q_}^V(5+Lr}ero13DHxHg8tbHaZV}Or_-y$MDdhhObm=Jm zWvBE~|F1~7@lQvNtyC#<^wuG@%d2s(Hz!}uG+|Be-+K1ReM5AAN#Yvs618^L{+P!-~K6I3Pp{H z*0Ew>h>gI{Z+`X`@^M5?^9&o5{#BM@JYn)q7rbO85U%D`>nu)V_s51M2KP<)V#Z_ z!Km}wVEZe^v~1#_`6EiMUbb%7E& z-Px@2WXy-#WM~yE28PB(C~|xsUj_c?33d%siE;kxueFD!x8m;n{_&=(NkuRyoANSR zm5kx7hzqxVe1y_+&E8IETRr_!zNv5IDO;D*la{VQ#(W2{ey=#`$TuB^Ym^b`1p1eACrULH$a96BTfVlOvGNwba*rDd zEIM|I{s}r|PuUPM+C=z5u8VxJ)~u*UwJ2}Z8g{EOb~86GZ>R+sf^^Gn#$rB>h9`WF zA9C3u2+>(;Fl|Dt57fIo;Tu5+?EA$<+8nMsOy2q#_wQS=kmR`UsD}QWVSrz@A9ZgD zA7z*KV*Stk$v?}dm@pg>3np0_^NoC?iU`)Eso@tUGtoDy0;FjFA|;F&1K#OAjZa9Q z4Kfe@@d-noJWqZ4@xQ)VHNFyE1PrCnz9XobW!8$5pN&%32_vlWMrBa@J5Z7g0aB=@ zCxsVBn$WUz?~BkgDDn3&Xwbh=zRxPKROOI)z4K{=GN;>$w@~}lBiwxKFPKL|*P|Bt zI9NE2Wvr`t=oafOjeS;+O%%G_8=sebVviMO3~udPZ$}7}mY|zX1A_{Ms_5moiv<_O zpNaX<;8~`dI=8c&9LWqzvODMA-yi5CCQrO57mj*t^zlhTWIadC`RDgb9v1Hu%j(lokS=JQf z^XHYN2dbppk2&_*G4Ym@u)jUWEXDYt^vzQXH#LzU)aPZy#!2ChL^;9gy>G$xO6Hhj z^^Ec4TVBfR-C~63p61J#lAhL?e_niMAUU!dRsHjPW5TYB?44q3sD3+7`^H&j^^$c+ z@ql7}rcJ`}sN+}rucMsB)o1++)xS8$3{8&;ehd^v7a(vY=ou8{FypY|+9&6yzg=Y} zxnaOF89yOju&yyNv2(j;E{;AUR`yZgK%|PfvH3CmxT4XcSC0g=_0_7LZ?3wBobFJ@ z=Jd#_E3Yc2Js)--Mvcwvx^KI$2I^U|)-xIDpFLi9ig>V)r8%HMLYnDSnxM}S+Oc+4 z5vLS=v!}H?1F7f{-ZgUGd3wfsvc6f4Vt<}>cT2d0HnHRdx6M*Um`)e{hOAX6d=S~Ocf)itMU+I1D2PTUsgy&Hk3Sl^2rsW}0XOoupHP|e# zErn8q^}E3LPiL})7(vs-o`Hz7=#!bhjgdiSprq$~*_D+p7G3(4jn5lDefsp+F_&`f zvFB#d^E-o0`qUHER|1PZDG%SMw5fmoG=IM)W}*bgQg;aXkl3qg&gsLTxhgVB=H0h~ z8@kUP>xB0&JROVwbA2*yJ1{&*Z`#I;$CBG2O*NFd)GvWG{8e4OZ8!h%VbfF)ZBM zs7u@+l`XQEb3rxfvV3qP-%c4&`;bVP!SsW|m#B9N%>g+FC$4cBSp)z0UU*24qfAro)?U2oO$~oVzC729R{5uYB0n?hcg8F`q zoT4_@@la8$qq#t7Lz14}SNAThO+D3!D1#`()OHg&wW#);!2#KC*w@A_G{a5TgcY8) ziMAK~t#G5qKS{=as5jS*{4mc9t;Ac37L4>iC!zcvmp;N&>O~kY@mu|$Y^Ju}rm>WO z#&yzCb939m{G4}hx~Htaq*+Ahg{#yQe`)waM!~Ou#uIYO6Yj&t|IDReRe-b6r}Xu6 z`T7*ynZFq;%YR1K^2PK^?=**cRLzwjU^<3>p<+}Fz1a3H?Us(L4!SYz{mPJUPwR}S zkIvm`R_nK{wC7PCll~%C%fHYcNv>*-OPXBB4Ki8J z)oj6z&xuFax}-`c5Y=C4p>4JIAQ`{TPhdWfkNioE%y3z^Lq?Og+o(KaO#FGXHA`Wg z)y^LmJz(K7 z>LR1DHQ~h3y^ghwkSg~dd%e3d`I$)SY3naEw``#6^}M12L@3q=sSgkh>ml(@A;b!zWm+ZpAZfZb+oz=-3>rB%W(iu?(s@TTpDLIYU| zG%n@)?WW@7Z24`&^X@s0S2ByOeDKSD7b+5TQkeHGw?w&ou{N3o*^eu-rleMDS{6!< zHnEVxCf|DD*RR!&)i$@BD;|63-=kiemQ9Od`YlCDNgCiwKV|%YkA`UaMGm1l={=fL zc9ucgOA8rV5u64KbxnV!23Z-)mzcAGoqniaW&}PUsW-ppdud0_^kT{9qx^b*7J~A+ z7s&#ZBYTwNepCDHiIEwD@D3m2C1z*ylO?ww>JrSdTQsj}TuDBe^|yFu5B@YSba+vR zP;x#Ql+^37+0#g|L%$$(CoX%fn3gfQ@VN9lFZhOOrMgqk;hYkG@U0v*Hm)2tABgwbr&lmT; z#5+Aqj!J4_U+|oY$s@E;7E}#uCaNCS7ORbCUdKraq0*&4#~<=aRo%v7r^7QYc!r=q z<<>|cr8*sLmTj61K@7%7@2l;rAml8qxwhe!!pZz-x0?hj;Klm(lIkp5wo$L^F8B6q z^lZ0SvtCgvoRVQdp>8x%A)*<3$t_TqD4QiaGcP@cnm+Tz$wTojFZZyY+&|X~ z`*V+bCSN^92RQ4z ze->`3?3CX~SzWI>AxQRP8HKYBVSBGZ*-m;*Y2~HyLA&1eGr4C_t7EXGS)vb{^#I10 zSfL!T4rHiTXBjLTBe|Kz@0#LeXD&za?(oUU&H6(Z2%sOG1S|>I=&bGHrqeAj$Pj_p z_x_Jj9-G>jI666)8d{@(l&#Tg6n0ip7E+Ml=Laqqwsyj{uG(xoq+D#IoLtS*iiU~K9L8qrWNdTna#1X5DgtSqEFT)!&;X;xC6KMjC1D98TyK07J* zpN7DF4pMH;zxO#wxj6o&xky<#{w>T6F8fB@*9H?|JSc812L z&@NR5HfCk{Qw6vHM*gD+NJBg4cWodIjQmGpkOoHnBQZz=ZU5K+q@hOsHxtyz|K^(0%8&fmpii#U?Q)jLJH8cMoY_~+gC!rE21zO!`LFrd z$65D!9^cSg7;#Wj^X>)jo~u{A446*E9m+x^vv~Nux5sbsgSwkTW=wA9^Q2~7$A&pG zlEa|I*m{bZwf@u(3btlG*dEKWn&@dd%Uf?qr;e zA>kr@YJhpM`v(q-(82KW`vbnKUkRgWD(Urs2JzfJ;|UKaMo0+MtWj59JavZeds9V( zwDhZGJs57{r3Hcfi)fPqf=p`-(@Jl1F*W5yT(|c3PZD`Yk!ikNcbOqOD>#9%UN zmlzwp@nYJ4w5;vp^CXQ?yWMmcwU^HBRVb$&Ja7zYt1+U~8T7dO2_H;ZZJ83dX6-C; zu|MU(ofzM@enn{0^d@@`nR`|A;Rh3JD+XPEs}4U*XU5W}CQKobyh$f<{l^AmZ#348 zo{&m}#h8zney>G_BP!M`m z)@roqNg0UAxcq8@MTG>BTr5O-i7;TvL!lFsmCl#aC+1fZM^>JqCe_QV(*jg7vCqA% z56N{862i$P;8*a?zO>EC}ZYho%rI3=g=sL zJn^L!&yiHp)=}|y_#_*V^|t>B6$ zASzQ<6q^|E7qOLvHQpi;!Y~TGfN0^$a!5gl)yL9BqhQ|8R1-okmsPfO9+4&x46@Tg zezX}RTHfBTNLw+ab}d`}uYPUazv6G|skBUW#E4!ne@f_&{!G8MQ8;QK)h?0nvot(H z@5EG0*~FztZdv5Ogo7@QDi$UVdcoZmO;|RfgZUvxzCOaYLSd=J*Oa=xw~6zD#ZT5& zCj^OuJJa7WZSK1@x<8Me8F+UdqgNU`qw98IMI?b1kYzdbNoS0r6lQ5GX)y$i>kGrS z_=VH6$Ydd}IFuOhS>c*juFR^Mr~d$zW;Ba>BWYSGhfcdUN+c0kswldi-(?%}LT z^Gbi(xEZHDW;d=c(o?OQ_Oqk%Sq94oZkPte4vl@4-mth3w|#M%|88pmU9bPYZ7u$+ zzW;Y?0e#hjH_-ottp#+`!9&Xa`?dRjw;BI4wi(PKZ2Dm10QOK|m-PR~o&!1$|LdNE zgN5aPyXRQ2BIHK%T4)hg=wwPR8n%s5vSaGv36Ea%6ZmN0?>dm$c{z!|!f@Gt| zhFL8ZyeDnQQHnW(XQY59dnTFvXm}mg!0=W*26xiB*bHHHF$U%Ij<{5|WXPEk&9GNn zfCaY?ruThk3H7`1NZMerOQmmAcTbok#d?F@&Jn)id2^5$RdbnXFCaY-&rI-9{E*S-aJf>_QV)(5g%#wvd@vFU2yr`<)a&( zBRJ&1iNo2Y^BC82y&(FCVHgS?Jfa}ymDa$|zAMcnOGeQuk6gE=p0H)_-50a5`4N4b zFDEjr;%Kz`_4#`JWC0 zWaG`@cL>`NqU?~&%ta4q;FZajuBv)5bbpi>s6;=B?XHiB9jDFxl0uG4=X1GnDJ3pV zdr?OX`Cvmc{?ft&X7MqK{NmaChln?@8|QFkXmmb@Liy|5UJq4tYb zVB^8?@C6LoYe@JVZ{kl}`0_`jy{$_{T|APUki3VU53cki3t-w>VM3%rBZN4$M3rh; z`f(9eGR2I;yA3;ri!><2S6+$QMcGID<8$IOa|Zqz{zNwReHeC2$OLx)k<)<#?cpb$ z&#y8iLd?+_RwOL*(6gRd3T2&Ua*WZ8WY{QR0oHaV4fSs7w=j5s?kDW*d zp|-5}q4L1hk{U@43sS|RX;AIPXFOHoo2(RQ~@!HIwOEgo4?*Vo>tZ0{!%5h<*MaI-TB#`o7QoBWce)ioP;asr~i=h zD`f#e_TigP9&V>6q@lZN>&lY@$+ zUsv!DQ9kZir#_I7^rcwW%^QpeOQ^+i?;aF5ND6bqz@RKYRGNQYMT`fx^Oh$3qhI^d z@WAJtoc*`P3eAaBX_?ZlW4g8tJA3u!-*C*$Q@A8(Tx9dYXr9{i)hVQ#Ka^g#@TE{Z z5E>t%kTp+YYfm&3sXVdp2cY?d+Wkh`lVHbTSB9m`? zgT@9(=bt*q>GV0HU(pOquW=%Tt^Mf!@pI$!Y6r7=8jI*90#g}f6{_Zgmt@;+>br~R zcCN~Vq>Vg9J47lu;XAo@5Yp`EogaDh;p9q=k2?pC&63<_uD>FgK9Z;zFgSPs1Az%ZvO>+SN~bPm7R^8 zpr4e#KS7!Qem`=va{qT9kj%oCPL8ik9Yk!c?QCtJXFoju=~Ut0&uVo`6Yvqr!^O!g zX=-V1;Y7;L!T#sN^`A4I|MDR^?k1@+NAk$7nxi=R&C_hLpg@+9-Z3sM4!P-1k2Ctu zIC`=3Y3a)RzTh)dyO)2W@!1YL%aH3JPmg?z6-kLQP$4^G*DITnupqK=PRz8DVxNC=gKj0qg*Y_`%@r@uqIk8 zv&w450=*xJiw-DZ0>2|ukfVd2sllEeT1G}WLV&Kr6(I!t`p>AS0L=t5bE)&rI3DsN z*3nPf{p+J0ve3e>nZp+Vr(TD>hDLm#BP}g0;64EGn$nVz&%wbMcuJgG`Ge6ecM9|G zK@)+5$S;}r`EP*FARxQ|FeUPdP(og4cq1d2C&D5ka@gc)+p=!vGc!LDoaCvfi>0pn zn1!Lze)b^+0YvLBa{=-yNM~bfD}Q3A^CMu+3Kci5K)X~i@8v5LkgrA&7X>n9)I3bs z1Jr!LjTW$VfS~g@=z{=IVZjj$LL5I30rF=j91j+RDO>xZM*ykv_RtaltDz+#BBBEb zi=^J9$4oUgJ`Qw_@^i|4uIy$`z)Fq*Omo{^1j|xMO6?CIUT$t~8Gu+P^T&@L>+Enp z6AE1J)}BD^xT#RaO%B+jXq9sSKgh(`n5cvVAe1k=?7v^ow9eU1DaI^zk%TJc?bCz~ zTu|+Q7N`Q$7Jew;Rw&QUmr7lNpX7ijiQdUp9gcVmJf_>U4niybhBek)2eq3}D&-j;O|RrhY60!~dj08ywuR|7%*j$?qTi*>}>-Z5Tj*{asp`fTXvihLuW77zo6 z6hk(iS_d<=2LP)&K+t*!Sc2rSRa8{I6IW?5(t(Lp;gh?VPLs;-b_`sC zdEx<-=UA+$)=)hP48r$Nzvk}i3;~+6)Trf?FH#P& zI%8^o@%&VcsWla)Bqw(ul_8)fe|)CDI}9*~msh7&YHG2Q5fSFV0n_DtUzZTz@iYhZ zE6q^oF7!1ugDxk}S!b)Q;&=e9_NOJlzZnitTG#$J@0S4Qmv#MH5PuGLeQk|)#tKAw zv=^ST20SgemZ0c=l_+qm=P1DlLt9-U+aQgHZ#ZAAl>g=}N?tDAE5gF5$9Iy&D+D3LM1Q8v>7kixMtFf$*FpUwbkZ( zR}xDLI-oOaRVbEA4V^1|yrZn3K$`LaEFv=SZVNI5+I52EYRHJkWnahb61ZV19vvOE z9mUYA+X4KGs~dJb5*BP0cIoZWN&tY8IAAV+tY}J1#P8plYpku90klA@n2OZw?4!Tf z5&Zo841vGCnf3!)5sM3;1z7E1y$Uo0(d7IA>L5CfVmN(y zfB*9eh_v}UACKSFE@UF(0U;_r$M>S9q9TSdVqKOs_!LXUxyQpZ(Om ziN~smgp!63@R!Z*2Ca03MzO;`A$0w*3-9Ix;dcp0mTl)^ZTP-n#Xw8pzRg1fmxWlq3pz3v2^|ugJN#2lKiDFfJnB zMBVd?i%&t{YtBmOSv94Bsl8GppUYn84Z?o{N}O_lIhBJ=0vKbuIGHKP$AExLR}cnX z^YZSNuVn8>`oo6cz`)iixg@Th%J0FOnw&39O-v?7{F~&0V@gX)LDV^H>L9P8f*DLM1@KSeX7Sk9ZJu^#fIOaTqkdB)53qdtm|yh_z+=JXO=zudiMfV2V(3qql;|86%V4Zw%bn)$aDs zyr^r6zQ%MXFccNE{+W6O1cj4{qa!0Grek@Ed8@0dfrgTj2>yVp2B#fB=#eLiwR0zS z3JVHEVZXgfo~tkok#qu34geVd+X&!$&Q_?=!o|jh(GGBgi*@PgO8|0FmsD7|^J{Aq zxNk?#<>chh=`R7mxV&I}T^(3IMcsPc1p!GN&ouyQ@ZJMN2|~jC&B+jep`z#E6A)BZ zR*KzKjR*ny`&az~1FG27TE(L+00D3ELQs&zb2$6ETm6R@Yp(ltN7g93sO>2TH1UNK0DS50P*g-ZEiny zX|98SOjlgCBPQD|Y<#RE;~G_=2tiDzU#fO(EN$-?wa~(T&^6Bo1 zZS*|JSq2aTfp^a4rUgxKn84NMy0wUDaWi!F);XMA7cdO?>0NDLZ-2BBCI}$&zbL}^ zG2Ti>t~Ouqd)%H**v{6K55kaj`3D445`8163`uvcq+eo8k5GGJ{)`ZYt#%u%uHR0L z%3b?7xyn`n!!z)$ciEf9+83!SUuptFY^fif69 zJ_&|Ai1`5YSa4kl1-(7F!_jiR-w2R;U>jryh67-~2Hx(aO=r_M`tQ&^N<&Yi9=+!} zHpu3?pnM1wafIkyehPHDs=Tb)mn@?3Xzn(Y7j_=5)cO-h~wUrdaVlf zS25B{wIC#8uMH42BF8eYRXV$3-PWpF>%uycQu`~Qx++&G{Q2rVpmNbGEp_`cYyq^e z%h6%7J^H7}_ZCoOFabz4NGVlestsh7sn$Z-Q>Ve)KD~P04G;?XDvzoA){bNM{t@f2 zP=&6RU$gM%w;oEV8iRinc_9eg)p*?L0o-8lNgPl+@+gursEG#xNm}D( zob^1PBZCX@_tzq-13C8llp7uhfvif3LLd&5oJCxW9yK*}Ep!eOV3=cgPV zYD0dPNH{Icb?zf;9Qz5A=a$Mql`rflT<{{kSaHFfo%e&kZk(8A#IYsRNG7k?%MV6# zfW|`Ry%`eB*5#;c7vR8KOe!u&f1K3eo=K*SGP&z74d z&P_|t@14A39fxkt5_|>uT+fcDDjm&HZ*N|Whg-$YCsM25_0{V88&b6-B;UMs$gjt| z7N|}Gtv**P6n%HN=^Had7t^BF^*Pj3xAuIv$@Xq*U{}bs{Gi;kIMQ|?ia@5riFeQP zj3Y60@;v_*YMgS=a(+ne=i4id_&D!-hjHgyzq@=Z<*5((g~|^b;kBMEBvMaEbvQRD z0KHQebj1RyCmCb4O}rq@eR*8%RIiQ&K0{I$8yquVe`Drz>x)Z5_FOk zmC=58(^HRyyS|yJnA*FW@#gNcYUyT91?djxcyr1ji3wC_IscWePxzeAzH>|sXEl?6I)#ooe|4M_UZL#*J@BBZ9Z`vsP7x->v9@J=76^mL^p3vc02wR z1@!$e_fTSxFd=`)q@~vqIJE@D%kA3UL%V*?u#6X%IH${LVKzB1g{!>f7TWtx0SxFN zGM&pAth#JX1A0NYA<*hI$=}|!kHycVfrin7M^8qFxi!6wysx?apieP|<29aM&$Q4| zk_)+n2X?)=mGxrhz1&+>a-=;IgzQnHKWOk3<A0pgIZTt`;&L9;8AgeH{}xrF<~f zsqArfAT_c&U+$rQ+g{kc!0WYfm~wB{a%a3;a=`Q1(S`8U6D{>8FL%m`2{EsHVQNc| z8x4y`nQr0*Kg%*q>cs@oc0S3BB;ia|T-8B>C@Zq1|#JNs0Q4SUj_ z#_Jq2?TLKvi-0@RuKCr`)l`t+;5JH*YFJU1V@KW_l@T= zxh*{;)}O|o9yDr@FgxSb-+Nq#dY}#xMyC?g&epv@T~P6g0+jJ^p%F@P#9LwYq1$9D zaotukR+Y1wT#a(i!|u0S*HU6M>owm7yx`+*+)kx)6TbMSBrwqHA+_aQtnYp-eVmo5 zo=kmuH*peZI+;Ntf5peb78TTjuP`sv(?Wg0aA~ zaM-!@w30fwMTbF-V$1pK4?~6OYnwBaJGaBtM(RTCg0;82N5!)QN0TvzBlTRi#jIUs zm7Sjgu@|0|91Y|qWoy>t_Se;ZP1kY955Qm1YQcYsizI1!vX>MZk<`+l=?=5G4^Ldc5B&02@8Z%g*$FOPWEqm^iyXt&c@W%cre?u zPo2WZtd~v{Y+g*viP7QjSV&Kgyh97k?yYV|lD)jO$P?xaxgUAB43aF&Z8WMX(~U3` zF{#KQLPmCPn){Fq@%6e_r5LT`i}V5G@}tYWN9JSGMZL_(*pdpIMzXv6Vw-dQr zv=i~w78wOcqHViqv&2Q9@4-j%B>pP?2lbwy?K;!QXVn{|Ka! zaMKAvO(QQkx-C7Qc~f&Ecd2x~cifY`K02_z1Y&=7#ec?mp5-Mng`zaXJP>!agoCO* z)fM=(XS!g&q_=l~%_uB)#Mu66|3aaex12O3C;V$8d24&s?Eu!xgPtEG;=Q>P%RVif z#drtvU9(Mv3RK|r895p$DtaJa%F#IJl5aL4qx)yDV6jYljbR@lbGC5b91^)%QJNde zzjl9pK;Kj#ah(1s0wF!|1@k!r6(fVeyQx&REnXhSS8Oq`Ny9GUa*qN^1)chT!H@0> z*K#CLC9bm9(oED1zax-S3dYn_+NmsNYmHbhBX-DWid((p+!@a@%?Z6d*&Y(#9*J_( z&51b6l>06A(Pk;J>HtLxKZd(=#6sfuCl}k|-FaGaatLVxqm<|y@8&tP+DkBz^$7)7 zJ%pd=SW4$MOuLmRv%SwELbO%BPr$$FGw2&-6i47_nTWU8Zpu&R4%ojQ^yEz&l5)uw zyl96HokF5RGLc=e%lsJC?RBs5Qnk%!D0Pk9jh@t0bVz+q<`)1_1a6FOxlKNx|J?EzT7&3znOMY zJy((PwxhBTsP0s)PDw~>a&p;PsSNA073un@r@LC4!?`l2P2VUXD*Jn&R8XQTK6}Bd zl!7NuJD;LQv64UH+3cY`$2H*|_u^+WlXps1NINrejYDbTce6?}xWYcd#_~8Qi|~@7o>|C|j*OG=6{uC&HK6G%;RkopQhn0=eXpXX|jL zOCp&^OQM!0@OG22sCX+P(Dn>UjTTE>a%;j^~xT zReq7lg7P&+Gvj}h(Ug8Ivnu4YRtK{}Pe-DMbbytN=uXG~B$tAMuf4YKycLyL@}j0g zJ1`LPo>ELS>s4$i8raZD1qVu|Gw72+hdw5Hgs^6_Fxae8(qf^9dAU{{v3Y)9vwtKP~`Y%w)^)Kht>%B0<8=pBm(Mzy!Q`80N6eh zP#OXOUee$U$XvD?T^mrlRkrF+rJl*Al{E;T8* ze_$a0V1UsYCWffUW`Cl4)&tA3{uX%wcm7(G6zvmC+M+K5rB`%3XXLYrW9e*JDgJh1 z%hrzW!+Gi^A?yet7Q|g2BBLFAd#TQ1^E?Tv_xnjU2@rWZgP&Bm{Vgt{CzIJa=~K9l+7$~g*}+Kn{_ zN+coCFIm}GK8Yo2R(~hQKv@596!R7%1ll6J3PT3_OwaU*!vCCUB%m`*LPp0_;z2=C$BXrG`xq}i5OSYvTb@vD{zl-3Hy(RAA-eX z^^@i=9E?{E@O24vWUUFOJ~!a(Xh84>3C&r^ls*v#*v073mm|cwr>C9^Y{66n!uq%w zm}J8l+jI-PDSfQ&cJTCr5X)l~hUK%nJ%Te^NMV>ddv$r|RKwj|CrrbjOQ(D&3YBPZ z1l>0**#W3FAA259&@%$7eLzFN3Yk1|@0Q)@kM5+M!)Zt;)1WBwJUB0Z-z?*~Ss{t% zBNizZ{kxZ;()WPUuy~LBULKUyZnftaNJrMwvfH|(PFBxlUfL95;wfeRZa^w%^qXa1 zvG;dd+3aV~jxjkz6tEBmqbEF0Zrqu{g^+hMK1j(-zy+sW7OYVlif< ze{bAB^+9CJ&@FQmJQO8oexxOu8Br_zkvm>Y_J)SliZVnJ*@bFBx+Yv~6@FApbRsb1 zdI{7Ri7pJQ*&&5$h8}v)93wdBg$oN2M(mjhhP1BQ?%mJ*X*F|yvQ!rWoriv5%83>h^WMGavsCx2s?=7 zk*4T!7Nw(+5|`(s$;bGg-0GRj+kWoz*`-jM1({KRM^^zi;(ivhcR_Lu1FtqKJM%Z_I@OvV`BwrKl zVo{*cYI|V#MUn=?O_-;x_Rtwd6G-&NX~C%vw#+=woZL8`8nf8I?-d!=48b>)W(@Rk zFnuYvUnYogAVLM|K+NeU$Ji%_rrpCCGNiy_A-O735qL$$z+m*#Q5DR-PT8PxaSiM9 zNwfZxrGEQh1xAt;rsjPc#_!|hTE)XPo0e&bu?=+2D{Z00r8V0}C4843R{GLcLO*|x zmz4cfA(n2PY`xK#K;A>12y1AFj+)FHuAKT*kWYZ^IR+fxC@Z_8GS#^|S@ut1rRi|X zD6uiruG&D<3zF708XMaEcZHSbDf78^hbm$&Vz`>395)A-+IQm>D(s5w?k#&i znJ?{cT94Msid_iISogkhvklgq%*jTWpv%FmXm^a9DOr7V?lF(!_&WCE+U8)`QNk*< zR7yW-ut`tSvN}AP%VgRF{nYn}(a1=P{E7d;-j~O3CLfZ-Z`oA0%#IyDG_YxDYWE0`;qygj~sh1D@Mt2cXbTr9ywJj?UK)ZN4>i(*Fce#hPNCUe0XQy7zo041kH zevZ9N;tEr`+G37eJDIT;drf11^7eENe`t3!LSD|6nXrOU?O*tm4na7W>28^E zxO_O}ejB;|LvRa>jG^5@*jca=cG0+r?mMe%WWM<)od!WmT>;)`VA%;~1w*6*@@a*3 zKV3_&n3bN9pzye}+sUbV*ZR8)TxykK2#@k&&(uWv<7}I&rbUwS1UG>EZGsT7(A220{nRwaU z{W`=j_F`t#Urz~j>Mv>R8?40hnQtXKdyEJ5Qphl{44ryR7{i|PRFT|#^R>t=mBUHf z7i=P-C_!Pe2k-QU6bd)Lg2MmILzFYcF86=z5<8S9hRJX${NezEdK0P9pgZ7+8G8MW zxsDNG!=CTn2MHB1V2zJSKFMrwgS0~*EI&kjc$bc3+MZc*qD!}<;iE08q@|>F>Oz}p z2z_Z}iH%LF@>{Y68BbIR6%3)QrXK8-)99jNIm&29`JaKwRhO9_@)TDChE7n&(>~Vi zfUk+}^qKa%jW`!0mRfRd7PEyOPm3Xk0b#yp6mWap-ZyozC@Sw1Pv{4DO?kl*WW@Ts zf(Ty*)p03989Vn&6PVeqT9h+|Vi)EIkDpFdUW&_SZGWRIva_7Bz&D4<*Z7E_C1ytwzl zz;Uto!Bn(6_M1ogcX!+s-70sE-C^(2*4|H@4?Q{gSx{0O+kHHM%5~mU&wS5_#!Ok~ z6C-%OvLWDhL?VBxnlS`w<-(>Z??V5Hqn;cJz z+vo9J*Wri0`>N{eKD)Q!ud?so;lDnsY|G*Q?o6@KGAudGBb9W$tc>0#p(^(7^;H$KnhP|EdGJ%)rw z$v*E<!s$Y_gg29*h4+uNF7LsC7`E{>uy8# zsOJUALgEynPjxiU%Jqq6?zYcjhpNUn$6s8gP&?{&EoMqp^t6N#dYU+S-yy}HDr@MM zt(x&)UPqbVzkPcSf{mC`-o&pEXyconbn1VNcWX$d=X(~ix{#d|`+5K1S}ko?bH4Fi z{|w`GFWc0DOFr|xc7TrRccenfy2nj5h9!E*!5Xa5Djmmbx&4{cBrz{i2>A3bE|DA- zq{8=a&IW6$t=&e9zfH`ZuM6-NUX^UGyA6!gne3-H9{ft&QpM|Z_$6+0{VwV2_oD^k zIQV)SlgQXCMkdP@l@13bRdipKhod={rGCT z*rGjwljd$_ekKLE($rM9tQ)TA+EiALE*~r;;`#fsBI=<+qU%#u-lpxhXVQ88U*BsA z`bBR))7NttD)Lx`Tbqls)fBiIH~xI^VvYb-WnKRIp@-Q{zk&JsK{GrzzpK?yOnD2e z@0Td^lNRR-RXJBfRXFwZ39kO1Az$^$;T?9 zIX`%B_6;x3dPA`6$vlp&-ux_pH$ zlU$O@bZJUidlqs2xyn0VcfXXn`ABrNkj_)@@`Rpfhi`S|yDc}<8*~w|A~cnbo`ig2 zgnIuhM$f#!H4!le`zxl?Y9`C#=EAFeJeMS^e%-;6?{O+u3|+P3N zWPVR;k{39QL`TlL%RTgP)7I~x@Me)Q3LR#58bf*jk>lXtkSuwEf+E(02B9IwLWhiHki-0d{GUh& zy+Q{LN*Q_x5Q~hOn%H0jg90SFWe`s1&#jysf9Nefk23}!9p+=Y<-bHdnj_ob>0VEGM zgM;&)Z5by8aH(IaCRARnZ(p3cuD>Cg#@}OA)TiF`4bFS8Wjt_iN&FNu;Lg)RHopI8 zUDQK%YyvT!Qbm-pX}yI?QEg9sB6~;Nd~cxIc;uiwy_*d+{>C_?S^ft+mg2)buSQsP z?Sf+CEMuq7cRQQ$ESJpJst++c-TV(OW}c#oe(>o{@%eHSh#si+vdn)t3oGy@&;qv8 zl>+e*;%l-%Y)k~|St24nxsege5zC~6!C%Z$GnTJM)46_+~OTkQdk5NbZ0~}bTS+A zdL*vby3{^iLfDG%2H52%?z!tDqTj?w4?&K{6@ecUz~S9<2slwB%L7^BaF->=OAaai_WE7>hI*?aB5*7^O)^|;4Bkh-TCxs-9UdHuJOJeMVYay3If0QBHVrLS@*r z=KI^PbC|}F&}!hyW0Vbm#kRnywI^x3Y6t_lVa^AJ483#%^y{J1p~^uSy;y!%!|Rt6c5%qx8F=h|tw@drN z>3sw1yP0pX4FqkuJL6ZKl-NcJOCrT6XRUz&ALuRVmxoS$(QV7u0@bmjfc^{0y~zDy zEVd%%fUP)IT~t+-Vq;7ZcE4u7}YUN|+Rdav!eR%UAIz;ko z$R~DOBV_-uYI$E*92!e>-{8c!z&w&>SYHbk{$gkR4%*RC@<#;KXZ|j&3`VddZF9@u z;8gJ$g^d`la5wq7>?#^~@l=H{WVo}0XgF6&pZK5!b)Xr|4LlFDh7RronkY@tfl*S7 zpf;i8*M^vlrOsBVL2S?pq34y9+wmsoL83WK{bt_TfeB zH+aQ+OO(G4N%PCVh+OQz4e1K;q4WQpnRP3QGC~^KOR2cfV_-%2qDIZ`x#d|+Ha(2* zxa){X7gRZx6gQH{Box1^|3xVu$NQ9bf46y@2>Kk39s!Pir4RP=app8$y8<`^mZbFO z5W`l4g;vLkKwA;mhWI;~CH4CmVGp@{$|JnlpWQvr43OCqjbvl_W!zlqLH|jv4o$vo zU~G9VX!BCX)x;GRhjoYz4AUBaq=MvPZ%6#lE=eY~Gxl=e>BdbwJ9%Ojme>osYkE7F zem{42m}fT|=qKVaUHKS`E{kXcThTG-$A^xeg32v<28v@vG^;}c>+3oF)$7_Zwh3p1 zH>m+1>03=FYU1}PLvS4$h2;e`XPl?}4si64D0a?Dkb-X7dYh$bHjamwZN01Kj?z~; zrk;ilahXM%z%tO+Bj>7H4!5Rhoi8-Hyfc-!S$4fqo@}-neN9G5vaSC_n@HOp=jn`= z`CgSd7M+TuHaxasd$(Uh$5Li10{>pC$HUL4gel&;MR-MsWFb7V->@btth8laBEdJd zZhBGLr`wGyRtzE>B8!H~iC+31Ttl10Ofw?Q%(6!qUfPdw-FUZZWk zURDjUSN|!5<)y5i`}z+1rN)bjKxH?bJQ*EfEf{h6W^Xo0w&dQ%aJ#KA_v*mirWzF6 z5Pi%r-`1O=OOKXH7jW$D7`gFL!e9HCA;8;l^2J>Q2|o-8hGj6UvS8BmuUo3~LKZri z3Ffta9atPgP0OjP@HlAsf+6yd8}JdNY*oQE7eSSm=(Uxu%yHS*$E&wzi>6W+)?l+c}Z*qjK^ z;I_7&j{Nql$a7OYz>b!T^Cd!wcMh@cZo;Z*531)WS^YF!OX8IqEZ4iH2flFHNTRH? z^h#7Dzush`1#yY9>^qlAk8e-vhpk!nuu~_te``0wFg`9kVfCFwYAF3YG4Sy1Z9Wo( zluQ)WDJ2EsUI}-@$HK>9Y6&rk-{=?~BfToc(6ibZoyXox6Z^&K7Rl42Ti|wwAVMH~ zzKKfWd91I{o1I=3N+6D}fjs`?iS=l@oCuCTre0gF?Z=NHA7!eH;kH}JjXpe@Cos^q zuh2fVbXhv~6J}|)-);EiywyEKC}@8sDsKO%;s0Upt)uD+xLkOUGSxVyW%6M}1S zmjnyJ-6cS9C%6+NxVsbFoeAZvASyzd+dqd?VCzao~WvS+8Rtu zK>KVc%jOiO1BD4Q36&-&k4xQ0^diTMh}l)2UG&Q<)5ZhkUJdorLQLOwLh~%u$10aL z#$aR=`z8zgqX&kC@W>N}m>=2>g>d`Oe+UqZsd+UFRldC0wQtE&dd*gKZej_W93(;- zh!X0X+_49VhiDm_d^t+P zP!vzCgGGwn-^V=bB9T(LyrG6FTj%uP}KS9=O} z)_$E-P(jnDMsg8r;Z31Pn@ zS|Y9Mgbt27)Q8$@dM;3NgbM<9B;1NPWl$UTa-n~DYk6j{F7HcN?xVwJC9cZlDuwNX z0v70%suoFZ6I#Q4~-n{u7Z!ySczf%pIBkg4B31UcOk$QySWqrR6J5 zL>WA|4AN=igI@2IsP&Vm%~DB_hek(QSJ-;f_WS2nyHEu^w%;uAuX_24OgMbRFF)N% zgq%gF^3n$98K^vAQ%T${FN@68f+Ob`*2*K{2XRI^XP)iXGfZcs$VX)uxxOIxwDra! zaX&nh*jUoVMkI6Vv4&k8>3RpZ$p0ck&-7V+nM7Hw?~mAa-dE1Sl$T#JonJA)^$n6B z=1Rd46AWW!1vzvc_p&g^Hh(VpQ!P2D6H^#tnEfqub>V3r14j|Yy(@KL*vW>;wF#_f zxnzZJnG3kwStg+rkn=33^Pqxc%C-lT6o=gny( zi>ZeUdgr~vy6=A{79-_K z$_*;Vr?XebE)-`c&B9y%4p=1Bo90nmS8=c6>s?L|9nToVtdnWYslI(0NaeWg*%f1q zuV$CAz%N0Ur)OdhUxo5_<$rVO&6Bne*yf%1d^rA|VNcA}W6G^Enk9PFV=udVVo$jj z`Xkhu>Ut8&px@)KC}a6L?!Kg4E7gp5Z@x9aHa)e!8C~T%^m{||)RgJ@3)xQMhwyuw zaFc?dRj29a7Nx~_bnk_Uf3*i_zJ@|k7yM8mfEnIHPKzZKR~a%Q!2ZfmljHU4(%7P< zH-X_D_iRRXfuk*M9em;;qWUWY538mKY)PXXs&~IS9tZ9mC>G}Cy0@G3To27X2Pp>m zHdDI~ABGO^hAuzTDg?2Z2SuZJ(1fsu3Hiq|nQDAFn#0=Xz5S(*YCRRaNG;oKNm!iG zLG~cO5)~nUY`u#@)rP1ZSo&$r<%NhDpNaty>z!Y@2I@##>wPxNCd5+S?zwTOaHVv#2^S--XEoUHsTtjsB?=@TDKbUud|PoOpge?w6* z{}QUQZBP3c3__4KPp(X8Kygy<%}7wa)q#y$Djw-u~9@4>iM%)4*_9QcoFKPp;75 zs0frRcdi3vw`@mN37Np$7oFp2DJrIjEohdnE7NnF)75_pAEm!K4u4E>=NZRNkhyJJ zxYB`JIXp?bIh(lF9qP8|5{eT78#N2q^|xDucPQ;@Y39YX^c1hjUBAwgOFmEyYsot2 zT=Z(dG2iaf;!m(MKaT(AJeQm9w&>79_7*F%JgHe5P-XF9fOo+^Uh?9(yZOi_b}oIM z9-tKRxUj90kxEby)cogSg8hZyoda$&p0jO7j>iI3ahS%@3x-#UAEy>+6Nt>@os*KkNZNr`8#tgtOmAW5>c6s;Y7zAdx5 z3L4MRmR&}^U2)wU$kVx_=_fr(PJ_7F57!>(r%`$+9uEHQr@xYT+VKJjP=rc47cry? zB-NpMwSQUNVy#YhC0(%9QEMFuWX|75;5fD_CzaU==v#m&$(Xt5P7n z){du;ED9F6jKkh|{W_RCmh@9(l$ z3v~9s$Bq2=yyQgpB z@d#m3n0A||Z|@#fQl!`3rMT!(0ZpEl{xE`d+kj);B!k*qfAQt z4$(JzSqj_>2IZ4YAZ8PW{emqrNQ*t^fTlRt0tNZ{<#X46$YOnBQU1>X)BeHV{4ZeI z|3bht{{LdJ{*$x%|2r1zQ+NCKTr?(TuKyty?LT3$lK-DrtfVdE3hyzuauDI9npqF) z)|QDFO46N)erA5UJM|rR(`*dvQGG$=P143grqBB^E`U=^%DNGFONyD<0S|Z=kA_+z_~wzI>Vs!j6rj%BGTp{kZcJ-d>WllP(Vb?vJuwSoGcFaDR|H|-xqxRB%On-4iIz+Mc zL_$Z(j#T#LFFux1+KoZ7aX*~5`>ftbp?VMV0*nkoR#Un#gn}HXri7KS&q{sYurPvX z_GJc~`V22e5UJTyM&q8V!QjN!#Y6QVk>)gc5P2D+lVaO5L61CxE2!s;z=9|+KI_k; zf2;Hsk}Q}RmjNZX386H4_bEc#wQUXZ8C@_FT^si|E@Ue`_Uj(RiVMQ|FmAD-jeCU) z8P@tU)EMj&0p-P8Dkr!I8)!^OsiwztM2{>ShHm}S6f-~gMdS~WY^$(eM=80V!Z2gr zA-751$YR?}{G^R09CMlc7C|Dm9{((|_*A+l@`pF3-j#(fF5efeU_Gi?iT7cIReEoP zzdZd#%y!~n=^e=xG!b;Y07qhrnn&cnfJ$OZnny=Z?an2-A+Eq<Rbkdj0Y35Kuc!}{wyt>b#I?(NT z9PJoHW`gQ=*vsQFdebDP`;*-#)`}MWlNO01B?8@!ogXV-zqaEpqFiVftLC>h_P}s+H>F+MOI~f>raeo9HNCVceSY{{&FRIQr2LDlbN#x6gQ=wb*M3~cv~rAp zj&iyfRRxqAl>7$T3dlAz-zP&?nr~_{HqWRulrS_rT2;+|eYkq#Rh-h6rIlrG zw&~IQX~%Ww&e|M(T-_OFv4Qa;fpLw8TcL_=;yZjYwSxJBPsiaPt`J$5DD8g)0(*j1 z|IgVK|G;ON&r= z!%I`KMFlGN031muI^U)df5i3`r;3JiXzhjl-`n^!ZmcZ)!GoFlqmPdnW7Jk%T)XqY; z$kMFF27?y9r<0fla51+2MIgohrNVgg@*4@ z_FeM&g5LCnQDa%NoiB09={zdkHg!V;GoUq##$gP35(Qazh6gn(L9ib4lhL` zHgx9LqGsj&#jsMEbuqW{q4%6_*68^?2F_js0({`Gp5PtaFv`P1fa9Tr8!8qZqj&Tu zRoMY9=IHT~+9VRaXkH(Lfp7L*j@{jSR3ue0p;EWC@90=^u{>VE!9|+-s57i@5A-Xu za^_m1^sItGJxc_sS7hVCWYFE#ni?&*@_5|<0PhR}rdwlvM3!w!4*3~Y&V>BBJC{nz zE=Ts|dwFg({9AImA`-C?S)>p^VZ8+u))uNW7$pXL>6Q3nBm7 z@pBx;%lsMRm`_Jm_kp+Rvr^`-!UbKNM|6;pcd=jbpTW>U#2?*~OhSBqKSwlN+LhMF z%|eGveAV!3Mn`5N!~`bCDCX;Ykzny1bU!STcU7N9G1sgytyyWR14cPfk&+E?vol0O zyQJWW-C6Zv=xkWuaU)`h+6o2Z!goMO!bmE&Mpx8d^k2ziYrHUtVI>^90e_*I$k$N7 zhFHjFu`$c4V9sZX!*WT-V$Ksw>>hte$Y-h-iDDNQP&cp(CN=+VUEa5aF2No3rF>uu zU50z>WBpL&=P{FQKwRzr$lXW{jwoKyU&=>V|AApe`HNvq{1*)C%YR^46Co32<6H=W z{fyeiU~`jCFSFub3~RP?J*!;Y2G~fgotP_iYG;y4KREtx7w-uYb5-3P$1h30Zyh#Z zMG^ftgB=+9>{5%;7UZRb1tGezcg!BMf1GGKIK9zQFr`b_whHmHxm93^eoiEdq*IZz z;78PgkHgA$=Ukr6b<53_+wT1hO{PVDhE6y8 znprwWT$is3aLNz6BEv-}`1Kt)!@2>B#uIBtS8GI&`Td$;|AzSoYod!;fm9C1-E|{@ zQtR@s$j$3FpT4!n$kyGKi6ius^-WDh;_1cV=_o_HpgF|*{E9{DQ}V~grQ!j5n3C}| zs2ys}8mvm)9fXzf427s+7*@6H5uC+!$P5vE!ziHiIT5usyuLW7HA>D{FS6kgroOs{ zbYHQzom#sL_TkAMUt647H>7_0o&H6Q)YKG-JX08cIZUhT<%@B$h`L`2sI{qVN}oJ#h;ai3*>Nm`-oK4umrpI(w(C*sT~goUbXealvA z`a!PFuv6*Y@^^Op4BiBvD3dyWweNin@wTHXLEP>7>G^!zqfxT+^Ko`v zQ)<^%srSn_iZiS?WQu!A=H0&(*OA_)nR}L+54_bxEEQ~x5hbtA<2JL7|A0qr)!?kuu668nLNb>*8`Y1rA7Kc%0EE$n6F`X^WM&Ez)T zo=Nub@h_*CpWI6!Bj5~(TJzUk?2Y*IM%ZClmpXg#HC^!Ylq1sBQ|)zc-o@^FRkm&% z*)CN^deXyM-Kuouvi|Nyl$uIsZYNf^9;xk(G&e|n{#wB~kdrh~!eaC0mmod-%hxkH z>q>{V4m`bQi%5gIo(T9Yyhyq^Lh&qjcsVN;Ga7wUjxBTob4C2-0);jGMQ)g3s|?Rx zK{Phr6#WP0-CtASACtp>%z0(w`VXPq|BpDY>>Ql`#(CxV&pEHtuAc{w3A&HVg0YPJ zXF9ZkNH5!u{jqi9h)6F3gjo&iNCO3W$`lf3b)!gGGkfVgDR+4K$ojH{)d5HYse7Y- zf8g-^bl*{9GdX3^(P60BpN}Br?7ngF@bL2X+T;HC=3tru0)u)GGU)Lihx&;`D}GjNlDEsH~zHP(3A&% z*Qfe?RtMSiyTkr{w#DyH6`o1_o=b${w$>8~*pp>pmW$2%4h_GC#q9k-tV7WR zP;Vt9By<6EuwwiP3m8At-*5ULJ7-Zte}1(5-qY}6ZzeyP+dh9eK9-tZy*%q*GwbKs z0WM$yi*ZhFE(Iy6fuUiMZcB50{hvj^8{F#%L;*ZM)C0in)#gbGmSB%=c6K&s(YX_^ z#!v!F_fD~Tg{aiMri#kNdOyaulvu!?EUgD{$&qqE&+bn&CSgklW|d;(t1F3gGHw;)xevt26cC-EENMN#4mZxWMo2jZtTip0jIF0 z8PUeZMp9C;(%F6Cb3#MHe6u4OFZKM4gtTGiXEgaY5{jH;YOuhqs zGte@7Fvge||6aGr0}6s(K3ky5V4ueCzEeW0Q7Ik+1~xWa9@~wOpwo@PQ&pqEM6{#4 zQnMLm<+pg;2F9xJkyl_40gpI|!%`)4Fo7kvy!-@^g8{&n-)hOrW@N`=wpwN$>`hit zRaI3|+G5Z(&6@)H;17?paqI*h^u@*gY<)fVJs7IKz=M6v3qze0a;b#}fQGvdx0|yA zx^PWn|12j!$&+#=t6JBg|1~lEY@87>iN1p;6fBb#4 z{L6l&$@TIshDpEcr_KG1Jx{}%e`>+CTeG*fcbgA14SaNTG&DSR<;P!s#>1)V^8mdI zI`0$X8IY)fjsu1^12uKI##0&KU8R-I;CTy2Kt)AHMg}NMJGYxNlO&Aco}Lf!KsU#R ztYl;c!Dx1Kd03KScevo*A4}Kg{ul~cnEPqY^1UBiSrF)&06e%i`a{gk%}qn&kMC;~ z*<{WPiZ54JE|e*N1P<*f5}n`Z`M5At{I~xk3sH+803|}?5zpRQo_`Mc1f7Tae;97F z6wZ!-hL`y$1>rByK?ofpBu9TWyo7YTrHQ!`Iov#ZWQ0H-*PRF-P6cuw{hvXuZc#BX zl5)1s=m8bO4y%Q$2^O#tMRH8K?sK4WF99nfvy%~y=GcDeOb4V;iqFX_1k+Gc|N7Y1 zSlL6s&k#=ii2254*pho>Y#Z+x#0!Q+Mv>~!rmnGNTTluuWdQ?3wkG|>h%>g!c_(MgNW~POsHqH z>Eot%&DEwAM5h7OO1wqnK_@7VL)`~&)7YR9etd4bBIwdt_SXHd)Oz<^p|4d5>(k^%Zy*BXAw77rM za@=LTV$J!OGREu*=KRP{n0`XMe0+SfuR=}Kaygq!0X5{slkAXEw$2uSFto|Y$T~wy zqngT!W$j!J!L0qfu*1;>$b_(7-0i=cUH@sFe1`u|E@sFmvAeJ07MWW0+m0ThMCkEWH)Q#<7~@pAv;X%djDxRkr)Z5d~(Y(&y4*KoD|m9mbJ6>y7Q` zI^@(JnqCp&i^eoceEiJ#8;ACf%6B8FBv!+*pgy!B09iByRSJk&2`uSRf~?MeMiFp3 zI`^C2bT`(~chp~v3w16yVaNYNsVk6=?u7f(U7_GY=eNUyk6sL|N>L%4B~Ty2dSRKb1dr&I6V;u| z)6jh0H_fI8y74LF(+Y!nxi21rcK!GLWe^U)bh_9bST=HU!}a#Nze&EXU69gTCy>zn z>9n`ENqN(P;>GB$rMn;fr*&2E`!!9%l2LHowgn20Mg2Gs%KH^4L0Tp0yU7C8Cz}k6 z^B``483GvU!2rullMYogJ18P<)hp?-5fD5Ud==|+Rj|6V6}^FV(h+r)P-1k@T$+UE zc@&HQgaNb`G1!-^`7_!MzJQ0@VvD_azAyH0g?%6?5-3 zeTkYyb>g_0iO6h_chkF7SrZfhF;5FH&I@XTXEwd!m- z_Z|FIpIXQg?(Dz%Qp&AApcBm|!z4@Hj}GYENFtDqK}T>sfGXpM=Ymg7O%1?VW5W6U zBNyy7CqdQE#gVI4WZm24%mNj5HPJdbPvylxx2ICmwY9aTJ4|VhV-l!0Iy^7-5*80@ zX3QKKnt=I*`o{Xvog4{>g6q`Rze5bi_8(bjN69r#$;g~zl0WP>Wbuf*RWelqUD%J- zcoM>&PUOLU=TTA|WL-3IH#!dVLeQ}_ep21k!#oy2m?J))xFv_%=1u(#Gu(aQbP@BtHz7!f}bW?MnVhkNcj_`fj))|`VIs;>0wCz zW>rSH#hLi-MCuVGDETFbWp;aJ*Ti`QIalcuY^TY|$#9=8z1s|H?{_nCcFh4rmK-BA z12QN5$c^K)bA}_@QtqNxKfXSUF@;jzUI4pEpM~g@7~d^&|_{162O&+&fM!qt)t0V*tf|t&UGY9tcwqNxrcmITxlbfEFvoQ{-Wm8SsDgo=k-fez(ppBa3lyg_wte`ZPrp_i`S6EYGqNU0A~2n(MKS?g%Js}5Xu z!xjXnd7D-YI`_yb6bJKidUG0;ozJ9V1#0dpY&LNzWH@aX2Iv+Si8W-6^zYUztDCs? z*G;H$zQ=8}oDJnUP93Q87;c~@GM-iqG{s$L0Y)L#LX0L6n@Cv&(zRMg`dZ>-++Mc8=$-0XLBZGdnQmy61gS6qEC-?K%2kjAlzQYF)`L$Ta@G5O3Y(uf|+>g?S9=k z$1YAijt-T}w|ckgps0gr)3gt9$SRxyBD|f7r>cWs3mf}~ccazB%iHQN)!9@{x0qU0 zH}$nIcB;e7C$iB@=5GY1$MJppdo4rK8q*7xj`n|{3FKeNIgUTpZ!d~(1_xhaz>Yh7 z=~Bv{yRJx)*C7L2rf3{J%aT&%wvd}1PcJp`D<`z_GVnxQY|@Pqj4~qMd-9Ohn|^J1 z^?7cmQq-1gy~ei#I^bKE?b^m*l5B28X66d8Tr)ldw4V(mu;`Rr0`qq?+2i5P`KJDf z`>@AD#lVo82mA}2;b)hZCF&LAY;08-8DH_G{QUfYTsgq{6?_^T54)N(1G)~smlKnD z4At0d(eFJ@dQ4?oWfaqNch=j+4rLsqGF+6><9*<8Rd;X_!n+%96WPU(pRSN=e6gr; ztC6<(efL}PpWFVXLaFc<6Kq+S2C*A)(TkV@*WE3T@nPY2t1!DBXAR-M*`uPPufJVE zhwNDzji)o-aBx_LZBW1FAlFR*%3c4!^1zp%oV*w9T7d?K*d02>zJ}ys>Nk!F7ET*u74N`Yo?Vq4jTfEQ8hH=^>TVoeVo)+hEl=KTnD|Zf z?frekI`$?NtC#Vi`C7BW(PL0VGVHQ=8bZi!S-1QA$LQ&ME0*^|t{`U8XrxW2wd zZ98MR04|AkMG){nO27&4Ep(G4TXz^94i?t3ZWCCp4sY6Wr~E^?>+4CpQ_ zuvpd>y$9C5H=c?5YQ`+~W=q9UcAJQ}^uuD%^Sa-#!aoGxmwyc;=3BkO@9*$~Jntb2l_q-x`OkPZn^3nuS3F=}V z({!+DLvgGvGxST*=+S6po0#bZ>L%s8E#J?=HXXRRefFMO{Sw17LaK;Na*sxqQ=yn*078Rc-?`7{@|QP0huHTlP7J#oX4xfl5ujyY)}@Ik4__ zQP9%T3PIpzZ7m1>GqAce$OBOvet-x=3Uv$$0l<0HXR=*iUys;5`mGME_CHF+MMQj1 zRrTMnZnW0m+b^z6o3P5}=nTIS@r{-)FxQx4HQ-RSG&DlBScX@ zhZ?Dt@A>oz!PkDiwB5Ru3e8RBO(qPeX*0`Ec&%e8O(}UqT>QOW>b#O1Z7%mVyP7u( znjk>hac`8|MB9mHjMzQ1q&wbz%!EZCY8v4yZ%w@3fq@PIyvp#pqN1Wb$jHRRi%YOD zw>qZkD;EpL|CSURnkuO;>B2vwpr{xFooB9#N;i`PJ#GE#@q`M@f&F=yJ=)oBd4z_hNAh)^(^f z1mX=5!9mA+cZ^D?V!x3A4R+Yb5?S}`sr9uL1GhS|7M&TyOsI|*&z;4|kPD3a zkMj>SMQGj(kKxrgblg#kn&{h&eAY6a4K?3klNgW_W;9ZU3!3@PMYBQZUE3w!b{Z>w z{Q47N?PO$WDdQcKka>dZ@rp>TwYBwtAweVXFb;%yIvO0Dr?kO;FW`D zR!YR2QiR?M$<#Ag%OpJkOmRKgb^joo-v^_@ncrGfUhME}wN}c*$_> zh_&t5hTCbb<-=_P)rKIR^aD92s@8kukGco-oQtI&(n^V55$jqU=^ z1`R$D&0M_#gknEVY?-czfCxA#KSh-vOqOT_0tA`iXsu0FHZZsZ0Z?5SEsyQLlx^x0 zFI-mEPEAg7^}V|Zaj?-6uN$PvVlI+c=liJA@F@4Pp@MV#>o~%ibd7r<_Dk>Vx zv+0c@3jhu=7Do^t$Vy65^7~(zNy1a{V_~r25!!Pz1f=Z zI@77budYW+?>78=eK}1Q^OXw_!4Ci(m^&fX+S)0z4W`5P>wo~zBcz;A;C|fL$ZG(i zhOA2*120pAxrK#8(mLnc84x0gCi3jeP8hhVa_D)iS6+C7)rO?O^~t)d*tdZJ>GK^E z$80~;w2%-iD*kt82&#A=qbiMu@yVD$2q#huk0Tt_#&Gf`Wqb3knDXJnl9Iaqb3t zd*8iNR*s>-2oDbzy8wnpD(Y%Z5BQ0uy0X&F&JK74b&57TJUn{9nnpPg00*RPy!wWQ zhCqsyl@<9PqGY6`l{GaqhTepFE5MB%Bd(>D>~db&Fy^7~3sb?38J?t*BH&>;pXB4m zk0a?IFclfI!=9Qjp~L_lixHfbL{vOYzYP$8lG1lD>x0o1gc6!as|1S}5MIWN{XP8s z{r!(0KRC?)C~0cWZq5N8AqdCDZtnTI2t|&G#u0n3}PcodR-w{v>*nX|Cu<$?g`Z1xUs*fAoK3yb~L)1&l3$|iZAh;*J6zY-m3f(b4;!QL*8 zHo#_DicUn|9PfumT9WiWbQ?6`I1R%k2_L#kBEAoK%7pErK!P>;bwL~P1ykimZkvsL ztn$k_@nbRCa$4B8j3W&g-h_UP(qcV+LEBBbFnEX}qe~E|CRZYuPcWx5v%|4X+Ux_g z+x7}k-?LnC4%^Qb7&`Pw`pXGnq>q`r3LM2=yhA)hYJ_TPAPjhf%A^$9_3`%R4EqHs zUcf_o@vf0UJgS2~;BPsYh@ePsuR$|wuV-2>&JThKVOE;FHl1^>Ft_Gm-@(Diqn1T; zg;j91Lg>9+E=3SuWC%o&VkxywHjsF4QT)wpZdRtI_5!LFhB({O5)@tk>y%d~aCv#z zr~(VB*2Pg6@m?5JWbb3xsu?>@upR{CUDnxtC?SlHE~x}FXDPRy{@;QdMPm)$A(non zLl5SD3(|Z@SN+$!`59Hr96&%3JM$RtoI)vsemCKE&zP~>euEdT=LOFrfma;LOscC};r>@9-+yXZECh2cCbcPNNX0 zqvlf`lT6V;>0ae+hyPYdjiMb+Ep)N3I!#Evsy*ejFwfbGIzMd}y`n-*hwJp2!2xe4 z931h6W2DcRRnP8jR+{*gK$GXSsOI(g7&_ur*%7LPKp(yP+Yu7D}0?R(Y2;eGT* zJ@)0hR);Dz+CMRrf>=RJhE^^lFy140shh_;EJ=gFne^YaLx(7c_=39InmtLT0r@56 zd!`&X*(ZVB5KBb0eVzQW4~kRqS!vq~C2SP>D_VJ|=g)=sAcmA(sL~S+j^M2f$G5|$ zPTL7!XqjKoga;DB3WBb9s);-*{QYy3^Me$i4`74ISj!B<^l#357P!Md$7H{mUYEVE z{Y@n6jaN;%q)bJ|MkV|)Fyj4ls>nST5mJ>7FG5myYeqc^gV509KLYuZKgG?-qB8S2 zLa50q?>Ez4@h3=P=kwcgD#ei(8Sc!`5kQ%+^U3OWSeBTln!O6i#I}-9b zTCYy{^5-+RAGo@gl)$wL!c5{Ppx9&_ltEoVbwhidCaBS}b9BeS+K1z{5^(ZEyy(7* z!C=vvKp>iw;fTy?V-QI72Ye!f(yV6?vkYFL9z6*t$ZsKM--x!TSCGPA2T^@VUgUB?9u<>c1mUoXOd=U8^>>f`fn;8muu zx?}vh3I*{(;q-`a1+L}R*SG@GOTg{C^dgLa+zR-Yt)BnCbDJT}Fr4o05T=Tp&~2}7 zR7_AVYTT-EXdxM17R3@11W~#}hsKziWW|I$n_}z-h1g(zV%`|e564(gXL;c;1|#gW zFwHTd<9F>*%t?!jg&d-nywAKSzJzM@&g6{Cl#Q1qzaoD{YeH|>jr-vWv#G*&)jyEf z=8pe|+*rlIFK%0IJ6U@T1#+&K$}H)x`gX%85GUaBaUnME-A$J`q+P!Hn7M^3aQsfl z_4z9gQNbcQD?wr6Li_es!o6vjrP?f92464!(L>d!3WO{Lt67jQN% z&%GQQH>)Ok&F^O?j#GRbB^BQ?uO>_>nXYH{eZ!z{JYK*NTfmc#L^mTb_Rs4{k3oGB zLgXrr$C#qN-%ctiXaQHbJ8$`m*mo6C4BF#-Mm&n z$=jYykC}eKu^e;++)P{>%c&}QP{E*TVPRp>!($b*>@@c(;$vZ@J1Sm%VVlX(&a+>!bw7o4l8IC3KgkJ zw20Kqg?PUyRW0#+dgAc97k~2fD4f9Jvx!wcLUkl3KWh9x6ad|G#mASSo58?uUb=k$?rqDlKw<;_NwthZ{cEHb7p;}jl7|0J{wD_d@e1g$cDWe zSyL~LboVf}`u=V%W;X6)X97l5IBChB(2EMkyXOW!50qetX)-)2DidXIfb{w7!T zghX0axzq0dI-&83-_iqEHna->8+6T zx^y<_5YQSXXKS}C)jqYss8qs^j@;F97}rpp`58n`D>qaF=$hWd^VFEa~ zk9VURmmHc3Mi-9Lm_Dn+ue!zF#qLe&=jt25OT(cui>kW~&G3YTvHzgUmC#qvKUujF zFNso=km>_n7yTdq4#yT7+;;BZ%w$9Jh6xLg2&N4qptN$cOYL8|iokek%<`2-+p&C` z@9HhtQdr3s4OVQr0?Gn)m5P)4n4}8}?yEQ-+uFeFZQl#kDW1vLp&?@))ehC~47A~~ z!Zi8Rv0BYp8QIHb7M!|JDEl`H#cISV+M3$s>B1iCYAze@8dh#CFBXpnuXQw3G-lP3 ze#c>YxLzgmAK=d4@eY5$U1ShhzOspMrWn86Y`!R|W@!49N4qyMIx)l0QL?gPiouF7PL@^|}|KkgT>INgp3Z>|qX_~afp zx3BA$-R8v}sKn(?2M0HXA}>XY=d7~N9Nk+?@pE5xUrJeXHUGQ}ZyGC9S5b`b9{kbs z)BxGA68@F2Q9LPCS~@z0CWC#lOWZo+@dX(S`j*nl!pes~H|_%S#$j>czn$Fm)eRFq zuWzdKVQ{3mABiFK)fE3MR{Kzv{*ZXn&|+QFZE8MkaI)JQ?hvjURcmn`miGLJm~x7~eS-CuoxvLHyCEC}nc4mv451}vl&P#I5Sm+N?_=>;YxBO=Ce3rG-=con7-z_M>9MJ^9ao{F!*v+(o!{neHFC2%l>ioh=cRpkyX38!E2-(>Ra+r- zf+O?T_h)YTJ)9Iq3-*)OX2$z{8gA=v93HMy&Ld7o!_RMfWH z;?|@^AGoxx(VwUk#kgHqSKHNppJMUJmHJRGbM)u<`i_(4V>MI@KVgG9i2oqvV<*}9 zdDm2Na1JjkN*uk1Ub~X5NqML`M`QB>ZEln3P~2#EtmxK~ZSy3mKd$G;;p6gsbLtkE z%`lB?){R7<>(=l0zbp|5t|p&38^(QArYnj{1%apNbXo3)E6@5J`uk}%wb_4gb(e&C z3AoJT3Vc>x4;0`fl2P~A$fzgHsh=~^&TdYL%Hfqyb=^AjH-Ovdu0t3&M2*bgY}TE_ zdpuqgpznVFh^H{v?Qt2;3Z^@xRT?U~-k1Hd%0mb4h9zJ6zOot;6eJc{sF4lc3oMo- zmcwOH%^ERG59vr{E;GNymm1ygYh~!$W5M*)9Xk60*!? z1ljMk&*z%GZ+X}70{3YpuD{&5{qRkI?Z3#aarMlM6QAi4+j~IbgqPm&Iy2~Ei4{LL zmKkz!UT^F-V%@yLixk$(q;vX-F~RqSM#fwwlEfm6;Ag(gQ3>?)Qy1$XVTY=gk-oGy zyxp2xorB(R4EozI4#F5r2eK1jWB1co4Wn}sZ3tzyl?G3~tw*Y_@fX}yRZK^TS9g!8 z+ggXlfhHKdWk5b&x~ijMc1%=lzDCYtpRUraxf<)Feuo-0VSD@L;B<)}`BFWqui|!n zzUF++p=|}0)ackSxJh7CDvO&&?pRH3=+4LK*A0Tum>)gy{7pex|cvk2vL+kQUBKYyNU*qbQ zN!u+3thz+QvfVFMG)r#yY=`$ay4KxKZ0G7c?Di)>Pu!zUoTl@moYQ6#>z)`&8`@_d z(BzBl98l0TXskt&SaNw<<399$bavCX)91J3+BDSn@0yOOI6iIE^wJjbut~j{%+sT! zbZjVb%ze;qVw{|gQCa2r*IKG#d(KZ!_0BI`y6iVJ9bWWltFv9qpX=%#s(sj&f3(~n zBU(gOnUeY}oB zTSBSZV&7Dl5{!be9v#(?7k+-l5Z3=DD)EEeJs9(vzo^S?(IxjTapj+<1d1@hYtr9SQVCLX;057 z)oD|>s-@mSTYGqx@5dwd{$qN}`E1cnID-o_HA3})WlY;ei*E~Btk~KyFNMIS;puh3 z_*LTEm%HbC)Oozsw@l7!-_n{RhTD~NRp$i`VrN4mMV;qiJ?jZM#?qA2;tx>EgiPGD zi&>l9$@-1uwH4_i&sVP4DRu2Q+-(*0l+!cwKdmRmEQcKh3wSc6Jyz-dY;0`o)2&(w zronFhQ+nDVo9EFzlOMhqx%Km2$b5rqw;8GK^EywyWrCcn=%2?C1cbcHugP(hjYuaiesB=%gd=8bw>+vFwV0o|nr+q29u=IlM+<&Vv^ zNU<8;#NqYKn(tlHRUcMSgo;P5Zcszz0vdq! zj9&Rt3a##D9!s?SJ-n9p?V1)@jrRWbbU?|32`vfkqIe1W_aKaft&0&V_Xhp%A%Gav z06Ptp791Lm8!R1BgqRgsblT$>asD2KXQEVM80PKia=6YU3g3-BT6s@CjajcSDviU9F?{TVDc zr3Jx)RPQ-9Sg@jufR$*xR~Iy-^#v*c;dr2Q#d00uhiouZLsKUTi=ugdID?es*iMS1378 zo8m!tU9;#YBdVmBZNghU=Y3Y3SFy8}zu;l)I%}p$9hm2LD!|INR(ldmw=jepicmXban~~+ zusJKmWXbOp{Q1spc*9%_j()U$O%Py|}PI}QSbOM()L z*8n{dWI8wHw83FKbax?r8fN60FkxAI=-kkaPsrh&u_Q!8x!aRWLl2yf3xVWCS^kQ` zt5Cu3YK~zWA90)9S%JE{L_s+6;^J2i9%ybIaTkdKTkvbZK9kGvJKGL?#*^^KL^L+o zqVz%%TXqjU{tremG8)nNvPe($NJcx{e;7|SiyQ3Tm3TgvRkh;x$lOR>`(@CNEzVNA zI*qP`lHk!`4xjPixOT2ejGLAGSY zex{$`8qb@&`Zo7;=XmY{S^Djayo@{0GK)R8LKD~VrNOog0R*B=7kJjS7>USa@i4P<840YHj`Spl5+sFI z4OWu@K~?}k7TabYW7t1#ryYb3cMPjiAj|xI zQ-ISVPD~*oPW7!zm1d}mp!5}Qiw#WOFl|hiWs*6GL0&h=TBm3$kM1C(PBP z%U+wLN^-tE73{Q#&S34r?d{}kT0bVx$!6{4R-=)n^!Ov{tM@@yL>tD$7C;G=lO);i zb?Ej(tiz$oXJX~2Dg!;uyuy52LYnLi*MDR0Er9B3z6D=CM?ht~zL-61b+#O!S_rG`Ut(ti=^Xk2-c~zHG9m(FOy;rYZyVq}Zm0l`W zl7IJS(WH`~-ZrQmyY#2gy)L*}Wj;DRmAOE(57Rm7{%&~Qm;8gQRBKu(>*$RgZ$uY8 z6$>9BDUR4GH>%I7OY>AUThmnSfSRttK8QPXIR@P(&*1gB*{}XsGejtk(v43_mvm=t z_zJQxCuaLVPR4mW1qmMw@85}6Q&#EGtEY{u%p>n9YGGu z2cm0NNbW#&eAV-op;jXjg%>UERXgtTJ>q@0_heUxipjD;045FaDDXWV6%6DOFs~8% zhPKD1O3RuDLtXXhr53Vzv1*7XTwBeYfh6VEp`Z9NtX+}#*+<;oWsTvb3o`S2`}bR= z#S6QCEhdVbe69^qi1{wrYNtI8Qg0TM`WbMCdt-XNT8B6fI5)jAT+ZJt-KN}aeQ0eq zFzBkK>K(r1-~5%nge_;qYfm@!;Ow&KfEQbj0T5epP2qBI-v(0`gvnR^~9qR z$z$gG;rbsjfk!W&lS6Oymi5&3cSHw}%GbGBGJ8|2s{G#B1L+g9b-honm9-kwN)7Cm zuyZ;}lUsB%TngtD;iRiAwltpkdGKoDL_saCn0g_h&Nrl(O5XqP=>Bwrf;Z+2<~HWG zaVy2#(Qky_>U}u&`EPUTE*GIL_*a+WEc|GYQ`5spKUZkInnR{tV}(7UPW-IglVI7k z*ZI6jcuP)vJSj5mvWeqzsuw{A!IdbVT*?NAhGiY{d+Y4FiCuy?gG}4TzMS3dM5ghg zJM0JTj-+G2EU_3fp_5Vv4&`)}&*p1-9(Y^Vb|vWy?+WsZl79N^Eb$q0spwspPx-tE zrS|V@DQV{1`ZnoGeaZs&o#nD$TW!)w9l`6h{H`9OaUwsyx(MDJIak-*`OHMV`P%>X zNJm{I=-|$0p-e-zqhvJ;VauO+1d$rc#yEB-=RKlOXZz*7)}3KSm=oWkTTA_wV5N~; zFcaqT*W$%b%~^DJ%#NuqnEPwa5k@@kjs zc?s=-9=Z);2Sp8mQ!^gf?^S#y=WaF@4-=NNE&_hYR2SL%T#aM|{LD)Ek|I3Lz!AN{ zz)VX^J8OUB)xSmiBgnKq7dz7x$MkjqN)w@0-%(~d`M158Y4-$**P)COnW2IS8AME| zyW+TFg!wu{L529pmAf;h#T0+tyIZ+vcLB|5_J2@Q5*bA1^&N zntKkG4+}d6u0%2Cq!wZ-T;?ktYBy-1i5#A8=Z*5A);S)aGx;BgS7EfNR+Cs&Krlnt5aNyk`vG+CT4yOhj8E2CS(TC@YO;NncimWgO_2lf9zslDluD_zKId*_EF?ub&U8id8y` zFCV;jxt3Ck%`VtePYL5JPqihpk-!^(e{jH9YCk|+tMN#46%uo*`SM#xdaXO#{#;^GO7NR{()tdhsH0bJ zbM`bjxm_K%^USVufJ7k3qTKpVSEQkY0m zk}w`TF871l7V(}Qp$=-@<>`m`9lOII$X0VVv{FB+qyH7m_QdkQMzN~%lqsFM-(scX*eqsqT(Q<)?;z28~lq z-d}nFj9L2T&&rK8O(*G#aYSDUGo`E6A~s~mEX|y3W4pQtG;52t=6A2#6{4Nr=65Sr zu*h(6=RadS&5%uM5^;Z;Q5|>MUP9FkD3L}$fK}tU_g6{11>!bDCyYPRMd9sxHoF1% zKxtyk;W%SfyN~ruvo6_km@hxj_h|g-Jq`2WD>Z9pcV}{7ei=D#hmxPARH7Z$m7hun zHH+!{f`QLd$|2va>?nZmH7=LK>rTJ?6LwyHZ>J1?0V zH{*DTAF$doW=11LQxI9&Pvd*gJKa@v(cJ?Uv7=8nTb33#hio_1)-IYRQSPal4klUx z^jLek$N!%9tHm204`!u6R&E|Vf$pUJSa*Z)>aeOmNEjTL6xym7!$(<_hFI^O1PbW8 zr^%FQp7|yXUJIK+gQn1?SPb!+)K3lw6fWi#k@C=^%_BO=IsbG z@u8y-X5ue$E_}@>LTQmMD~&DHx;Z00#rSt=a*oMekD|j?UV!ebwCQrsqB0T>8uO(=f*$trXD4 z^|{_o!-qHR)X8c_M#cgL5;_vy?YMS$_(Y)FM_=iY86Tr>_XWpyo2f9Kt>R}VpRv}l zmA`1c6pi#el+i)f2Wz=Ai%fXa?d&FIdu2;L@sVp$A^hX zLj5+H5rjW#M75?*X(A1k$*ge^oj#{!VO|@EV1~OkcWNq6>L!od)mFsy2!eL2Dm zb0s*@7bj&{WyW{|!`z}`&}BM+lz24xD{NT*H-d?0G5C;3%&=Pg6*Hsl2kyY7>eGjp z1D9~3U)sWKR1%Lc;k15&yGbzq2Nwz2FFDNMVA|{p6&}!3OKEI;YW5O7;s(Mf98^GPzF-om!+n2^71kd>N8lj6(%X2c;#z= z1B?IRZ$sYuojw$z<2>4bk9Wwz`0rE`A$uEJK^s>sCJq8NCIVJAb^>+|1|52N1AAj@ zM*>FHN8p+wy^xKyBlzw>!151S?!UN1{|9l2{)L{kKOmGAJ5?WcPaRuF z-CpxaR?yny1~80B5n{wkC!d&HUiK`%)-?Gd*_Y2h%t2ecE0ZpBk{XkF%eNZlKuD?g zuHY6HFIJ7j)zc?bhnwexY1??No81^;OPXC6tTlz6samw&CgO}v`du34PU5-I%X>5y z#^jioRA-U%8|qnof$?;V;oLWbX3#yeJzxL$s%hEh#1(XMrL^ccG%T3l9|r%4uP3fq zA4vC=voZOCj%JttJxGr3$dT=xN~nxUo#9`7_y@^ol*F(Is0&;9xut=h(zheK8}APd zw_q_cFSgu%Uf_CN4{Xa7jcN-s3}AoQ8TgE}9f@1q{(6-cWe}?0(vlnf*S60f8f>Yb z?G{J4d~{)Hq)<0i%3UIwhMX_)ar`q}7KeOziXI{EFJ2rCj$ghqCs=ixYbvHkayX{` z`UiLjkVOD^IEiVuWk%LTseeUMM#_bx(`Gvir-^>D5pCWMALxwL79`5>V2z*no{(dQ z{>8gY>=4#>vtOaq1;1h@h7!xuu%(tKJU4rdmNK*@^^C?p{9nMsuKxr)#8N%8BS3-5 z)qhS~aLpl43B~X{ST_I+L<=X)<>o@Z)61#6z#=_>&Mk0wmTtDkvLe=Z{% zlP>K3C_(W!*m0lmAqc*OI{r!c%!{5R{d4BX^HARl2!Uc%kdRJJ*0uOMN=@arn;cjz z7s}E|IZWb2>Jm#*LLpdj#>m2&W!LW%*S_H}6O5guzoE2Oeg}=!f=?(Ci8W1B6}y*5 zC=#W~@RF$d@e>5g&4Zz>2UWzP^Hx6qLK!j<)vg}`p^TnDe;=2HL##wnh+F9=A(}6) z=&|vtGE5qhyDSZtkC~J$0nH1ynS?5X)w`>oEukUpr?n2=pEF3qktLHr^`Aa|`HT*O zB7^+78_kJgG#BcRGwrL#uN*2|3D3kg0#2mgLOC)dnjoA%*yXXJ%NZWA{EuEveJIiw z*JfCTIp6dhRK7uI4~nMO*U9O1mgA5?5X*ypvA(k_dAxI*rKH|_{;A$NqzEe{^!4Pe zV{G@>i+X0)WEOgkWv46>Th{2(PH&lm4AmR^;~jj&&X0P0?;S6iba?mr_e@%DB+JzL z_e$pdPGp%_Ffk(zR;`t@yu9Zy1jt9t(1Ifwm7nLwe(xapf}!V8UN-% zg<%!a6Y;S1Yq+J=qII7ar(WEW?yP@AxRs^yCqO*Z<88*ViF_m;GP*2mPo36Ym42r+ zzfs@axY;ZHtDlI{R^d0=z|I;_e_c3l6H=7zrV`gbh;>pzID|Xvd`OG2q_Pekr7fEd z{8YPtt6B>0p!$8~V>QYxguzzmDuUWaGiK6LAvJrK&Ti?KztHQOy;Z|{jj`v)6hAes zyc0|xUNb;>iHqX>_n0`$|I4byBOLKRsunCy-~UUs_&-Rs_!sh!^|5FEOU?K{L(QNU zV$uVO1JmO~d+e0|*L9A^dHA1o4rVsC|EbO~XF&pxhX-XNtJeBPar{@ zs1pq9Eq=zlC%2C0|AJ4>=lkpknn&*PM)&qM6uC7d3>~AbcT3z7>y@Y@566_Tf2e{Y z|4*r5=O{{CpW412RM~eSs~o?~%w?x3BAgsf+*BPGzX+~DL$hgM&cBl%>ofrY+)1H( z9c$M9a9B(2oFH}D!C^}$R))hzw7-tAeY;^KYnG@8BgYf;Q19(O&_nuvpofhAf*un713i2K zEk8mJ(V&t^+TNOkK`TLjmLOpK%ko_R6I9qK0poUg;~xvC@6rULV;HYmV4%2qm_~@9 zvS6ULGi)lcRtct{gfTC6M&8Rn*WwyC74Ua%mV7LVe0Yg=ZLf+V<^plZ7wBfC|v3IB&G-c{i=-(bL;f~ z;mbYZ;P}6f>%r%}Q3|u%{|R~c-$wDtHC?_?CT#eA7KWs{5gA{1kdd@@RrD{2Vm-W& zH!qu+`{haB`QXgXWo+-!(ZioL=T~POBIR4H49e>pp@;Kh20<4>7dP%s(^d_8{RtoI zJ@z~7n`aLid2LoL=P;3mbrz)_zUl}Yy`&xCfhh1nJJ0dsXSis=XqUXAll^tzS6de( z9_Syd?{HwqJNEs((cZ{JIdoDuu5hPsg;46~tH5>DSlmU_Kzx8a{P9+UF~YbP(nX-#L;uLbhL^zs0nfzB2CiI;n5>7%Z|MBT}fO z>Eq;eoZELhJFc6Pt+e_(sw0XHBk(iDIY>$=TNj0PQ!)% zu)8HT(&meu@%%d6(hy0NF;TXVL$Jn>qUMbA?RrT2ZvZF6B)2n>9gWb}SZn!3S!FcS zMt{oF`|bPQ8ca7yfs~gALG`eYIA!d~8~hUut}DsH^|R?eCmDs~7fO&n=$G8mo#Q?6 z1N9nrQwyb2h>dfDrE|TJ?d7+$KcR}@YhL~Lw5!LJ`2UtT$i%|%-x1aSTf{+jR_6aD z;^35ut^Y3RYAV9UM zW;KuKv$Nbf*1B9A^8)S-Jm%}bU`l(E9;~so6qH87VvqSud@T*Xr&i`rQ;eu z9>iqS6Lov*$r}FwIH>L1$tar9v;2l%*jwuOc7TOvb=1fW2 z2R6u0`MO0w@{y7(XDadrO_Z>Ki(=mG;t{^UW61`G%!SPXmvGWTWwozQGNyOU-6!T9 za3%R%nhyh0fMk65rwzCYE35+UmY9f0{o;d^4WK^V3pV&>DUjJ=DFFNxcnYegsi~=| z%4YD(A7HcU7MGgX0e$e&SA0B3dTMH_RK5I{8B4Ns{^jK*@IOAl1&$v4tKaUvHPu~t z9;^}phZU%U54nWk{qU7M#3acpsepdP>FwTEVJs*p@Ar?dhp!00<=-gTMJXIO;SS+#&%5&aHGXg`GW_9Auffqb8g@KdMLv<%%WqPfu>>4$e8fCi8M*1vRz&W_qup6O1k;e&;=c>5t_RqJ+ z$(?FxwQ9tzA^0VLhfzVu%d3Ms(A&$%F*1w%)WXf;hUMyOB@M1eE5P;B>*`o!aaD0B zkx{6mRI^%A@=8ltnZ!Y%3q(&AzYP5VBG2UIPf0*UR)e=vpZj}r1}aDBU5$V6@U!a0{%7v z?j)eptq(Dq7#WFE&aD1v^E(bppx0A<54_O;Ovug6jR^q`&T;d7qt8PN7q|6%om!dh zT)f}`yAF|ZeMi|1us10|X^Q%GcP%La^zT5n z79jWfT(`&aW^38G=;G=1=$L`)t3wmjkkJ?ppLSf4kEP{z zD$sGX>%d)Cx5-sOON*KrkVZAVU&F!09svjjPHWE@t8S||Z80Gsp}h}l&d1;vh$?`t zAl28=A?(sn0;rg(Ah>yTl4y5lBBPw#_`5q08(>r0uGNn4wsk6&z(ls4ORM6C< zB3uU21n@6nE-EyEOJ+rKR1|R61VafK1x2M$b*qNECwyfJG>(0F+uPT2GKF@Z$!bRdCb!edvnqsWH1d zIsirxU>VjoHqrrQBF$78LQG35=L!q^1ED7%AOPeZU}D}JuS->1RL(dbEG`tt z;RAQ;%uIq{{Ah}*O5o6aY~g*fA=4fJq-t!h^#VX`r6(m(&SmH1kls3ih66H6r@?Wi z!RZqqMO<8OuB`zEtdeuhr)lenZwe`FR?(9qBl6W$oTi|Dpmg!YlI>vdN&T?f#Pm4b zBJ?8pXukA`Dal9_Ig~0~G$+>B*m&PDMo)sx2Vhxu&~b3)59@w6x|Ge!ua|?V!g_la z^sfQLV+`;f$AWUQvgfBFO|VZhKo`w?z@$<*8B7>Cy^hAm1$Sg!1wuwcBTXdp;e#(& z{&b#xe_SLEUGVgYXv~%WX=(?tEJi*x6jAsE@#6v|C4$Ab`0%)T{&^1BaJhO+?Q$+R zFHc2T+4UM=N1^yj0Rn)6f`XE=cld|$6Ay%Q|7#Ii6T;pie;{mdl&@Ql{YFsWrH%IKFO80EI6;|$ zr1YBnFIE{|zkwuA&t)y&<}4szLVO5yNIw~NNO$NNzbz^z0Ahi}D@_r>HD-8UQ3U`V69H_pW-k z>LE~te4P3Pe!}z~4#wE=&5P#^N46X^-OajXMMe2EK*=Kz`X`qyPtVSJ zw<^rX^Q+YIAP}U=X#}8sp#vol0x1IV2|;J_t_5$KjQFs{16el95ZR<6tnSa5fPU9wo^O;d~M`}wR6WI zj{br^6cuib;!w;Il#*Wfu8YLGbSU*$N=O&EXV*M}z($q0(piIK0`+%QlU8ylbdlU= znP7sePk^#0AXy>HSY;0;&OPgyhque|ENXJDm^vL1%zbu<0IttOe*#RFgjW4WjiumN z-@>9OC#QYSIUznChv%iMgcNe5dD86(Q(_S`rB72p9X87J=jIH0P*lwZQpn zBEfka^zd5h8Sx-c%c@rayWIR}6;L^R1^xg6H`rzXNKQYGd5pyDP{)Az0ml0ytrb;q zfBOf9&+Eq6=8CUc`~Ui>Z0k#^X>b0)JoylsA;#Lts8Lf^vz9it=6l@dJ>O z-d>44iw_^#1_r{W7+V{Mp#ZrGkynM^8`fPZ-$P4vh;R#P(UH0aJ1b+w8KDuV>h~+-cNd&+6;ojS$@Z~p7qHvMEUHDh( zY3DhIEv~H!EQ+vdtl3>3a(h|#=5|u;;^pF$Cb$zm&4M{(DR85}L4c6h{4OOl#4N_l z0>#RNzC*RjrtHiom?BhdN4OY{tvaSUzszW#$)o+5s#tE@ib!tOanZn{?dM4(^GwjI zw01yDn9!5J3S&{p{XHEn;GUGNWXI8W62|iDU1N9@Bdj8cW8?JK>+EfhV|MW+NWxxA z(_Wm;Sh-wqxb%|lN`?KO8UJ;Qy0UPJ zu#$asFdMN)6i7_{ zr7fbtY|&gG^&7;Y38;mWJ%w_!DEiSMFo}peV#!%qgxwF+l$7R{mY#qSg|JCaOFP(W zIW;;tNt&_qyWFtBj!1@V^1k*wL_nmsO!93!Dh;)+>Ul~j5R+W2GY)NC@Np_!8ab>%KVZUi^Bu6B8L3 z8FTZ(CMpjAaOY=cj;X_X`!zW^8HAH~3ky5_UBdxvtB#J2r1=^FDZV}$DA#1krFoZz|p;O$bxPhv0hR#K+Pu4}0IHs&E_wt9N~+XzF7cto%{m=+6;Kq>P>wGG5A3GJXY9M@OHqoL=PR`v?0YmxEko z%RLibYA4kXpPupi`;A3NaF)$lOj?&Xc4wax$wP#5NAtYuE`%EKXM*8`Rq0e2GdjN^ zL&Zkxo9pFYiClk>F}ScxU%hM`S$Z4o;N9yfMJ_dQI2E}RQXB*u7nnSgL>T8+*51Hh zcB8xaEH5%l0t*IaFH3SPHZBg{8zP(yxjT!6O~n}jfe!3v#P6jN=#Y|AQ#~&amm?w~T3YxfVp381_PolR~h{;3M%H@QZ|Wo6{$l_rA?9vAyyRU~{J=&z=#`inTG7d4}fPCS{F zd}=H7Y@wju=4vN?Z*UIU@VP`INu}9V)Z6`o22-!JxP?SsLbK--)9c~1;pH3`Hub2y zLc?m;ulk^5TreP_ABDdD{zelow`djd zXk=KbEWU+RWXwn#*V8u(o~41s8XwQS92mQ^#I+XiHxNsjkn#_f`3hQH6-E|MCusH z&nFuJrmmP7u%rDVDkkQzESJvX+dVXdunI8#h5+X|FzD>$)J7a9IoWl7dMZwW{4Ho` zNOr{6*B2~Tg8KSxfay9(Hr(G2REFPm_4P>uM2I|qGv*(C3!q<7@RA1wjg2Y&&Vb}b z#EhCS+COs2w><-_00HII)n|aY*t-j2XIw4|04N#{F!qJy{r!?_=g|${EytZ9YGys2 zNmuP$Nj5?H^QE%4s4N9cCJ1%mpDpK$&P#)^K1r}zVZ(>C2?Mv#(Zd>3Vh>9L6WMQ8x?It$TSisrbbno z`~K(Najza<8^=S6ry#rDqO^0HT96OzY!kHf7z4wtfIO)=h;VZl`pL|U;1t-?GM_zr z=C7)%ir`)L>(}cvCgZnTUt!j2ODUk6(VfvP^-Wv4%qTE;=2%aYr2t=bW-`dPmlUhn{RXmd4I{3PT z{??PiAAu5?Fgae>*_S{;8TRx!D!m@%ik3b$rYIBwO$~TLHNt-y%FcJ-s=BSF^P!UU*o}#x%L>moQ9r8{1umdvsCE#JN~Y zptr6&jn^j?L-na?jUcCU7xYVcaSpZI+c0ev$Z0g$3%Q@J>j$b-)*t8vO8#O9R=d4Y z=G{UjGsnQF@>7%$(lnBgc(eHi4$i+IKR-Yo*s?|{O^1<_fsh9_w-I1uo0^J`jTNRy zl97^v4i5{nw6O^kud`e20^(vM;cEvVB!2-jtL;7Madp`k;WgnkpP1JBd3UX(y(r_Z_^!Ya?xY~shkN2{6voW`k5f)Q+vA*5hO7w>4TsEnr-<>Uf?AlZw`9K@u< z*ZOzj;^Jzv0a~axhde;?zU@_;=qKge*$j%1yBzmqbP)Qo#~KFj}o z-DGrR)Qcnl8AFpqZ}^?mEzv0XylL1ThJPptk~^p zUo@E6HVskBFUiak;e`yN12CTCiv9~JESNm~=m5-0gHMl3kr_0Zxg$LIWXNV2{-|DA z{Uix5^_9Rf83-t0lxY8%2`{en+5^pbW%7+lgMMC_q*!9^(caO*>9EW|VmMUF0&B{n z9G`|Uf6HYteBbGP*HmM-VTYqORkIeQPR3jRaW{4LcOFJHXMLLg;0vCB5xo>Y8{=vH z$;=;Btcf_vVH%uL6gALEF*E#`i7U4jvg`1SLJJz(2gcGIoP08jQ7$H$3%)Z_CSDGBnmr{kFIuTQsY zm%O#^ZE?h0#GpRwCFWDIJ5a?HDO1&J(}l4=CI%ZsJXf>+8TIW~#X=Gvi~yt;zWe!5 zP`^%^7~0oP+}t$i5@LFDo2qD}Ts{fx)|FBh5U0ti6;EoG#1ERR=dE%y+&qVRJJYW1dNaq)9qxs_IgXqNnIda1nVCYHzYHithG2t47Tm!`k+^gb}D z*On!VInFoM!191z>2lKHe8273pji^&Vo|NhmJ-K~+dVpm4duuI(r0^0Kkwd~E&(l_mqM0!?-rxdli^&U^j&Q3vdz`mlf8C4aDN67$ zJ=Wmt-)cYuLQHM@+SjK_ldV7NuRwjgeW$@5eQevYT65u{O10RyQp4@19nM)Zs51zi zWc^2(N~KU4f$On}euF0J`=^Nz1heEhwgf;GUco(9!T4WQsFdW(;9pb!r;QSgHToWF z4BF`BQybwq=Kqt!fE`ZUzjD}L{3i$gB#^@)$RYV(oge^mxK#%^bU)=F^RFC~`X(kO z&O>=TFMl*PYT?y@PG0>CQ@Yc4!2i_A?Q&BV)s}43h};o5`Rq_zw!qdFoU;S4w+a0X z9Kxeo{olw++-&`suhjQUp4=psNl?Gy=lAblLm z2vBLCOiV;eSN8X<7s8?J$}1~R?w$cbzScC~>eISCJ~$||&w>3= zPT={3nQ-niO|jf(pMO7I0nbMSEP)MT3K%m9YJyk`Of-1BAcS?7VdL`_(mYzXxzKtYt7%9b(L-fE!P=mJG?nJytpV&CF~f! zTAr_TfG;+r!T6+3AHy&E_wnkpJsM&r`w*lU14rmLKzwQC0_ZXdW0d&j(Xu>JMpPqh`qyE4BHaV zjVI%a;aq{0mq_HP-9F?#Bj|uW(s%Z7206tU#C|%7(aP{|En8}#qhF6)7wb>Rr$0MC zOW)`Bx~lA_=KtDrp zbvh(}d2`!&vi#Hgv>=l1_FV8tuXDwvbD6q*Io^z`Uq){KuGi{H5BsSz{WbNBv1*g{ z6JAu+6Vv*#)3w@-H@ltSvx}8R_{VTx4*l8mx#Qs>@PTXQb{vss=e_zx%22`0bm?d- zWVz)n*ZtwKO35P%#NjJeY}L%9Y8nctPOapbX}El6@Ch+4WM%h9Mc?Hfj?FJwoYaJz6RRkN_v|COq@IwWDa7v@zO$ru#5aPAvi)-j4j6Jaa? z-}Z~2_i2Yyms$sR_sz}y6G`z8dgHq!U`-?>lKFO~l5d;>CgeAnpy0Lwzs~N?sRV)c zb$#c<{#GB%#j6z?y??8;MD8=$AaUZ7VAlG+(mTgJafs+T8<@}v{Xt==6<&SJCwAt(n3cD5jCQCsiBRtDA_B}*pPmktIn^&CVK1qD{uQf4@NN(E)P=rcm z=0;wr>Q8AUX)<8=j(0&!99@)erlk}-Snpfyh~N>BM3XNc48_uNH)=N5*wkmW#}<2+ z^E|L33d4zIZXfnCxr)&7>HAdJT3O4QW7?%IE}iL!;L$S1c;UN+f%&(n<*__OWAb+2 zAPW%C4cH%rE(CC1K?1VB{m6IDU!$T1k3`<=%L^w*6ftm4s2$lcBA7M^C)^@TcQ)+% zav%`Fi%^z=E7R2(rJc(I^`@I^f22dr7f|N2f>>}>?uM_|^<2F69*Q6MZ_d!MJDs}i z<`>UM+cu(SVY;WdFjAz1;C`b&gUHv4cYL$@B2@Sdik$Gx?|08Ty42%wf9k(Z_xjfWF#=VYOd93#Id^3!DLF;#3Zs6 z{|^6rcj#y!DedIK#)~IF90dnh)qAS<^yZLfrH(8At}+T^wZ1bqQO3RcBfj}6?Fh|_ z|L-~@RlEAAF%26V7IyVt&E4eIIRlFz7SwgSwCnCd|8x7@jP52LQDY412I&qm5Gl^p za(?NK+Yrf|f}WaiEYVk7NP)Qo9JYH-^an!LEqYtfTNV>Yxip$FvCs7DYI#f~Z%}7& z)FlT~JLjO5YjsJpFEWT_hDeJ@W)9Y>)~2cXTP_7E0@}Q`yrxb=lUx0P+Pe2A*UGyX zEz$+cWNMj9os=j}ljQiGY%G_RaUq7R$zgZ8+la&T9tUwM zF;HAxk`kh~7_Uxa|y-mhCq1 z%^yD)tmDQ_wN)G#iA^u+c&rSfkke;qH+h%Cl?>KBXx#|8Wz9BPL_Ta>&eRT?ON9^%rO)*rfBSS7i$$|<@F9{ znm?IOkM+@Z_L@7f+Pt@yEm~I&^{n!~a6eP%77t|M;yh?mLl9jGKW|zj){9Dk6~BOW zs!S~kC`!+`=z(v#xNNrgR`07SBbqG3NsXn(f|dLIyYy5_O3Kc~SEDhj@Y;2_Eu!#) z!K`n&;s|_q1>??l2FY?2DfJf_EqWWemp3ojZ>Gy@>&yd^y$U$1^Hs(M^QQ)bSlV(U zS>*1ICEUF3%Qh!}*i^{{yuWw;(BMLWQ-Kh#hjMJbDPDlp2aDNf1J4>;MbN&V;Z(f5 z&7U5hMdHlv;9$wIujI88MXs&Oe?Hi~;sNQeziZvmb6b+cWWzVFK^Q4hkeM!HG!}~2 zqQyr`Kr7C=9f>lynVyS@oX`_!(EFCM?%3>p=Mu$2joBqP{oRadO!>E0@$1Be2Jux7 z2l+-<+m8&(zhbxfd#yK|Tc^^FIpykoa6Lj(Ouo&yBrA1iklwQ{3>=ltmIR5TNMDN+ zM+Tah;nEmr1t8l^%Io&XFDkcxNrAPGRv!-YE;aEpJ1;cc3Hl!LElXR=SjSk&L+K&U zySx6#NKCj)v;_L}lXAO1YhP?E?#9rb%TRG*!E7}VH_JUu#n%{{ulLW#?gSTT$glK* z4N))@Atp4N>!S%`@JuW$^=rVk*h)_l<1Xgm(B%Z_y4aA{)}(3oT|zXQ{pFZ$#O_d{ z(m2x^;ngd{T-B&~SGXD}t&6%~`F0`fso<;ji9b+=^^(E{-{|ZNTqdm*{IV-uST(AZ z)2WGQ(K}_eG>=+>okGDYjI2xIzFhnR$-pbL_!hmqAKHlG9KL`x>Buf4;Jw?kBeRf_ zetn`8Q;>oY_ApWY=C{s24PE!Jdc=xp{*m*bWAW&wZ8#Sk579UXfXBXViIT>OfbVC| z3ub9y4{VT|>OEXG#h=n%bWC4!+~nHV>t@cMgIlPLh%MVTiEx?R55)sAO+}PQ<}BF) z(>cuXn?ZLZml4HqCDzoUPRbAC6)FDdeY>$;r3A#HB4(R3b6o4Vi}sfW7Y=ewZh{ed zb?#Zfh8b?rP~9~Ik!@t{%SfBwP%E`L5nAF$eb`=!q>Z26qpu;)5cGMr?VV*E&-|5) zK{&S;FDZnDy_9qJ;rxDne!h>Js^l)(^Vzst^my7%oe%DCqBXPQ64$OS;^<)2e<)@+ zPkepWJebDDE~!nPig<*Wn!|s64{)PQ8^7m&-uK#OlaoT+73~(p7xcw$>LtQdtYlRZ8G9y>@K?lSLyY+onD*;ry!Spiw174amyCUs*H8mDv1qzkLdq*0oh4JG5mWW@r#HEhDP2`MQnFzkjG-8PgAIFo@;%Z$y_UsOVMKI9Z9NuT^a{fXUI^ zS&liYQ*uAySQ+NR{LjKgzSD zw1}_4EE*p~lCvMsukHurm7#XxALa#f-w>dgQ}p$NNs$r4f+}JjB96jhSYAH*n?l4* zWBTLtt@j~wZ;v=LQp({SXV$mR(?A0`NP7#F1WwF?qg%}IkH-oz9=C;1a8C#OVIKF4 zP|!~Yw4Oa4Ap8mSc#>KF$rFL$acB8ow?ln?Y8ls!kGmfQUp^#Sf=wdSPi$li`;VM& zSWoZe1+P59me|ezKDM8$ka0kO4||82{eU>f&sD?Q76~O_X8`w8jgf4I2*mySjeg<| zLXXGe4!a(HgUBOnMKlrJ&Nz)Sf<;}F)>894sVr~i;yK=iYmU(65#&wW7+dI|x ztC1pCQize6HQe~uc0|ODN6uW^&W-vcF$A{bf z^gwKfeVQ3xaZ!EoL6=`D^K18}LM25=k~yu6E>R@OfB2CnA~9^Etc%tDob+2BTzykq zk%+@cgZOuR@14=PCuu@HlF@);?NCq^U+AQm&lV;WhZQd@T#V>`4QYOl2WDNVAe}IU z9wy^&|0+L$!%DF0AN$X%7K*sC?Nb5p9_->-IU`8-j04EOHh&F$EJzkn81R28vcLvI zduIPw&#&XTzE^x0`eG4HJ{_wk-!xD=rPaZl0VgjJmc}UDF*JVTS(Y^x)16vvUHU{$ z15PK$VwQ;lD)YD|7HDn$<@XEZem_C`4T$g{1ro$iIY^=K;xE+MT|h|6lCA zWmH{DyC#aeySqbhhu}`|Ai*KHySq#9;1D2qa0?zFxVyVUg1gg`WM}vN?$~FX?sLZ( zqwnZ%{g|t2&06JE?>nDb>v?J=n8fC3aV>xjK$O0qw;=$s_iNM_1q~RYkIw9a4EO1d z0tZHn8QY5Hru>Ga&nY0kvEWyZ!L%V@5VR4v`0K_ely{h1NI-wIYqw7bjd3LIsV{L? z0#noxR2E!#R{r;h+`Zz0`I81-Xp6vTAdcY5C){Tc@nudhV^^||fuY>vQPUSXh_!A1 z8od;F4Lmc@KG$yQN#~Kcci6t)vl#rD+^Bw40FnU_!k95N{~gZ%Bl^-kDDu%-Y5bVg z4qEF9$=z7Eg9uMe+v&s1ImAb;~dIgyR z4#J$x!o(gABgToDMYS!uYK>QTCCW>)8rR&9>&J=Lo_Qr;3ea0eBRB)P!4Xg@LXd;ZcuODXVFP4KVn<9@a2=2&Wlr!@VdV3lN&#xx6z4ffqxz( zZ<#(%qWXlbr|}^w>ZPOJK&(#OxZD;za}5u*PoI3dwc93Elj&za>W6hZK9TogV{vz> zE~pC;=?5q9*o@^^{jt19`0T*%1sw4#f8WVYvaHjRp#N|xnNmG;Oo+w@qYhad|W`oP{KIrP_{5?bvB<96QUti6EC7R7k;cTN9dBKhyI+J9V@WUJv_Wm zT!7ho*GEm>A5)P}*X@ny6thYkpQg$8mzAZ78t8BA`H@_>y<5AhS4cy(Yw^&U?cFUu>8iax0T7?fb}8gK@J8+|{KG((1qmGwl#0i)B3ZG^a5 zHX0Y&oi7eb4fj(vcfbg#yir*au~ltapoG7DWMMY7hWuKBWN^e4I`(YSws1aBo_S*u zP+n$MKBk%uDCEuy*D;>TewlwO`g29yQ>A_ln*^Bmh5CS{6k>l@#m@eLK`qiXH`!!k zYhD_U07C}-%kiN=n%NdjhyY&1rAa?N+zZm-}N0UEVRPO!qXBw0)OED{-7aQM1H1XbhEjhZfUFLxiXbrvHUG5n*Z)D zcfs<#4qPT8i)l45ql>wAlbyC6$z4L1Rri1RR`~8Dr&f*jq#fJNDEpnLbpp#$=qMIb zwv!(u3aWWh{_`!RoNqzLdHVQgKQdaI#Qdv#$cU0omqx(M@67odSdk4 z0jC4i!mFsHFV)88H;>ZI>bw0T-LhEJ#0Wl^6s8+APO-^ajV9ZH3a^Wga7cxrtjLfHW(!ud>=EN;~Nz>I;BzCdTm`6%?0yVPc~q*aLl(2FFl ziZ$#gAJr^uPN04bDGYQH6f1*9+O68lYVT{!#gAv9TQj=$dKyDdGz%Sz;PMW_Nj-R~b^^8$~s2@74dS!YA;pN4F z%D#wZ3b+zmXbPs_<1SwZ5M1BXt%Oxj@c8%d!Ptd@BtB0=40R#PmHR*mh6n_LdW0r< zdaX``#$-I@!3~Q;bhe<@4k6&g`K(r&dEy+W7V&AAW zUyB%Nb>^*R!~q!{$Az$$oys=s7hrV=bLB%k0gELs!igAaF73XMYt0Q%t`sGNb0FRm z(dlDODaCxv`GiyGx1G=uzb8ciAL41E|86Kevb*IYfQxZmC_TmzWAmS(& zul#tJ_czrW5CW*)nz?>cy?NRGrg{^#{X_Nk?Jugg*1xFUJpZD4yZDRh?cz7po0aWv zsyAcc9iV!<_(k>R^b+yI^7u{lR>$<4>do^P)!SR%U4ZKC?ibbDSh|Vk^K-)lUPNJz z+kbeu6U0#XdtT4Ogc^wTo1T=98P!l{P=)4BfCl_EjeXy0^zT?UmPdYp1E}6qpZ`$3 z;Y~9^tgGhyqI&D_5kDrvZg#jBB);ypQWwBzxL?|;{2;Q_v>%=B-U<=-v~3C~|- z#VRa3BrMF#zb1yL3M(@S*Y8OJgjq;_6Rt7=VOA2JU&MAVVKx#LmcPHi4n%&jtG(Re z0I1gfa+6h9IZ0U9{=UNnB>Ou9ZXog}88gZMB`(WLxBiRE!o&HWlG7&ZS#C;Tbg%BJ zEJ-%6{p5Q#&Au?0RBRgizTxk!k%Y2j#5K=tGwUDhb4S!4f2deY2;oipU1}rR)MtVq zGqt2-KVjlR$l`HQVsBEomDWNhBDTPxB1pV8r59n!2Q(J)*C%?FqZ+(vbG`@~g;bpk#I5Gl0 zj}*Z}eX&}PKYE}9gb@ayP+ ztkGgj&tq9m5ex1t$dP@Z%fmF(0K4FV_9L7(zjq+m1-vGaeM>$vaj;Kr5*B{I?iR=4 z$51k=OuSEbL;{pEy-5C|=#nG14{hj!Jh~`%A&$tFbGj?Jwrj(T0R6{@wDS@z7sOq2-18>MRXZOm8UsDKQcLd3N?h9x-HSc^Xms=eH*X2e z$nuMP1Bxn13}#!FgBCY`*XWRO$u~_`*OXdYJ5Z#<^goiEa$|Z>L z&|(niT*Gm9E=&}CD>0vHs7i7%tC>47p$!n!*342+FF%qwQp7iq?PfD!p9v@0XF!-? z$fy#aLCT@@d4#&GLS_OgK)FXy#`j4PMG!#*%&hgHK&qhp4%^-hv*rnZ0i}o@c1R*c zbU*}g&sGrf<%)lc!a!D(Vk`xrvng)%1IeEdO?cLAT=QTPW@4>e+v5$tyz6Sj6yU0CN+Sz? z*iFS#@aQyPAD?P@6H_rTE~Wx`QYwiqhe=Y2FUPJ5;s)G$3yLP7)QcvE2%&2FysV*Za7*mUE@A72EfcP+21~WxKA))Mo|Rb3=9mt?hz0*)i@De-@k@R5d?3xYj(j zI7K#Z4={Yy^H~)nar0@MKRmvAaKEi;QJockq-+O?44R<$2jk80vT^>Gj5o&%5BsZ!-tnc`;^xXZB*uekJ=i-td2h@&0dMcKx;7{>5Gce$M}b z!M0uG1Pt~i?NKgU`^C2JS=~F9()JKc(y`D28Ujh_3~?6|OQ~jsHuC=HLwQYDa8F!_ z&Uonr!MIS#mX`P0r2^+q-~CTIaKkr zDI#&q7M4@qSRJi+bi}{P|B^!E7)KOYUwo5WIRcN~C;dQgZh@Gf{wBTp<^;TKESp}z z8fBmdCknFqaO*w7THWh;JVG-i%$h9v0^-?jPcOU%^ryr_jRy3agEN^4Ls^E}gyBTY z@)hyVhlZ*eS0cxro41;A$tfSqL0sL07N5`H2H1(4njSFkG(7wPgKa@{>Mcnu$g->~ zdyd!Yz~t+?ih&f1T>)>Rb%#2~Ym5PnFftF;%VIwtw* z3Uj$Dg)B+I-g3N{pA!MvK*=G6i{5}iE5wzzvu}j?c||aS25c-~vg?=^Qb8DU zdJqog$;Up^y8Rr1#KFO2%H-GuBlr*%|5^)t4wa1a_%79tgg~tJ&I)l293$gsQpgzO zBL*5}#Xb8N4~SDhm~c0dUq7hXI*H+1@8f`BP#jd!&vD*(4Fn)wV+%r;AYMoyi@xWa zj#*Ho&?rH+x~4~yBs(A|&{v>)SrQuv0TQru5=ZF5J8r1yO~S(0;UtbNMI2Z57$V2z zDeon$QN=3bbJRl!xGbnKf}Dh}Q5_D7S}Rc|u8&}OT&9@8;c~KKHzfn#qslB?4#d8f zA`cFU?EylYQh^PxarECtlSg40Fn=#1ki?raVD2g+ki`oP98mnA#FNCX+t5Lh>%d?h z028Prv8^#t9UEvMvF$eT9l6tv#OKIl9*#TOf!jO)JVu021e|^*7p|9M*$rJENoNm&wK)70ExRubfcIoDLPN z+(1a2VOEZDex`eT(@v~+I!~;gVyj@ES++yqOhi&^E8TZ-cU89;P+i`LHa62#u-Akz zT*%OrTQq%gYFlCW8T!L%YPmFyH0V)C{jK0fCzWz6@tnUL#{Ul2;$^x0 zt82l^@}Hkx3`PU4#qv*j#<8eEKl5+I>7Vu~;2`(ROu1|n=&g$O zpOq+gHVqey;lzhvxF5BKhPE^Xn51U&7zbjD%GWqw@sC2ek4P&D40CU4OAQ={seJ2> zI^%#P%JS_h$FvEkSu56i&ApG3HNxEk$@P(``V+hQt*A?aX`68mZ^7$#{`CQO5{?e> zlNRxhcduTtWLsQEnN9?u)PfrE^uI{ejBH8JE4W5lolFKyB8y*PwZYh=F22_qIe@)c z^Pt(Yk;|Z^-^i3*%0v|V*=!7G)qMGccn@gRz(`2?(IR|2uL#wrdNOl+#CyP52mtj6 z{sgVfwEqY#|DNtIshY?ashVrTn9CQbn(4o!YSvqKA|PFZ6kQ1gP@VV%+D%HIo$K$ZsZ;wibl z^|y!95a^c;zv`~iZ!m>=71_{ev|!hnlPSae8Et5F6nQ8TCF2qs3}y_m8xQ7C1n@0H zAa)FqF(MI75As3qM7j&u?vz2`4RVbccR(BcVAfJ0!zFZvK%M+TROJZzAV6qS zga(VLUXCxQ{Kc3=!Tsbx6^8=4NYbwYq(R3R{KQ_RaaYoUj0w|%&x5QfgV;UvE)S)1 zpU{GQYHY}KM~5bb1P}pvAzw^11tCQ<|L*qm7lE3tobqu+If^ihS9HOS1c<9{bOm8b zxD=?RdA7iDMAQH)ELoYl91I{(6OD_qk2e~G!9y1Yin#hA_OoQvC?Hj1{rCCBOX%hN zg5$6A3(LRGFD!qbUl7w-^SnsZ@R?{Oyhzks4b_|Arjki_rkcsIv5F@^d6;vWl$3sUQJRpqgWx0yIoC-x1f( zsQmS49*7WhnR&sd=S2Fla&M}!2Q+a-ZN0|bV=%)ny4K#fDN*7K5nl?dR27F#Ot(!FcsS99sU`87gTpcn+Da! zbJH-KW-Fwi+k(^I7cz=E=A`rjqhgAyVSllNqTq4mGfk^8Q9&-AoAEJUnj9JYZWR$K z5#jPETUg!2dDtGBZf{4TVi)dst1EFb`zpolPYYjrk&jPgv!5CUp`g|G?|nC2o`;Uj zHl~i(_f)#?(#I_VoHgF_NGK?jY+T|(cFbYp)mL7e(3=I9iuaFHgb z-tABmScdn^&){kDgS%9{+fCr{&EoxdhyXURIbT5IZS{u>D}3#Os`Db=@JDR41U*T^ zGm@%w{(BX`UorIt!}}+H<$r2t{BNFPaQsG+|G)VwEIfZO02US!R^~qs_W&5c`Zt^a zAlt0WzYCMLW?=^+f6xH{%w}c&jbQ_KIDyFDxp9%O{soT%cesJb-&ykjkv~`iGZ6lR zTCf1pW`8mUiU$h%jbH$!{{@;$TLXmy#r*ypDEl}50H7Q|(Ex(~2NhujK#$*HpkM&> z_#FmNk-yM;0LggKQTvk-kb?CuBp$f)((*rF2XGNq=09}>a1mDKKa~P-5!U~Su>iOT z&#!LyXDEd859SYa0t@HwVntPePGAAV6JII^L;wVa^UrAj&~z5g-^~H;00<1%?+O7C zpd_x}4FVzn0>kyYc0dFGfVh5lB@hAH%JsXdz=sR5Al{|fZM{ik#wSMEQBzhwHS?3X6mB-||Mb@ta*^a*FG6}#_FQWYs{8jCbN%ti zQuTbK;r1N0Fhs$|7$7#ZB+0z9?88$m7x{$e(T7}-%l@_j&)K4ZL4M1l zt8tyx9Z91+$<@M*aJ`Q1v<7uIWb+K>i-2fOpfdJ{Z+a#bgK?T4_ca|A*HPXNV{GT) z3;ftwUB^@@tF!wAc0C2F?v@#Xb)oyLlg|Qs#3HWKv}=Bnjgr}Xv?hHLG?6-JjHm4y z#Hzm8)sI~&lWDUoZTGrAPh~bHz_+~{%=ANM(?=*fTmQ%}dV)UOxBC7+IaPnKB68rr zIti;%;qtQS50GzSa^AOZSgnTCjZJK%>ukh^Z`n{Rn+C!7KEWf)H6?@9LPBp&xfEL> zZufb&aYF63$E1cv9&BestC7Vwa*KkLmcKX0aQ-uolJ7or=F*%k*0^-XQVcJi4fof+ zk)M__yG*MoZQ`y!l5#l>P(LNxXI1WvhO*?ML_T;CIKx%-jTS1EyhMmDUm~+gH9!O` zswr4w3)^jqv5Ty2P4e-(h%Zd8k3m4MQX6vz+d%Pqw3ZLI!LT~O9k3YwAJ|k4ODFK? zV=?#LxKG3sZpyV(DHIc@7>Vr&e|@CpCUV(T`$RLubvaQTQ1*+GcRPOw&mm6CEN9N_xp?L`!j1# zr{nbdmxp>z5P64xGLkQw#((Xh{`VI1ZzK7Ckdb^jmEa=b__x7i;r?T=0Yl9F$6f<= z`2VK{^JT65i@{`JX8+Hh=;dPYcu-pJ)u-a#6-Vhjjj+^=n~@DmphjPzY`3G4yvEbV z>WluU*S38GRZzd*_oGvHf@ERss)SKc@LmaR=8Xufl?NAkr9fqUoZNd164LUNH4&+x z1`yEGU`7;V5^)RPyz@U#eBi0RqQ;V}m~M!szC31^8)^P17% zav`}fD)p)beFI-17WrcDLCi8jh@#RXcqa?b3K`U%RnArJKT5P8^IgTQWX|nT)X%{Q zwq{Ce5D3{B8#lq_mDGT)RnD;@gh2B{O3`ZAvD#Uy1Yy3;gR|o!cbLF8srN+@htds$ zaLfKAdDjv;st4f(2`5RA2NOaMjbG5Z<@WUG)MVSTsit#OxGJH0WSP@|bjG?iWsjRf zaeZ_dRbbgp5ACOPQ-^l=CfiG@ORFJH%L{lH>T{RbuEsxCM|hK z$T2upTJY?D6ctjFjNyGQ`lu;YKA~P{#*4$xLKrYfK|tzm_gz01|J~1>-II1}m=0Mk zh;lKqj5Pxsyhh~|HKH?+fC62-9t;myjq(A4-0 zAw*#U0=n})%?&bv<63;WSY{nz!+<||ahC3v^p+9-NlwZi8G9BpTkVKk;Y~+P^8~f| z-qI>u%a1z_YoBBd8TGkbv%ryCN@ij~#X7t<}J~AzN^d~qx0OUG>y_QOZp64@IvnNDa`AZv=iLY&i=$qAs58-7zT6PDip8K z(vNpSc;eT z-LOxB807E0S!S^R`En{dg`K8U)_$q|pgI?NR7$;?6>VH~|I@yaJL#F>e9p2WO2*qL+Njj|YP8ou z9c?2$s1_cpJjmC)&Er{t8O zAg3-+zNm|q1&=1!_HLf1?>jxVE*-dd$#pGbcvS12IcRy)?|Rj>-J-1)5x@M120Z!Rj%hEDEw#()_Cl&_iI7~7aSnE_|f?A$E>;GO?(>6igeLw|J4fW7&* zytamdp@s2#r+@hkb@IH5$~&Uo`+nb!Lidy5YOmw8VtcQ>RF{LVz2m}=AH|LI0u5AA zjN%C2LCRo|ihv`HeXMqde>Lb=J76eALP{cwhDJi_+Ant`XEPkfjnN6y|2oLi^2BSP zdZhLCk$?5e{V9W7}I%d0olvMcTN+y$kRo0~=jAOnOfVwauBZNDLAX!v>Z zoCE?|J{%x!6a`d;0LcPCs!33p6aqp%T%}O{(I(JZQn3pZL?j$wSOpk;n;RR$yEn)s zql?~t@g4|4fq7tGr{lb?ad9|Xm6Je@95|N*jMoopqP>1 z;Hn!*6Z+dlsu~&^VrWtMze~dwzXd2cE%2eCp_4y;oa+H}Kyt?qWCb9O+jT@h0o5Tu zZc2VM5QV^u5}=2UjEKni1Wn34CKD7Iij9H6{k!pDVPOD=SoyEUYr@7!eay-_RxFmc z{ZgI_H#qc4;oSrb3wD4)c4F9v4?}~4HCiUADeMoY80*9aZ-#qx_)jBO)bjBRc_D0t z=t;360rJU13>E~Rnc<6~==}Yd7!2_UTQDw?0?`wwS~P%^cz*s$;HatN4S*p`jrw8{1)0DlwP-YDT`V1-M}fkraaOO_Dpy$^1Y|8uD&=j0t~+9Ann4 zfYny7{3X%`$rU#6#rN;oSXmEdS+JVwbaqk4HtpqzNvd0L@2ymy!=4O>ZZ=qrJu?(h z+9TXKAW;#jB!Sk)#3(2zxK_@|D80|kMX1}PF1JuMQ5&}LM*qZd`;(qfjJb=*Uu~l& z3Lj9mj1i)b1NcAV<2T$M0ksNWU%^ghK1`ar zf~6nG$+j(*3YmQ+9@nL12?ge1`eCoZ%DMm*HbC9%(CxLjlKy6;W?A!;-zrQl_iY# zS-bCBQvsU|Y9-sefHc-3KtT^U8|-5;fIN`DC(Ud*z?L0`o(u4u4sL5Vqu2pW{Pc;4 zn0T~KHeXqo06P&MCrY9`3I--Su>qj|)z&7MWh{QndvngTLoJv}XSo->TiU7D*w}ar zsDfx0iV6X92awJHSh;7*FURdK!`sk4`S;8jJuDf2ryu*`vZramnQn~l$0EV39bE)t z1C*DVii?ikSr%$wr%tS5PHCAZAYjOiiz=DF%{_;xmXh?fBkwHrxKpA%t4q02&2%RP z&w$vBvbv@QAiHh2#9{6{el}FK012w7ow;2Ms)kq^|f@A!T7mQdOOARQ1m*G!N}zT-Apub)z+< z^5U9No}HhIlc8>vLgb|BjhWX0#P1;Lu+Zs#yweJaf?^+*Xgr7$`Fzya;l83pLb8Gx zQfDUunohvJF*i7c&g64>UtmxNJqkY(BpLZy#0v$A5tj6)Mqt<_Rl2{Hp`IvhO*SBpkTNeOIrBZ#7t7r<+5 z3DdU`HeXNiJRDk2X%!jO;~UPT3#(N4j#6OhnlEw@=I>sxqe@EZ7Hw;w9Krnt!->Z ze3$~r$7J~3PW%KZt^79gU4kj4nITyDeI6RVeIv?b&P1w31Jur1Tn_OnWB>tEnkWf2 zets)20fVPOGut~p=?Z?hBKF80O&K{m*@V9bJot4m7= zN${X-1pL{FMdjtd9`aR#K|W@STYuBc+8R;@2LTH7JpnUtv$**5>KDLqkJ>e_t^szsG?( zB3#o3ML^{r1qJq9z+lp=m&07bVokjrtVsK$Zh1>t$HoSC(qqM0Utgaq+PwlaqP+YF zAcqg2QJT&9hQr1O4p)UcF*@ErzZHJY_JhfbHD5u82anNi~5;{&64tNuA( z5->XE1%i*)g}7H16V2Ea&gqb~@`aAql;ZY7Czd<)Tt;pT>!|JJ`vUhBq)&j!1Nc83 z_9rNx5;evriC`zy`%Q&i0rOZ7=;MWYCE&N8oVeD z=a1UlUR}r6)7XaBE4%LY2AJ--o8BTeN9PXZz|b*s^VW5i=htW^MdXrwZy?J>iM9*9 z7eJSSfj}e4@JEp%aTO6coV7`(j40=&hFCLXRYu+}dM#jg- z$IriXCj+t`MzvnfOcsajo|xsP*Y#y*YisL6bhHcwS_X%aiKS0V%Y(=8t(&O4|K+TC z;h0)Lhkj6S@VpqT--?5BK~^doUic^%UKBw73@ma2BuUNh${wL99(OC+w0p^Sp-fI^ zR@L&JL0{44QUGbvnnbkYz;45EXeft~2NHYaF*fh2DES`J#}h2I(Jle&A1FhGaD5;403XEUHnSUW+_E?o8rS(^yx1H!_6O#{B70Uk5pOuLjpgugK`nvqI) z#-J8_Wp2GI3_gYNfi6X5EV7`mFtXdQwg3>>G!s;GwHug`eQFs~`&?Q&G&*Wq3}*{+ z!hrJ@aBNIXOx{qTyQ6G=kuS#B-jaRlyI~WsPgy+&WK@gdv$Bxg_2D_Y3w>ZyyqteF z1m>4PM0WE!Z1qVf16`<3QCwQ;^*-289-Xk_3|?I_LyZVFJ?24vreC#W`ta~D#Yjb2 zIlC8dm*@p5GYYCfPJ5BX9Ws9#IV((J73CT*1z zdsan3|Q8}^4_)A=`{v&$f44%a(Fx$@8`%!mr8 zshUP~w2N#tdCky}XuM-mDOKpdK|a#KA+n0mV2B_<1^Vl;va$kX_9$QAy0wQcdqU^m z%g(x9(u*24y-mAJ#HdXass$v3t@J6|1JwAu&puXFI_-xQCxnt!)2MrG5uQAfFe<7w zXfwvl5_$l_H=$np47`h#vP&KIhYO6JiDPPD`IC!_p6}^F5fG>}!-5x}&TqOz_)NL! znof7D5ePdwJByh1n8zKwwmwE!INl3xblsCx*R!W$!~Zm*-f-`6=G-iofMsH;K&HWl@g6R~0!$aD9kD>~~kzZHm3@}y|6hKwf)zzhF@em+^fqFxxz2UC;OgHJ!IiI(} zCfyo?`(BVb@;j3wKJO|lL5m6rJ66q`14j0GHIE@a1C7Rv&kd(nr_ zZVtimIg{oUI+D$w?|xuRNIP#}G+~zr?9+WLDk(WXIk{2(c!MFOTC4eL0FDZ~3+4*~ zYhGJhTYf$yA~hP6q=%;`Fkw-+8_)=g!`ov|WiZdwYuvUjquyF9+q$Y6=rLW7!2#3g z+qaeF<>j2N-t#*_8)kh9e>&Dw1ajCj2y0UX1>|aR5|m0UE#uuyg!$WN&loF-{T*8( zystaF=JftnPQY^gIVUG0Z_m7OZs{F(}PhwapBHeoGT3>iQxC=|_d zP(%*gutP)XebSp$kGm;TMzfJ#EqBD)L^BHu2YY*anyMa#6h&_4g%%<^ur`sB@R6AT zSzuoQ)JlMtX!vM=Oq6gZ|0_|Ys;AINHL&5DgamY`5)Qq1@I?_V*f+{Zl$;bmZnn09 zZYSBI;ZdQYu+X+Z1vt~a*V;it(SCx~%(sNN=9WQ(cFqGV-J-DRlgrD5`1p&nv-N6* zKv&e%I09;}NR(F5Vr1db(SY!DZ@z4DkjVNETPdyZ^73*(f`#{^2KCA9gX8Xq@CQJg zI8LfIO>0~&U~t=J@hiZGu?u)nfabu!$cPCu4i66x@azHL1Gl%gZ>VarvjGu^%CKzU zSuQUxueP?fwDd!_VPbN!I-qk3sB8e@-RkPI0G~P96ksc6XSvwf**Q5mIXF1DxawJMOFO*?m?r834gD}V+ zXu5H_xjVX8DIgLsR4|ky%)xNG5xNM@SkdcvnwO#!b8!N=eVn**T31A1j5-50h z9)J%9JV*i)lmG#E!N8ncUtgb}^NFne{ONgfVn9qxY-?-F1SlN?^8*XogBcA6<^rO~QWFf(KTRlKnHF{jb_WIn4zh8)uT1ht>_EmLAs!zqJ$Y$xYlf4nIOS zl~`80s8$-Ti@ucG8_MwVP;SHD+3>raowpsEJI~w@4-XAftJn6Ls67r?VabhXtfL<$ zPt)XZ;oxa4pgj-zqzdLI8rwf)r4jFjrlwsuUFXq-`(=ltiet=UpkhFZpe0vw9 zzCD>zRaabxA`vq)KDCdD>>RFYKLB;U_c+B9g^u8Eh(N7CX7|+ABw>|?J$Bz?6w!}?Cm#aVN6IMLoeK;*Nlkj(D3M7$Xc0x3ik zJzWKuw@oE#M=V7-%o1T|^{IaE${wDRI|WrCX4sw^K_;QU0$lh9^08Ej+*1o-%FEI3 zeZ{kCQcE;6I%u%D{aqMa)W$|Cb6^-r2$A2T`l-taYHh_Nc6a9wX5aow1qG`pGQ}yN zFiH#24Gt#@MjMcsxqIqXPT-_hsHa$_>wXjUq^1KEej6+<0+-&`hY%y{C)rKT?ACp- z+vaJQjXRF};rxqgV85-fS=~Ho0xrKqB!|%Kri&+od~(O;yQ!aLPts6C+KkD&CyJKr z3mGG9&%FGfj9;;rE~wcYfs?N~x^QF9ay3hCvvy~2^bzb`xm`eQE^RnGpX?2CwN8w) zOgAkU)H$}9L*S&EjP0*1s& z8+_TcTeeB?W7nA!ZIBK#I1y94Ahb7*1w%rEq49b7gwhn}BfIDQt?K1aKsB_JjT9KX z#Cm%?Ykz=YZa>$`&&9Nx4JaoA@}2R>rLV$;=Rcd~52Dj@_751{tp;%(ZYjQ4QreFw zo1MD6vo@XSGGbjkbg92jf1I8_y~=R1(^}+n z5(Xtu0C#T4`*tfr*WTX0pZeBjr0pnMsu(v5`&$OV;$tAVU4+3Nw}z3nu6bjpJt!tN znUbawp@L~38W?I6bSo5EU?@UJyFi=D>j@?9;HYd9Fp3B~&Bx2eSAoQe0Rw#jA)(@O zOe?p#Ud@xV%0I%;6_-9@UT;@AZ(7BGe_hdM_M6!c0?kg4hdW_=&)nk7n-A3)KRr{x z0qgp@817ZM?QNph(_D{HRicx3yVOEA;e>*oTK8d~zD%6E0$I>BWYi(30D89W^28If zDvJE(S=aPfyty<4zm^qh9&hoV~Yo;`*u2s$Ugk+;vvKGTvv zks+oGigd<3t(S}awmVUaZ<5f_(D!ORa=ZHP??pCg(zO-^bUy(+~84BC5;cv zyq0R#sEp5ppKq>@eNFB)CI)__wS~JgiGY2OGdlAT=NB@BDSq%0p(|{D)&a2<6pJEU z)-P-C_Rljev$@lS?%o*aJQ%1v=w1KJD`Gwgy2WR2y+4dQDRI@LZge`6It-O=OOYYT z>jS<2-Q(?)H6Q~y{MFNls02k<)>VBk6W4cwv)H!(i~5f`;!g-8x2ps zGUg9@<4o!|2!(+N2NM9-D`{F{dJ6fVa24Wc@3_oIYZV$6tVD9EF;*beER~rVA zC|o#|7-b$qMd_{M<(C?Gc9<*-bHdZ zr@nu~Vt!oHnlsp=#K=ptuEupiVr&9GO(#x!^_3aE=JLc%m~s8?G=Fmzl~-&MdN*2Y zLjNOE&b6^Aa)1zYw=h3_bI}j0@6eA*(#Ed{WJ7vm-U zYsd$Tp-5tfNCM>>)cwYjf4CQP(IDGvmaF00JojC> zwc*p&)&+l|t;5dhyQG^Ii&#p!qt1-^)9V_IoI5%#|Me2P)W%6i`0=k8V)>7Z!YSa4 zV!V7R*4%9n->IWXL0*ADvY;0&jh}|k<);zX7O>ttcW+Gc7?z8n2I6X=J(Ln4_}|g9 zo?=6AhJPO< z>id&_jB%-m6ueL}NRKe5pVdxO9_Ucx>$`sE%>n30YQ^J~Yh4m4KbNYOmIIe&a^mw; z&)x>&*x^qDtEG#cRAm(_-Z$hAPE&$MGW6zXbG%!_(f-$w1|@6k+p5b#@Ka`=;3!OW zZk^{IgFwh?DJnpu*B|X*Z#yesMD5+pV5RDd?s(x0Ny8AFcx7|w!*t+IF!4GC z_+u8aPMOS+obHJ$7)C>~>Vys2rQP|zwevZVqzq*me1>8tlymOk|SV_?xo(SgeLF?y?{Ww!4$5fz@$+0M=B z;N?x;#P3a3M~QB#jDNjwXCqR8lZ2y+)=zTtVRRlEVS1p3ZIa1*U#v|Lw{nR`<^BnJ zj6ayVgYEXM{|8E?udm&)0tvLx-uOd^W}~nL@kr2zQ^#2%tdhdUMkIDmleH$sl__iw zb}xXPVCtu8E!tQ_qb8Dqe_@{H6koB#H@cMJ>(x#$DHR`pW0D;%TW+n)_mlr3xikIV z@=LMK{FFhABiq8&lAbm=jOFv5nJ2MC=+AG+!T3HueX@;?=Qb{CN560NL=hs_9H?oY z%E`=I*OgH^oab{9Q^_Fqzq<`b%N%=4WFa@s%*pX;fC+ssa$9^l^={*Qa(g(`I^3y4 z73|TJ{Rj;TT8yxHYG|qDjULS~JxVbmMY)>+OG{v;q?PnXwOJ*|cSheX(CGF@eV?&q zDISreKeS{@ZA+o2k`YkDJB8z4Yv!_ehV;eFJTA0;3q3m&4ifxg(EYK=iRkIT(8Xjq ze?B!@BUDcyMPaHlu{_X#j|^G7X2CeZBttjKb89+reimXk>5kG8EM)fSDoFUa)7Qf% z@ITml>#(fTt!)@kQ7lYCK~YdpkWT65rn|elyOHkh?w0Pn>F(}s6r=^=y%1*H^9+0Y z?fH)PINm=Vj~Ry;;{IK0oolUgt#w`n7zEj0*Ix4WhbSyKhm!0#CzC(;AkTHLBZv5< zkA6%Cr{!=)3OQmT8YHK?WbxqU*X!_IN0Tz*k~PEQrq2jJ9HVy26i;c0^9rdE3gik7-uNd)>SjJ@Td0qpsv+O1P)DyjmVT5{Jv+ zhqrQ5bPUaAO;N*uXcOvU6%Zd(ZfQJ-x)W3Upf!l$c49^rT}Kb1HJt=xGIMs@s#~_H z^)`N9uzFc?@g{3wFYPV=ZlBs z?2P;L_4%uFmnIwxkRIF+*}tEZ@p^CoBcrUMs^B@>%El^R>pNwXOvWgAb?MHzl^rUdR56n#S47i~QB+|ADE9fXJv+qz|?{N}0AmLV1VKjtX zXHfNl=LYu?+)%$8&iUmy2AB5%={{nb(-V8w5!jot*_XR| z=f>Vv^fDILBuzgTrb8d!x7DRgRa^TmiFBg8ww1f21T&GferS%V*mJ9H+cubfMa3kW z^H>zEe+!zWXGlIcaqB6We>Tr1tsGzHOSxU6V*~7@cMy>$aps&7j1s%ZrY;oBiSMj$ z1a#c^3>%<4^4{+{3cVvTU(EB0fu0teL(}aC*Su2)#v&909S>8mV4g@`>$#>*r~aA@ z-@CXn-_pO0aUp_hE}ceS0jKhMin_Tr&9j1S#^*dLDd~3{u#lv2_u%mj zB4?@ylw<~v8QcLJxTk4M@ttQWD%TAjLh#B$5bnP4YZzsXQ%&Eqr9XLs>Y`H;SsNS! z`P6h18OzUM;E6Y0XUQB(hVb^;C_#U0VIR)@GoBr6ZsM13!NXU}t%u5*AgJ2p)m5yf$``|I4fy)lc zmQU`JM7J81SMRR-n%-odc)yCiKZzP`fXj@<^|&>iDcxAP&uCPr3CTozwRXD*6Y|6e zAzKO6#>hF4>v7KXce)8{z2%Ou`)Jemb61TAM@|*0fHa}nqf{-l7wD<`T6GnL2#%Q@ z+Z3=$@2wA6K0fKty!-x<&{6j1cA}vlt41cx46burWhAoWhv6XU(*)_g)aaBP+S3ha0CRe=7!A+W2j=^W)i*qla%` zym?=S_-%Z6655tm`Ux|N*y;uio(7-Xtv7-CtJfR?WI7((&{5whMfu32sDO&|5Q5t} z@4?4gNu+0`7b`)aLea)oO{cpW_c}-xHA?K^c9LYtX_r;5iBPe)=2VqHX{lquYIl>y zHO`EUL7z_Q^BZDyf9|6^VJuI3A3?%Ao3ij* z?O!(HBI}k^XvyFDq;l)cIxH2s3%{c3X@l2oJtK}8<&VdVoL^$yM{6DnVafc+hxQH# zDmZW$Zp})i6J+ZlcFj8V;4-gNh8A!o8m$dvgdAyosK05(68!e1clt}O&zt=b#rHyJ zEx%6O*=*W-Vr*w}d&x?gTc7ibw_4eeuj z#6HB0MItvw`7mxRA*Y}dS#P359zOi}x*Ad=l8AqJ-NQHgqP3$b$OE&h77FQQJo)%E zFRf9AhL|7sGa{^@^HEp)C=t{$*}Bc_l%}g*7Kj*AfdgxuJJxn%&d>Zk&TJ;f0K2h! zrIn(ksGj*|g{tt*76O?otObgo0pUAzK?579=F{n$B^%baMH1|PXrZiz(lgn4CeU># zG%grOOf z$R0DcR`PM*ev`WAi!*~xQ*+(&b5;cf>8tRlVCs^z(=Vc@6A*-#mi6yT%E{lqBca4! zwKYySfMZs~k;7LM5d$o6HBtzSVVhxm%*Y$%nhw?GUO#@Gw2dS&+l*E zpO`kOD9Y3$=Z-8{UcR=@{=>y$P?@S8LU8s$KTITXw6e$%IfRfQL|j5jt}i=n557LK zgf~ik80lj^9vENl3+5ih!SmjX+q%-1uU%f%)P;5E%kib7OWPV+CUs zu=C6=biTU&bL*Q9{JGds;0KEkbaeMrbd`ax-uvl#7f$=fas&w}$rZa1f7xje>KV?>LBXg&&Q%B#%m2;c-ETp71K-%2uF~;iVJ0WP>3tI z5IGykexJQZ=9M~c<7fpguUX_Ak3>}P8*Ii!9VqHDlOWYA-bIoZ!nzz=ho>(phRknu zeM%MBn@eK0rk+PZp5QOTf$u|XKb}j#JH_)d;kL?$JG=c1wX+q%yDqVPj9A!UpFv9; z19{BU1MjC1a0hygpz~ZVcpctBW13WZ~*JExZWq-XF5drN5r^==RQ?!^4D!{-|P2tg*JhfqSj z>mP1kV@sMgp&`ZeI^Y(*hF6dWbm2G8B5;u=UNH6d`tS#&+dSuKW;WRSh)evzp?)Xg zTv#Q=6sIKx9ZL6=`y;f@p|w0wCM3ueGs0&`hcNy=lBn4RTbeyi8t65!7ZLKp&IZyz zjIs7_)YFovOJw~a3x6H+J@n-Gq_*-FRKgC+9%hn1%b~~TI>W7}qVhib40$8^O)u`m zy%N^`nCN>W_W`*iSb@S|_d_}O?hg|q;io>(i^gzMU3{?7p##S66GCCs+8o0ojQk^x zU1DRH6*QPeJdV5hS_ENeFr9E50|}njBCo-qW1+U(hY7uAKTrQfb*j;!8+NOsakHa> z@)i|L%QYUj@2P&~@Sm9O;K5I^eroA`ec!~}W$iWNg1W%FsCo5sU3m6$U3iRu>OdDX zviI#+ZiTWYuNGPas8kt})@dFaE~H_=lLB3MpL1P!^>^bCW*>|q`P(d-=Wo3x`(~>5 z$)Cz&z~gA@E~e3w^jEG^PcV(J(m&w8x1nNNI@eXP3iRqY*Ht+Hx+<7JS7in0s;~oH zm6dK1s&ieHDVD&;+>TN}7rymE7ak9$9q7WhUg*Lj**8B0y6_7yGo~MaEEAZ0N-a0V$_!)1A>5jC-H}Aci2z2Mp|^nk%yP>$Xvx|Q)p3vC zk}fQHnQ~8i`|iq-pe>A%Sy8O%GB$E=?acU^22bYln?*dKk!ZCS6pkyRR3G4d*9U)S z=kuJ_3p!4ra5~|XW@l~>JB|-V*xHKI`jX4Js^&gxgDQP1DAL2!C~dWiQ8DY2}VSy8t*`((e)5-%;n6+`F>Nj-grFh4%r^R zJEnx~o0hgah0!@7u1!2z(xL@f8eNXth7n4KH+=jCsUAL-a5iG~MD5@U(8O<>(*voK z+u~H@75i%B=NZI5%bYGGJ^nXy`d=No|J9-UA2Kihw=<`6*ZXVcL`wGi%t_{4?$%~F zXC{$^`)&>WJ}K$Fa-@~M*U$EQ_Mk;7?BUuL`TZC__Gp9f?2-hzP*&P!P(qj@4*X~i zwq#{_mk_XTK=9=ziHYT~3Gx?++fin*BHwrsH{ED`>*T-j5HTPdL2dTO8{Mc;bHl@e^MoX>$TM}T4>@#gC`!i>upda=R)nuDC|q#?1yW47ek+1BeZ zL*`6Ffhq~%$@v9MCxQ>!^H86{sD{Pm)s){LnPt|^IlWFFLGuar8xrloVfCw*bi~AO z?nT_Y74fmN^>wd2OQ{U|sCQ47z|?)h0jJ{Rsjqfo+=6xkfd+b8G)cfO)=FC}!^W@0G{Met5n{KdiAQH4V zJ_K{YL~Jw@*y5PIK`(E+P-XNIk5D`o)<{7u?7!_&^699$D%HnI&zt(8y`wIUD6={? zT&?pX>K^PIhQ6NMv8dZ|7{X{Dvw3e2g7oRT^3U|C>$^LQ&ojTY#n$um31zg|!42j? zlwo1k#ymq4OzkbKkF!=V!guYH;IS-w&5(@m+9$lgdOy|d;0|kl{~4;=3z+BE?6+R> zlC00yHo{P9)*GnWpdF&XEI8o9+Tda#Ibig{dB*Jd*D4jd#eMGav%%Uz`M~K;>Ep8Q z?Lnj%^bB%6#<+^KAx+@fdxj)~e8g95K7E4sUhC*_yZI+Nq4engxJ6_sT#6L`hKJxD z(I??3&Ijq-;4Kf~mT^Y}wgwzQ$QnF}mzzM+Cp35=FE{@rVz5-ci1H80d{R*`GYY}cHfR?#8j$bJ$+=mrz6PLpu5BJGf)T>K0b7}ad_*J2(7cwX!pM#@{h z56aO$PV=Tb$2_??sOqagL_DI}uN*Y#9eVb;HRZKHd-3KjjKDw~w>ATv*Od4AcA>c3 zbP{sj)!>axSIDh*NnN*ML~#Xh%t!%sP5GHx2iv-exebc7y}p7?%_=~4=q_4txNdW1^JfT!)AlGqb3&nUGv4eTJOVCWhY|myt*G!kdeu! zQhf;9DRoxY^?s!4MB>YY(cwg7qL^Kkt(B1xP4Za5hp}z6I=$wS7ia{{i~Y!@1U=vL3LDO8V@1sN`6-dY~x8IXswDYtM9A2li zyrxBIB1}bJn>WIjQ-bB`6IV6n*ayjbJDBg36!LUmHgNB)9Q0Zltdg;~F+Oq5MconU$=!rzy%1qPVZf^E@Nl-6eU-Y0j~HNLaCexxGaEX7qX%nFs_YEYMIsw!Ga zN$iY>{OsYAlv_~S-aS!}KP<^xA^~ZT;;xtDZ?x9$)|RiOBC(f{w2z6abaW`ulCPvE z31uMl6XU4sY2SBpb-}}ftgaqRjIa9p6;4boL`26csG33O1Ejf|rFj}eZzfcef+|hnPqqPzMGo6 zdH5#e7L@r1rSfxxNpRN5@;1xzwaW3e$?~lL?>3?bl@%M>m{V8{Z_WEIthu8Ek#` zj;zRJ@18eL=Z9>a&A0q2@7|%8PIkdRkcT0tAR4;zfnO@~NfAJFl~v4Dl)>})`Lr;I zz=Z`D0*f+#vSGip!!Fq{Qi`jDLjIKugK2@KxZ1&i%Lp>pYRRHSEEf2VnO0YS-*RvNjJ8UFu2MTUUA7=35DFczwaIk0X_Mlq=4UKnr0^DE&6nkC zF3n%s+}f2^)WmtqD$W}u#*^@oTqQoCxU!-@BB)JGCQpRDOopdPlCxed2)PPQ(F%Wi9IZ^X<=cf zqkTq1&~Iw;>)iZ8LSm|$b0il-xFmNyz!@Hf&swteT&&inM$xvP{Ns}fN-NuzR#wW( zhuv%jbme=cd71zcTIzN;LDzo#IF0llm*lEf6K^TZ8P6%Gt*z^-g?3t4x-e7Q^mJ`} z&TYsotPP9FE-b6AZ|QJzsuE-_m*;OyOKgAlhDU<4bbREXy}Or_N0N!o*wHRsL)$hs zF4NyPRZ${QjH6bFrA&seLWnCwS;5o5$k*9DJS(p_J}FgR+Kq=HLx#5*crI-}Lg$r+ zbWTkF75vG5*#W?FaNIJyjnToQN}@FY#=(nH6l@+D-jtSf6<{hpM=*}M_^_$d(;w1u zW-JtO04}clIlmFFp}I;X>o)*#DFgan;R6aoZA(K(U0YKZw3Ri2PWOc@oh>ZmtFclK z91OhI@89CTdiUl7CN4JLC%Rwg5JBaQ(bG57JJ?S_NJ>mjL`H(m80(xIT;!b{UFC?$ z0AlN%id$Y+zV2V`qbre-i0Z21>NhW(h~z>k?Z12FD8F8LV`qK)%}2Ay50sxgLQ-f* zgak2iOEU>_O0tRa$}$Q-!g+OBuX(-C&|G^KAvyN3-10m8BZh~zZ0GQJ4vv0-c-dKR zYHuGg+A2J`5kOvS8nSPC--ovg|FiCw7csI^bk*19Ol|4U>}%s@{CaY?+*;Dq<1iH! z=jR?j3Jeeu>}TNR>~86pyV*BN<-$Nr(M=ee7nhq>npBuonUJ4Ro>Kg|IzG=G7NZs> zlN(d%swewX5%w>Z3xss9h%&#dnZq5X35M$I+^D(g0ipn`lHzWZseknDXOS>hsVxAb8gqbgF$wnAk?HL-s)i59p*RqIb(FV4`e#W^38>+G10 zjLwHPbPkP88k(44zM>`lU?9Mf4IB$(C2lr-h1oOEy1u%mzL3bwjOzOE+Gvi0?Q zcJeHU;u74oVq8_ioaMrhasfy&A4efCM*%Ne9zRD39gQyyqc#(@KRbQA2&7z+yH1>| zhMPT4fTc`Ru0@cukdL`gl%rITHCL3QM2Iy{l)Xfly-z)NNyq3YKtXPCHPv>G0_EKr?7JzLmRFNvOX*|4!j*j8635BzZ zYwKHEJ)Ntrwr!&9l^`u3U3wXLr9u8ue!enn0X_07p!PSga47=*PhjB*fQ8l@kJOfy zW>pf=wzf$~?f_NtI|!G!z`+Um4Jyo%hrnjeXX|Kh*6Nm+<)(ZZ&!dc)>}?%w9PFH| z?{6P(9`Ey zz}l8kLBIf_Az{I)B4Wa$BV)s?BxJ;;C1u5~CT7Nm7YWCwCwJ!L9{83o{G-lCd?i@$ zxI0)Wn6G@?ml^sM{trqk@}HUgFaQ5r$_7;3uQ-jr1inHTuCpus|If@FWOlNAjfN^6 zio&2OJx_8$Nh&K)Qd-=F`I>BKcrGL&QBldx)Y^A#^NW{fJ{MiK3{NwNiAuuF?M)kd zyT@b0-}DsPB_Q>3!r2`3Zl5z+Al%YTZ9OsZxrr&o)%ERG7CD?W1;Q+KqO5gJ=6z9t z(fTZQ>Uk^W=qlIKOIc8=zQD<9hLQcBV*9?EY_ z^iuKtpO~m5oaud4RbDoDeBBqSZ)NF>CC(E|g@*z}=k;cQmr7jf{AiMj@?sKEa`MQ+ z(g3xwbDGN47>iqHItp?m9rZu+v0Bm^`JW9JTaZ14HA2 z!=u%;tQaU9B{%^o)Cg?LT&pWSeDafNpClI)kPpDNXh}TD@T_QvT=o*2)DdvA^0EC1@e~=D9T2uI3a`Q?t z%<)f2Z=bM29_Y<@AD!9ViwhA~L0&X|+^n4KisU>N6?!Ap+5Qa44&AHzG$7(oITrae z=E$^*qBS(iwPNs2=xanaIXeiCb$<7qRF*UEYA!P}p{GJL%S6V%(Yu4aJgd7`myBU~x{P{FyXSTv zn_-v5@IjT z@{*LGBxAZN2iLu+(|TPqGzc|F}nQ45m|Dy zu_=1ToBQH-@2+P)KWOjy^48-U^wjTG?Am1Nsfs{?tUV_9K_?Gna%`;Pz3oU7{C12Q zr+4!0D!;E60Y}gYvxKY|E$K^sL^nq*=!jCUerqe z{*uj?5QCR|;&zgU%P8nKUf7Y+=uES`dO3JU|2lY7$h{T%lOMbH=8ne7+E?JoPif5g zJC~W`+_5XW<9!dBLVIP89qamCKXeUTe1TfcBH{7mSfdfih{)khlhWmv+4e(^JP&wh^5%+qS-J@6Og& zc6JzNd9Tmgk#C;TatvL(q;~n8g|oHM9RXq0JsR?YX^J_{q0{$>-=1rfAcT@RC#6qq z?i%yoG7I&cTYULRxC(|HnCPhI)Ns6BiH?57f!J40<2Mw#o%^cG_7g-~t!%%%>q}l~xSpa@#~EA9%Tluy zPi{$4Ppoa)F1QDW<^Wvxv&n6W$npEMXvSYom+(u56(iS8v&|Na%D7OJVv8hruMxex z6+3+KpjC)U-%7H_P;aJ+95oYf8i!0;B6zlO2ocPGlodlMGnuQh(#R~|pF2Lg`+{Dh zW2gynvic3jrQs#(NUrCs-&0z*=&>>5lX^E@GrrsASXW&^brK66>^B@QB+f55p@@y! ze5dG_xKWM6Qg$F6@k)C2t<;Cu3p2siI^xD|($AAa`032i6IE{b?Bfung28VHKaoKB zo6$U7B%Se~Z)n^gRvQzJ49;LFJH31Bz1^g>$9r&0CJ}(>ne@`Tc!L>?67xxGKN+m7}R4{&dbvtF(5HMGB!$0`H`xkv|NG2AGTzEl9q;1P(dX1TP&a_& z-B6>^!7;?d#M8{m*U2?LCA}~?y;xG#02PUxn?4CNjQ|;@AlPi6+N7cqp=0Q4`zb!B zpjt)4{^?T+W(r@B;eqUspQA{KtxQ8PpNU=l1CACabGisyjiGX9bJH~F7rNSYh;snO zu2EI2IW>09&$C`c$m;Ou`{eYDpIzRXiHgRCNf*~7RW)})Tm=YSoH%za;6OwmHBx*~AvQoe6brH!2(lG} zW}Yw`Xu{QqLaIC+hVpXT2Zkn=S2x?*Cjo~b$W#fK#mLwsNht?Y^MLS}6kopxX^}8d z_G-}l6JSl|V+#`%be9nSWN8&(Xly4gqR;j*6tqA_oRPi$8vQj26lSgq-Cy8^Oa|_s+c&=9(@UM2% z)mZXRDDlh7v;JEwfkhI9C#`Mjf(-!eLblL&m`gCZpd0@?Bq_5px3oAu{C;%vdR;Wi zle>nB95~NiSQTb5!rfYM-hYgF_3z-Y@du>cb=dCq>skXlGpV#lHeU!rgy8yMjE(znmUd zZu&2>*kI*f+2TJ!0p|0Cxixsh_==k;=%9gt@$O{?_0(|pACyp(_lMU%S)qS(f=*?B z>0E##6hZCZ))7aWp6W#iSW76LulPk03zHXXxV!&B6ej_u7!Q!d2$6z^egE+o{V$rr z-Z?^CSDwu!A@cXgKn(7zySP&BS7i9rn7WJ%Hk6wq{E5+0C50-Xwl~d5ERq!gxRmJk#3VW5hrh}8!LR#H*QzCsgXAa@G# z98wg43bWLDIdxfD`oBQsbhJxrYuZRkt?%rb{&9NB%cD+D>?e2Lr-AabmAN^Vm(?_K z@rj|MatpGSJ6ra-JGPo?H2}673`l@hY-#RlX=!UseMf9kj+U-FH&e7Ab3O}IASJOG z%|{(PJRa<~bg$940Xy-Nscje;*al-QU`z#szWA_7Fhk;O*)PHde)C2^A=8t36XFFA_}uJ)msb?U2Wx<=qU<#cBq2&-g$?zSxkVMT^9$X5gR=6fm}vYG zoK+H>ji4DV#8D>9ozKDIgpaMx%bdlm9~@6ft`Ox;G*oV1UE4A;a|n;j zj*iPMtZ3BHjNqazkmd%RsyZ=_3ebobWXT6yJBS#7ar?IYJvUT(O zm;h;);%;iJ+3XwajZe-gK#0&KlBNXKk>F(a~ ze!uzA)w2ActI%{YuhM>^ePzGp=aq_oVa6zadrcF}1RUnM@e486hI)?z;|B&1 z;x%$^|D5$IqRrFeJ41b2Am5P$|8O>%Xw^j}6of@*G`035CshUeHV7~m*H?XM>*~)h zYO1LnDJ&SMC|dZke(L6w!9Wt;(foCMdcoGT!OpN>RKOASDU*VXXMlUJre@Up_nbOv zA(<(|s#4`ED?9Ek<(7KgDsq1Kc-&c;jS-Oz!C~25T~ngGfdSslM<+*X>w7U#O$qUh zL!%QEG#m_c@?hvfUMwH?9k*X#>dEOzX+;Ib3raTXXakilExBrOu6)oH3HBT>F6vHB zDfbUf($k6Krppyz%H^VqW&Ie)Nf#~1ngiTiPM~ped?zh#8ZdQIJm-m(fpW*{@&TA| z@cJ|aU;+5PzDj#}#YjX{Mo?&GYDQsIZ8JTkldEl~k%gy|dvr{EPXF-C!pf4St|8V- zEvkwpNNeV$lDwCY=1o+9-8&`$mFC=D#@Mq^bPR~$}B8xDJX69@vM^GonK!&fHlF(Q} zFrcAnczkMMZF7@?l9lp9_WVU|iT&z6~8VrgR^6cTBqo1!jL zCN6B}>KfzW9S>U0$3MO|wN4ml=ZUbD0uTc!8y|e4{#B9X=e48%fomoHCl?Q0tnd;1 zw<+8Cco+A1JE*nM=T!&v9y}V(ntATZO-}utZ-#KF)+Zeua9(#A9`c%EK~NqnD6{vw z)YIVe^4`ZvzDtQt(9rhke9ohx%{xIZO6+{*L6VbA^ug=b&29JuuQM>3+niNluyIQg z3IpzVBCe2?|^{p*hSZmynf zGVU}a&?g`~F_2YHT!%&c4 z_`xoj@5jma`|dDPwMJX=?^1#Q+r0c@7Zj=;Y=R z^zQ3ZxDR)W5TaPu@pYQ$!4M~Wv8prudDnJR_{BP&O015!# z0I&%9NB}hex&LRE38V#}v{V&u)|6@0lx_u65&%E}dV-FEu6&!0e4DO9yNVcye03mB zgHDvHcng?%1YIdGGy$eIK(|y?q6LgsfItOC&@`l5PGb1F(tksNkd8ynutz;keN zLYNy>lr0t)!o#1Upgsw$OwuYjTCzd?6BI3>)M@LNQ5%*!#HS@>F7{ekyJpE($ z1~)svco9a4rtt*zMQkQf`efvlyS00-xZsEQ+1^(`E6yyhlJxFjz0 z_O`h>d$z{r#6m}?Tx@UT&?>-P8Z}c zBF1r^nE&aDV3fhbZb)2A8>Hb{GF{^%+g*L*A<^l?#2i$_#wkf{((*?143fkjM6h1+ z6Ta8`ncp>mVNcNXbG7MWXVxw&8vf+$TvAb=U)bR0o7mAkWTKzLLt6&YAK>}GnYXvT z17FI|oCjme00lsh0VyXpL$m->k+FLB_wQ%n(Qz0U^qy{+0iJF478Sah(SRjcS>EgG zUNzAx7h$gi{EIlGhLa}Q#-x^>Rw+KANK4=5a~`z3x~;u?)XnjHm`YW=6Yv*~=6%3X z&rX4k=LzUU7i7+R*bf5u0C}{t`AAhw!=nfI;@k<#i{Cr@Mm&7u1N^cIiW^ll%sF{v zz=$-2Hd+RxrF<=bdlF#DmE=p7mGDtjbu%;zXlx&7@9EF}TqnjKBFtI}ycg|tXUvtb zds!X-{iMMd&&B=dzs~tr`}(o~BfgSE{R`?Yz&yXYI}46QNuvwj)S622(3SEeh)A!Xe3 z@nA^z!#kB1sEjXA8HnC#0$K^=LjZ(9sRojGcBJj+G9tJBJ8B!a&pjXAYimb)d=emCyKB;d&)P5)ob%yM9AO6J2UD{1b@$v+++3I{&hC z$_W43_tyyUK5zVkw*Ps@-%sT*Iaow^aDeP*{-DA^8uHm^xc{c4O0Ca(H5?sfZADF0 zT?Gvlo`m&t4%j;EQR!9B;NsW45>kL($;E~Ce;OJQ;jcy9Kb{yfgysAO`SXr8@z1;D zSyYUa3^nwP^$dY5!+G)`NWi3Eq;md05iqmzL)dw7#WZx)l)=A79|Tp@OtcjY3B;s` z3CX312+1jAWC*~w6tXZfR?&gzs_Omh6X@$}tLUic8eU?$%OQrlFB+6Ij@@9q2<+$ zt?k3b`7cTF_5944z&Aisgb@n1J2;%G*Xg36&zjyro34>L?}NvD++daISfIeBW+#7 zzWyPEZ%rJGhs#O^+B?QV!=qVgKY?mKzp$phxl>Zyg_gp|!68;w(L_+h4wN8y`E7I* z4(~BE2(Z;Z64{8bpO0h51ds3T9Cx&AYRR^q&r|R<%JKrQ>t0^jhBo%=sukIrHL9yR zvM^~-kZ8HsS475r_VSI8mDR+>;bo_elHzJMR_jog0@L($qeI&Z^V_~2^)d<`_D(T@ zftf0*CQP)3ybM{ATuoq%CpC7;&7mPDbI>;++CMluAT)vMqZIqcSRtl{5U=shd}NpnNa_uWMjWPv)7CFrShJO-QZC$}Kn4k0{9R2#?Mf z8=tnZ4Q8eGbFi$1Fnw~dE${3dUi$(x=C)$P0SQzCay5Vv=Ohzn{pXaq`Pn^vCBRSA z%L_E8CyYt)<$_43DczQu(w>!HTvgZVV4o+z5mT5m4E7RIQ+hSEeR(*nHRR)zB}znC z>jFK-N{YHUX)_`MhNov|bMs3zHN2+hR$DszgTfN2NsWYAE6ugKwPc$DJ%*3IA4f$& zom`U#2B)%fN+HZPg3QG>hJE@fjjgRSQ87j7Sv9_aVFb9+l3XQC(9QVhmVltFp^+IA zQy*>hsPv>UeMA4q_@a!QQU(S!5$;e1T0{SU9DIC;noP?6{*S7vegmxnc1AlX30qMS z4L)848ZuL`Bm}^qr9SG)5&rXx{tw^y!@vJ>F)RrQ@No@oV--UJHf^Ax!lI(2r>yc@ zMEnP&th_u}z)^+0rYcHqdY|_k4sXRe`^wonMA*ymbBMDDUrw2aIJ5qoGnZf$;gMk$ z0%K2NeABf(Eh7y;2(_-SZLDeNeCOt0r}O?~Vrk$s6_tfaN0N#1HVphvwzm=7{i7hQ z4~A1&nuPkd5z;kQQNtxhss6{7&E<;C_Rk%gKU#8+-||M#sH_#PlBjk?(5ii@Ji3E~ zFIlO)n!kuE`dP9H9_g9Zu)}1TZG96DVW{p@zRB~3y>SY`{_Sl8YSS-cRcc?Wf84zP z;-mG#O5Qv+Z_G!VrH!&3WPI6j>&3OAbqd|7a+~EZRmX@g=qyhbRtuI1WUDQIENxaC zyri@JezLe;@|E89^!tzHuQg}#^Dy9)Nv=7iTn+h`mBHV0i=Pc!!k=19{{s4d>-E}EQNF9KdV?*1ianoSL7T^ge*o;&=g4{=%YS%!`)71vH zf9e4wDhM?X^sQ^EhVs&tNpUvjXH8{(E)9vus;zG~G>WpZ_#B^d+TCC)E;py&K&=77VnRg1Ehp`1XO}`q#7RcN%TDVj%u?^~I$Ds|qb61PIjhs& z#aB_u)yl??fRO$pi53@4X=dVFb=kD3exaeUM@P?4c7BPGUaSa5iH%9~*!X->Vu^=W zthZmdwtD>7$nx68`X{G&cki&mf+lwAaDJ9bI?50-Tx)xi_UxR7uHJ#5zzliG4-e*MzGbD%=_-PJ`+O`LM6v0~9Z)#< zI1Pa)32+jW?tuLQ`F3l=hM((jcKSq3V>7g|-Pf~9TcMVpBbWqNTUI17E~3TDsoTOV zo03e4_`NPQk)x3sR7b9BVq#5NB20j>#>S+fuCYBLCY700K}IaRv85j{%8ZPBXis_c zRr6C5`#EWH-R-+N`vx6deOMU{l2RJvl(g{iAQA$>wUu)&b`1vVwGmO- z{2Y<|5I-e(4@D(gMP)-NDOGB6H6hj_!1Mzj{Qj^s_G%yeP3w|`@T#2Tw@78Eh)sko&oEQ55Pvx!>5l!{el8Q{DT9<_=N>U1w@2~dj|fp zz*Lf3_>-MF=cY^zOpFe;e(f{5pdvqd25+ij&VuDZCeTZSF*{OfuKDrTF!Vp{TvFIU z>sUQQ@nqmh@NKC^HUY#k6{zh+6k)iVte2&)n18wVoI(eH?D#%9wb|xWf!XxwwVR0O zbcVYl+mEsNqE+dQ_9u?+AQQ+`8}5zmJ*Uu{tTsBB`f(HSC9UnZ-O(Ln0=X*No&CvU z#Fz9oF5%}Jl&^}6qpm*7e_N}8It=4yhd}UO;Ph|R8Yv;=@8HxO*7WMC8~}?9UqepX z+>et}P_BY*(odQUR6Y&R^3}1CZ|6LhcuQ@?Dj2i%bsh#){CU30Q5WGq1_rGG!31FE z&*~1OdG^M=peZ2&#Wuj=0gi9? z+cB6s27YaB^7Kl!l!)**H6;n@Kk;j#3jxUgqNdd5R}-sact9g=2o12uiIH*l7-4Ae zxUGpN&&t|3)i_n5cwkrI+By$4s+s8M+L)Sn==d;~8;&Pfy{k^tl=m}Bx^|u+Enoht zE&`Zb4GHG<;?cjQKlTQI9}G;6FUcUJq=j31BIU`iItjj3lij}!(L3i4683oi}086?n6l%qh)mI zO$1vW?O~jQnOgRd;}yc?yIXxfuGP*9Ej8ciPOA=k>domcwxHlIu)2vpGrz<2k^`k0 z){EZh^fn=kxFWgnmHz+pbgnF+iAaF9CD7Xhp!^E}e!l+~T8@p`BVU`&eZ?_ zj9p%^X<~He+;y@SfS&=!1um{7*H&M(3j70Mp!rS)>_|XR}i~AO!&1)CF1dfX#L^1B3ejf$HNzCxn@yzzK@OXlI0Ha*edX}`_ft>%L4L+s zkjh!;bOR(947k5^wN?D$8U9Tz^$)g6h=54ze;MJG{eXr9!viNrrTdh3Za?GF7I^YT zQ4#z0{%89UYVwU6xd;2rvp$_SBCl9@eZ$Q~)m451P!l1jhl>#A^hf8Ou+=lA{dz8T&zuPK@jYuN0s)guYaky#;j(@FqWN2v8G(Lx2(hvI0Wi z3g`rWjJVx9CuhIT0e%3p2mT6d5ByFbrUMo(M|U7CL$9a7+6C+%C{4|icYtbu0YD@W zZB4lfEGFR50?9yCvI6i7@E*ts;5YDZATZYYh_N2T1)x3Pu+mkjf>IBV~?C-m~U$KzERqfT(~h1;!wKwJLDdza5zY#(y`iPg%SiY~ihq;~-c7-t$Rp zez7t<{8E=!fCpX#9uUEQF*jIH1b)K<@8811T{5+m;XzHJ9Ekedk2%<3C}aVf52pq& z0EY{Q0&myZ{;{iL5;k)&kO1%$J$wT@dHKRKpx?0VaJUeE1*9E#2+%p;Eg*gY4F*~W z-~@02FfcXs4Fs}3oB{Dwj?Taq0UQFP0Rw^Ub+u{+5QS3!fC;$R4z5c8B*<3>;tjGI zVtrGn1eOBSx4wD|h&{MT0RX@s3)MD&Lci*qgmWw_7y)?^xE9fKi=8j`ojWwFIbZZ-HR&Spbsy>i0nVA;S=4P!K(V1p!+Fc@YYOfZqOo zbOzkHt`<$e-vHA3x;}%as=wzmzy+=uQR?5b{*+?M9lu77;~G}Ue6OmG7P)hVBout8sqm2!U{Z2s&||88 za+9L+qnUsiL^f>ozI9?U?syPdiOZ-)tXGod#@ z4T!B9_Ma90xhmtfCR4MtsKxuDa%1@~8#Z|3l~oBx=ua_=ZDelT&$V;+PO5EJ`~nBO z`9cpMI_7QyexJYjl!~%oTPqKmFxZ)pm4&fQ=oqy9G`X=^b<%2>hGu7S$jw`$A=!Rv zNc_EsK@KG3i__6%vqf~6>4>tt>{2GzzmoefBq=l@^rnYj>-Xu+ujEe}TRGYry-7~= z6qQoo5=a^BmVmVVn>Vou@;CDgF8h+LrCl{8ED^Kvk^g0IB~nctg+erl#ROtOqxelA z{yz8eA=%M6Kz?hzy7{77;28kYfOs$EWLZA>-6h{IsfhYh)fS9v0iU?6C%6$WR zBxpQ9HGp;iHohPt3{V81&VUktQQ+=C_>D{j6u<&}Fi@`nDgf1LVs3ZqC|3ezrX}_R zmI4(9azC%|0jg)E4FEj_9st_ai?)y8WDNH00Bi)}5+B|JbOCq(&;p44N{HwIj0O4& z3??SDySMA}AFeYmt%1JlV%`LF0pwWV4Yz|{o>f57|Lsj0fC&K=03ryoA4saex(agM z0Qmq(7_b)vOQ3*&y_)h*ZeQ&L4HBXfAxZ?;Aw+b501Qzdz^FhY1SXW0&=00cpnAZo zK+T1`Q;7EhLI6YrBuP*!AqxO_3`94A5DTI&&_0M@2Q~xL$Iq=DxH4#^P}dBCJM$h4 z0U3g12jF%<-N60_;rAEqTau%Dfw%xMy5ZLWWfPpu8-ZBl<}$jh2sy-5nkAY8ekB=l zvEtzWQ4sAu+x>Hs99UrQ2#!uq-DAY1ozF4rDV`3muKX)xmIpv)lofl(?UeAz=yh_`}63FKoGAaEadly%I4yxL!q`3f8w(v?W$HS}_q2;x=b=0g0OP$XW*!VYmT z+Jf_PUeEgn-cCsiaGQV+lk2w+lS5`jS0!;ROU@g&aJGQVfVwNc;DW_|Mb(4%zwzQg z;P=1gDYU^J*Zso0?PK?zS`Bv{+{&aF*(Z5AXRYIbM>{kx z{d8}Q#M;zchz#TTM0K4~JDFSTla8bk(|+4L5lQO}iW>W04~a-72Hy+5doD(5s*3$y z`kL($HB%zuET8P3?Tb;+Vu7MFpk0r3a<9)v$&m%!BK86wy+ zmrKdO5JAoZ4g!WlV4WbIf)N1ZXBq%22fhRBySm~X z@Gr2jfK?TEG^9ODe3%8n8hBaey#cU#0uux)3h=?E+A)yJflDe1m(D9x#Se!AJ=-5< z3!21<+S>TbUseqwa@W<&G4 zH|^eZMCU1QEPEZCbo;$QqxuP!#~P<8u*VPTPUxFuUANAr>N{Ax&TO~{UzDG{@%`8p z?upHhP~*zxPRicmeJRHDYZ7-n;A69qKUTKeyQ#KdxXV^Yg~~~*NdLev?$R#x7iA6R zPiV{P3SBwbg;V|vZMVr)!_QGZ%#pJ?~P{$CEt`M-KR^PzkhB240u>& z#YVpJ3H=QV=fV6}iU`q{{BImmcJn7B6>s|d){~Q~t5)lZifqHs2JRKzaDtoWeX;uc z;xChTqSmrK3$Z+Ilc`{h`1oE{R5EtUQM!5{!Ks%WpR{h_jb^3~gG!dt;b; zzyW`c!<+|)j+cF;ji@`aK4gc${zHfMrDmOYb$pZL%e|P1ySX1bPEiEbZFWB;#TEW| zYCVRR^22`L$~QF064lJug4A3&dox_;hVY~sxW3WJ-V=3Qq^E7b`}%{tCN7FWxBX!P zNfhK4_s}tHsJ+ii5<~uU=7~PHz|igJi*62$0rt-4-1cpK(ENIPbKPpL^fWOG z-Zbx_lR2CcO{``q!Em8?*8AShZcn$~w?~fzg?WnG`v&Mr2=LtseyTS#s5;R2q~>d7 z;_1-g{KHezHIC-_Exxb#*S(v3_T#Z0>luYZliydDy?a$CFIZ#-z1b`z9Xzoz|6fg-eQvu-v>OAjFE6jb*# z1+j-%yAgQd3f+-tU>+jwE$Y4?75-Kv|C!@)KJX3nHK-RH8QdEcR(>m}rlhRa6OM&4tZ>v|+lMoUuqj8AXL_ncMG{HmtAwz%An$e$yM}uy)nQ=| zE2^9I&Rq%)P1G}T;bJ#9DO&IyI*2pDgWDRku zP2Cj2QMBk*KsS_+6GUGv&Hs>^nt4JY;PdC% zs5|$gW3u8BGaijVY9^BlAyt!+qRB#Mh;>2F{HmJF z4`mk*80}J5!Z~hH;Id>qE9`ZBuAc0oX!*X_xVSi-{%zMGsvyV4HBCwLJOt+3$ez=1 zkutnRFYX|3apqTDwcVcXzbmT=iZ3axwy3PyY(QAHVN)2trBKBfL~d=DTn*s`L&<>y zp&Vy3ZQ9>rOkbq;W>~kq;mEQ%ooC*gY5U@XpzD{h(5X+tRuj$rEYd-Hg{>!_jq(^Z zMU`58Y#lnR{y?kL`qT3OdUqot=9!s~_wK6IGTU}-)U*X?M zO8;7y(bZl>Mm$F(slEKEh<#a28B*-Env02@b#Z;$2QeuLX>o@RrY7BwO-)RXzgHb= zscrlx{@7g4)M&hKgjhNAciGG>JlA=cwswz+Y^A0bv(LNiW9{?1JjQ{)t&V}k$B%1EB{h z4|XfCd`*A;`ToOu6b~dsI%>*Sf}Osq^aBL7s>y|^%alURj)t0vjPxf*1tV3&D|@3$(LPkf^Wu(2%M9^hl8sM%4OOaHYLThdpK6~^&_EuxrJ3Vbu9t{ zYJ%u1K}SwCb*vOJQ@~#__I{@Q#q%RaL~$JMz`7v8 zthHhC?Ym+21CnBxC>w+3iLvhq$%%}#s=gQ6q4a*x^)NZf%QZExtLmHV>~DFv-|_an zEh%9tG`qIHBURwB~7%un}@ItvtFhS;LzX9zO!Y9E_3YJaCmkGGok(*O5fsX=S zRaw>B+1m%%-U?DT{rwU>J<@Hg;-#gv`S9wH)(M;#43XZh4LYjjLxYoHw~Nir-MQp* zD=n>1NADc>Azdhz>gU#6TQ!pVsP0KkYe;w;9gP&Eacjxd0DpxLn)YXJ#wR~JyZf^4 zJ*y#GZDY`wpY!^|$4~y(ZZgrGFw<&`34bv-G!8{eg|U|s?{rjDK2Ohlq|1-DX8UomgokQ3CYV~x1_ed@DJ8DNw6~tHPK=A0F}PRVB%`5?h%0Za8g}Rw z3ujri{(@?Fit*F(W1m{S?M`Uhz473Tr0NC1Rc@K9thU?ib$)KizawuASYlVX%0?&R zzqDTWy0FSCXWw_sj@TxG0GIkk4`b@!f#WhL#j?|DMOF#^^m!`VPnH7=ZPPiD2`QANl(wM-(v1^*gAYSirk|)e|_n*epdRsN&PCT)`$D) zQ&VueSj=u%yQM{Cy$fgg-g>r2Pp8&DpjEf-z0qHlX1k%0S&iaG`86k!o-rZi|VkJ#P7`jy?Y^H^*eCqV`Q}16{ZD?P1&d zo3L@JbE*35(|n;Jm2WnXkFHNXrPr7(nx5^E5EC5Z|GsfFxcoLFRo}*nq-_~Vh@^HJN_-Oj(Y>qAG)*Hok%82B4%OBOv964j>rM#}q`V>0)s%h^fbiU^G zRJ8nFEcLk@0)XWX$sKqDEah6Fep#Yy;$SN6FrevXXo&v z3LL`S_qvo`;kgE9)65ucUIvU${wUaD*t_vnq+q^J_g<5U2F@>*jc3oJ+4h%5E#rFMy9eT&1GXGU=jQ!p!Tzo*`|P9P6pOER zj-IdkUN-S3Bu2($H_AAyGkSbHNc7J7p}g@ewKL`BEwYTqrguc!nb@|!wKc20J8^1O zvRAWz_(4a!&O?(peuDp2!{d-~6?qtU9&R_FlNk z;d|m18koKINXR^RD7;&RZU;k{b<1PKiF}?k6NpnG8v%CQo=(sw-GkKeN!{ z*J};DtR>}rj;q(_M-kS-HlaG7f4Ve)p`p zF8RFS+@zBqOT||DYpV~KZJaiZyS?S(S)VP=M#m&eo(aD0xop%lem6f$`*Fmsr{V(w z=kgqnj7)rc6lUMaB2oS0=+{#(houiBMboAh?&+}6KB=oOWB0ChqdP-{Lwa}k38(yR zr-!wkYrKrc7k=muwmRz78xOox*rGI?%{D>G-%yV;Xv)~>Mds~I``eQ7c~w{=*H;!* zBB#yu)?DwsgW7?~nRCpVdrMiV9o%#2vheu&{O)sXky6<`t1;7>cV)&|wGA(p>+YBH zy5VJWO5xbmC%SCbw9`dwCMZ5BIlrwLhiBE`&W47LhX1yNUVVoxw zyQ4!s{9s`=UN$;4R<9#!Gm4j59CQ6JP0Ixi`4>se#q|Cx8q!q%(uqSCb`t=xc1l7yxTV>YX=Hhs?(P_t2!Ul7} zT8kSq+GmPWtyFdpP84!TZ}<4xMt7_EK~pikbq>F4mr%rTsV)N>ZAsA;%}oj(pFbSm zt4_c_A$*0t&TW=?2Wqq*z7F>NwE-vuhX0KEYe&PHEIt`m@uGqQqq?waQmMmb|L zH3Y61yUExu>7$+x+45rpiyAAxZnL$P|DrljztRaU(}17efrGEP_cW{Tqmkj!;h|ON^hE8Ga{oGYp_57% z)m^*lF80zyhvug1!&fUc-#>DrWiWrMOTjYLT#%8~zu({H+6E=1pSpT!)|u0{3QtmL z+z9iMsyG^E+aM(h4$pSxl)NDk9?6Q;+skESl;yLpXHkEu zS^b!|LPoTf^U_T}j|)egK7{sgg~=CRkJ}<)$E)NOlA**+joL7Ef>TuurstShtgLf@I+u;?x>}x+=)piZ_SOl zhhBOmtE5TT3^~TKx&J_CgqC(q_?PB$1O7VTD%wil@uC7^l?pk<~ zu4ur1St_aXi5lNb(iP2BbIy(AI}Ytj?R`=D@`L4gPZ*C;W2Ehy$gu3p35qWl~%1a`|BV8qe5QmIe~M zjMUqAa30@s$zc`a?p1u`RX*erpRQ-NT;FymG5L{0G`Wu~HkzAFfOWrq`8~pqS}6~;mLg`RBihl*Y(r|Yi4qwqkGR(Erew47zFXFI zQKRMueFxh7<;2P3P4(V-`!L>3EpOKAgxm@Xk3+MGi7@E<7_MWz#%j-2zsr+f_@Jxg zp*s=R*IHkTZy3O&p3kE3QI^i!8L6;1&O+iGLv#IsH{X1DCxY`%CIpi zym0+_z@$f^>3NcA;%Jyj)@$*KqZMtHcWOVQ1x;f)H&z)agxr2iyPhF!cjTc>YYwD5 z?!eVj9C*sRCQ{;|h~YT*dx4vxnU|v8eBNR4VHbm3N^UrL)=jtVEer)9arH;eSKX?;IR?S?C72yp6;FghBB&WXTMFW1w>|0H+=d)wK?SNT#G~I zNTS%gtl0RZxu)E1$JyqvTMXSD_s3KlGjBZgR#87>I5v~<+Sw%R!R615(Ys6B8o1op ztwTba2l_TStZp+nJh$;nb?HHJj#E50RMtO^@p&!PIYP!2rZO43Ya5y< zfsBzdb>=1!&z^3U?BzVOz2xIFbxF17yRJSJyPR>F(m>TSy@$Lq_V`WDRwe(@;x?_H zSGP((s4zBhC$Lm0ohe6~7jT-Kk}99D@!>45sc?6zk*hoLV|I^W>$ZaPQy)jpvVVyB zlA`5m*Yl*HbCl5i5Tg+7I2xgO;JA5BYd}wG`?J6^%{H@bem&*wm!-!#bIio6Up^PF zy*KW9?%_0H);#&`F8Ai}(+zWiU+0dUPU@6Yxn)#eYOqtYJ9YH9CBMCG7bD%-v;xzy z4xwbrV0C+;p2_+`qwZUQ5$ChrFqK*t+^ieIUvo9N;79$pNA9W1yMU`5arjtI)|>5i zjHdX}qo2VAb5%1%!dDOBPv_v`6TVjGJt~&F^Yh`>yJ7F*L%*lmIdoKfOU6k&r~ly= z-Ff0(r-)O0X(DNlGqnabjCWFncxdKWB}`k-$eMrNSe(zAw%W;37WNng_ zk1NgRXvws5QG6seHdkaA>aG%1IJEiOfdH!*9Siy%-j(*?7XXwP$zh^>`Y4&t)oZ?w<6m? z@2zJ=-s8VV}Gr|LOH`1jOZ(672=MxI%-;bRSzv!|Nu zNft^wc~Qm~HD*e(d*z{QDGZpHC}S?Zfbf>1I&yY9yG4ro_L_QVhjK;x4XoO*YAt~?lA?JI zmm9>V5S8pXO73#tLSRXib`_IL?X6tB9i6geE{&0OuVwS)x}>{Me$;`h3kAyWf3;Fz zi(j3gk2xg0^Y#6`S zPuE7%NgqsQ64{jNt8p|vcC#|aGqt;WrW=Bz#lHdEF?aMx^(Kv1$Zz-2?V@FTqa{Lq z<1sZVq<*vSh(%IFE_JbP-Bo>~Ow&%6=QR$QTm;v~i?(Dk1VZxbto-v9jE)h7dJbg* zWdd!Q2R=%CySC|q&=J=lF}pj=e($LVy&j119!XBScx9JO&`F!lH(^iMjjK~LDBeG_ ze|9V^{>uoKTAD+wGr%XS??b#)ZQPyySZQQ~TL8`DT4(+3=fvMB5*noqQ=Y$v@|&8bYy;M8 z*;i(%xAXHz7VT-vit;&(39?0XD436d{%F`dPPct{6OA$QOesygBhb+8J>xoWnN;c1toh!d(w%<7{%ciqOU8?@zVK=_-!AsO zTubQ7g`Q#Oo?gfNYzAM4*y8gc-4DLraIjo6G^WOVPkVRw%ahUec|2{`3fAy{+J4ZK z`%t|4J4#y7^ebD+GoDfCZiu&3z&8)s6teV?dwv~w86&EZtTcd9sj+m>>-g?t<`ADW zV`nVYfIBjhy^exPO0azc$F^6D*dv+i$K#*teKyvTYKngm+2ga?Rfow;b#`L_dBvw^ zrz2}Ak_!r$i}LK}CUU|`HjG9v6u-$DAv2O4lGM6$BCyT10w>-5oz5>t$x=K;_oiX|bW^N%vTQK*QSGhedU~RDAYJD1Hl33#)X%x@@;gihrldF;-*xk}VljRp zd~(z;MBt%IHP!3=rCPOl^snn4_J5>3oj1uZIjv`k%5umqdi=`j$$AsL&F$-To~CdG z$X<__F+O>`T-uYJR>idzdf}Zr$ zZWq;{o&GAG;cuHipJz`9S{GNRa)^4Dp{9=|7G0l_Qst0ISLNc~@j95fB3Sd5Z|Dqu z@K&Nw+}%@guOEz!hqDxZb?TLMx;&6U=G`V=9C9c5#x(WGm^02Bqtc2*2zAHolnBy< zubj1N&u`+HQo_lzZ>n%AH_q`59V+4K%YV-MD1f#^dvIL&feoFx+nR@`pU6GxUL%~* zsMJU!^&>&VO<7xRy;I4U{p=*V_Rh7uJter7>U+M0B0JBY^%#HGOl8+flW?Q%g4*}u zCu|<5S0$@|`n2L7`e&-nHq%sb#0wfQ_H^PK`dk<};CE8S_&uX%ICs4}v_?S!rDgthaDXveWP^l#WJIUnE8H+Z$* z%qqlkws+VKeY0Gx@70-YUo7j!GG1A^zkCuM@vS7QyEkMkPxfZ*!@Y-<>_iE3{j#-l z4_YNR_v*EM@aXXxGWS1?Rn#1f^?DFqP>8y0pX+a#r*W;s$?XfaW=B$nt(Y6@VA?ev zu`|?@k=Km8Be!p-&N?jR`skFrg(7a zjz_5I=EyZhWmo#Boyfnhs=stVgr1)J)%jDrQ9CAsukG>@;2OLv7QL;NEkV5If|!PP zjo2YC8L^sS&pC$gG@7eR*Oso@RjyEeSbOt#+DP(VvKvg9uBWvOw1&DnSM$H#Slekd z^uEnz+AC77u5%l~Rk3mZ(0ez+w`-AsHJusX2}7KcYC`wAV$DuO)=DMHpGwBx%$3d6 zRi~~@I=S;`x!}39JgSOzIHX@ zEW^4J^*qz*dYp4DD20HXK~YvAyxU^~qum7~56i}uJl$w_pfEyTGq35XW63_-@iR`@ zNw~V=Q*H0`hrb!0X2JWVB#_Z)|qseU64#rro(y zA2hz)^rlH>)rj*y_R}~j>&)x%R{EZ#@fZ&8>8McihnGGlJP5wY_r3S}5gH|3djTb# zT?qsFIyzZLt1mcs-`3B3>YuKA#wND(UBpY{7q4GWy?l7<&8WXr(+hgb<2b(jG$RY2 z#xVZNjQW9B)YHcp=Z+WHe#CvJc=@_Lk>!ed>d7NP@t55a>$h@TQz)v-`~LGgqu`d7 zeg&t=`0x_-Ir%*-hdOC&;#kcNzaL8;d2${JQvHrer(v&XP3AzGZB+tUr| z+%{seb)P;|&VHtvWuCF+rdb%eHSfo0=F{WnjGe>;?>)@PHUIQFOT1WkXH!CT8^r-t zcRrryDGmVvDL({EHOCaL9^jD<_LEYI4O2H(qS#*@{I=(FO~0S2i(Qc@)zvCXtvbe$ zjne{souPDlWj(Ad-EBrDWR83?`LX8l(VdMFvm=lAf*EA*rCMW>*Ygc>&ycq5?Oiu(pVntudfesG3NZzyt;Rl6x!!V$aGxywl4M^#)swNjbq7r zn9^pF-_|LRy%jHJaPbhx+0q$bqj1x%D-Gr4CdKZf!5BLBgKKz;w&8h8KFC_E`FwSa$hN1l<)k|%C9_MbxdJKcpdF3Q*xH+ zm3>JIu}vyaQ|biNkU|2s<#o&r{<!_WMnTejLg^`&76Zo=z-_eXB zUUt2r^9+T!pLt0F+=+kB2afy>3;O$dSP^9UE609;vl(*iAyoo0v%nh-xnq!H2zefm zV+8?KPfA9?D+z8_2<@7`u|0aT#_rFNH_;sTJL|_@} zmpz539Vxc5y6XD+rWy}c=4IhKHC0Ivz;pL^_)fBfSLUYm)$jJuGDliK7>_JRvYu^G zSpJ_|s^f2DU%3~tTe11qZI|=)w7giWvr%3?7dz%-veH!T_-U%MGb?SXD;LM~c&@Xx zf#f^NEB?o1>uPsyphFITZe+j4$_MZ(l4j9mL8>El@+CYs5?euH!nkcH+i5 zNby0!JUrT-=D~1lEu`hBnwT5d${RQ;Tbk=wD5}V*Li&KsqKE!u=Kw7hwXik$^Y@== z7Zcls;GKEyf`>4>-|S_DnO5d2%eV;75;g)QLw>Un4h$C0#KFUjV?slLL!`1hh73;P(bewJpB{+!YqWg%)=L)_yT~5 zTiV;07}&rWE2?maS(@o1bNxpUBVJ`m6jT<27|*XkiINHjkQ@#i6g9y?sZ10ajamRO zr2O9kfc=^s0kOrvg@Idl{s0#b?%x5|B4N#5*ABTR^RIvlMcf+YMF`Ks^BdtI`iFRY z3;!Z5zgy>j|8DvJ`HhVKd(_3B7q`v#m~UA;*Gf+=^jdgo@iYJC^Iwm!bmoOU`t=5j zz<5RY`a>-LH7qZrQp($#+k!}p!psY!iwG*QP7UULK7D&!$!aQgx>KGZ= zavd|#ha5~IS}Mc1MA8GliE*!5i--Be(}ATZ>ewI>I0|m5L(+)mM+KRkNDUW{I)804 z6H)4CBIX=15g%b9jt)c^c^*(@{ul9;nC9y|FwJM;FIm8XnD9>*Fn@&}kRaj&^BJm4 z^ZA%e^I3{aP-+BO!+b^*6EPSZ{+eIkyt=Yv4agVso4n#0mhUW4sZeH`mqwU)=LaUT z0%a!5{JQ4PlIhnGfSQ9W2uobolDQXg%wH&eQttTgVkkUV^e=WKXJDtJuVbgP5Tz#| z>|_O{4-M>?bfMy}g&^~IVJS0{iM}ASI!2CL&Pv?C*hI#~#z4hIURBSNoB zXyjA0vDCNMGq4d7)w8kG)v;refP%;-W@ZL9OgK(%CPb^$w{)~UD1Z#H(EHci0$j*~ z7A=tY_Q=>I?SHp$CmpLlJG5ls@C7WKd+EZVkx$&lKnE&Ct6Ex`{aL%Bgp{0)>93_* z0f%E!v~)DEQM5F%uoK`SeQII<1dy-fAhFueSpsU)3W0!x<3Rq$sB#ndc+iKr(R|$8 z^CK+kMlt|#MFuMkz|F^vUp&U5o+M-Z2HllLS-Om0Fi!0Fe|;MIdVdbX%HGC|2(0>g zTn6){v~A%)P)iR)Uysiav31x9=|I746FnU}09FKI1h^KyTJ);W2nD#!41R;lJQx#! zM%2u1Y3pxjGBZK2iO)>O!bp(Wi9_GOP{-cPj#)^~1R&Se($H?vVKZ?s0d>;RH?fse z;E+?0RDcFE16x~53lyi76~F=lo@ORXCz@|vIzMs!q)Qcm%v@7D7x%twQ1Qz}kma= zdJ^;S_kaKI!VCZ3kNs!F|4s5|EB?uc|83Vl*`+^y{V^B*%358DoXeW_rVzGnE&yKVG$L5Ug0H*?I749 zGB>*fAEG6|e;9587{L(v{s1@kfrDJ4_IAdWHtb;6nimn-e`{9%Njo{n^;;49(|xHT zrukbF(>!>P3v`g>Yk=kaS%WGfT(kcdk}+I?^ZU)6Yzz#kD8bT#MZvE>KTKE*2I>PK zU%?OD`@xHt6ObP!i{EX$JUB3AEN#Q!5Y>Na8y1UPOSZHPk4NkuOWO!IxVma-8wy1< z@h<6y0>d7h*3vdKFJjSI+Q!R^i!|)*2cQ0+jVzH#}fx=;tYF$hF;cOWUx#NO6ayZ8$7q)>+zy z2N9mMjey62L1sxm9&S8hJX+cYFG9M{JWwTobS(fH%ht?;K`nn4x4aF9CM=s5#{-Kd zSql!sjTnlStPhT8+1}%DyvP-kOZpLbm%keUgIhKS0l<`WuLw8-Vq04}9t=nVr)V${ zB3D^0?uSNUd2uA~fd;t3le`BSg@?l=c@`l$q|fqTcyT1>3+dv^@Dj~~!y(u7ELjT= z9*bGlM!@1pUjEz8D( zy(b+HL%?83_a4iQL24*3d0#AQ`LkH`@_AwB38d@80=kjF0UCC1*}Fj-aH-hkz8$Yr`q`{B8l!3Gx3gIhK) zo)@)jpYhmbFp0$z5Nk8Z8~|9PZG>gGj|LAClrvrWEVM0KGY-W|N_XK|3}Vn;GA|B| zTK+708BIjvc(_S<6w*dYH=qqqN)OODUMwlkL*sxQk-{moAx7_|>jN4=x-STuAw4%} z!!COk3j~mKJYdnJ=LY0u`Lj6i(UCrjLm^JlrR&4-AbyOcZFm$Zodl+ZU4CwO>@r-y z5ira80r(-eM=hBH+7M42NgD zODg-I@jNIV(*483_K}_uwBbqj6weD+8IrymFB0}e^1k4BU;Zp+8EwMzB7RuXXK~A5 z7tc#r#si>j`5s_+m+>+@fbO#OVF;vrAC1Q@r$cxw9&w;8Jxd&V8NC9jWEl?Pfv%Cl zIEZ10(`@N@ctFi%Z8-F@dGR<>*$0g$V3zMa0g#YnJOUQIjJ^CsXUG*fE}1*%{-uMESAUZY;+)~(uRr>iSaRUF+emGP+us)q- UNIX +IF(UNIX) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${ParadisEO-MOEO_BINARY_DIR}/lib) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\debug) + LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\release) + LINK_DIRECTORIES(${EO_LIB_DIR}\\release) + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) + +###################################################################################### + + + +###################################################################################### +### 3) Define your target(s): just an executable here +###################################################################################### + +# no matter what is the OS, hopefully +ADD_EXECUTABLE(sch1 Sch1.cpp) + +ADD_DEPENDENCIES(sch1 moeo) +###################################################################################### + + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(SCH1_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(sch1 PROPERTIES VERSION "${SCH1_VERSION}") +###################################################################################### + + + +###################################################################################### +### 5) Link the librairies for your target(s) +###################################################################################### + +# --> UNIX +IF(UNIX) + TARGET_LINK_LIBRARIES(sch1 moeo) + TARGET_LINK_LIBRARIES(sch1 eo) + TARGET_LINK_LIBRARIES(sch1 eoutils) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + TARGET_LINK_LIBRARIES(sch1 moeo) + TARGET_LINK_LIBRARIES(sch1 eod) + TARGET_LINK_LIBRARIES(sch1 eoutilsd) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + TARGET_LINK_LIBRARIES(sch1 moeo) + TARGET_LINK_LIBRARIES(sch1 eo) + TARGET_LINK_LIBRARIES(sch1 eoutils) + ELSE(CMAKE_BUILD_TYPE STREQUAL Debug) + MESSAGE(FATAL_ERROR " Cmake build type can only be \"Debug\" or \"Release\" ") + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) +###################################################################################### + + + +###################################################################################### +### 6) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O2") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MTd /Z7 /Od") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE") + + ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson2/Lesson2.pdf b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson2/Lesson2.pdf new file mode 100755 index 0000000000000000000000000000000000000000..2a7261e068663f51c822d6cdc5043ca0eb057d9a GIT binary patch literal 14412 zcmeHuc_36@|33<)w9`fnMaY=NtU~t4lCmW!!wiO5G&8cbX;YTcLI{bFoh(_(mYwWW z_BNp+A+pr>-a%;jJUzef^ZWkw%r)lRv%JrHJLkU6Iqxf`uciS-$e{SeUcIhq;OE0b z;1If{9YkIprbDKY2n@0-i3mZ!bRY;63W0>}gCGzvbqG!tjfCkzkT63aAA!TbG$CdX zj4TF%z@yC-75PatB0z;7@|zDopEHAG4fce<^7FxGJ_rnior2JQFJOmE?OCDPG*E~EL`*S@c3jIqTNG$vp{*ZXoFZE>MNYu~tP+06QeV`GTU-MAN zU*tfe(7*JHLm+>V0}iVGhyGX$0+~W$@bdviGyv=eL1JL~4AODXR9Fn`0G-Z)AmD(Z z55Tl&)^rFU2AEVclSd%bF)GS9HFdbEEEcDVK`5)?v3O++7ORd^S4ATfo z0!Jh8${HwDJVG6XL26)dD(YB-G9IZ2TAz=}A~0CfW`^_giHWK2)8Oa($rt$fKsi8X z1AUD|vtii+T;X9FWD1MKfN4+&ERq_@icTcKv>*s19&|y3EX)9c!6+&+Squ_^3b;~> zrG(TW;yDYgFr&UcrJ$vkl)D|^@PK}vdT*u4C6IiM zlvitr{Ct30&-6Uw;A}Nci=azl5r_m90RmVSP^Uh@hQx#bRsqt6E)FD^Do{qD+pr6C z2$m!Y69V`O+?fqYqUE-9d%!YzA5hjYrD>u7N`#&4I=Y5{)%OR+Ua;0e4Jb z(6PHYKxY9ugTP_BBqEvcyXFT-Ou8e(3SbNY_}VOIAglAZ086GtQl(Sq3`ZxXVxAAkZXY09s>jf!S+Q(;4?dgu*pxeW8i4X0ySyKa3rx+3UZ-FVp=iC z4lFtY0**bPPaOi2rD{uH0Pcc@nUIMrTc#Nj3ljcU7aAOG3ocn%P`ck;7`C-$OTata zOkE5(w*SR7+Y{JsHVuc&af!p>Az;~TFS5WrP|qBuLST|Wv0=&#GJyhBp;L&uhQOF% z%*ZT@gsIbjK|`k50J77RX-x8u`yV=+r(IBGf2Un=hF+juB>abV(SMc~)F5)E91RD& z8Tc-|7U~!;3x{CYem4Cd)F!9}EMP(K3u*#v59Z@hD0W>ie_B&u8&IGBWCJ!AKphm& z8mtTcf;`OT&sqWe1#Jq}nJt4)*9LfCx0oqmOEu3nhGZ&n%;3{4h^Y79)Y81}rYN1y_8;2&HJm>LX#XCuqX7N$pMPze-v6B82I#+C)a z!r|a^)rJX?MZv&{6MU9Hk%(!!D&P|XiU!aRR2Gf}rfon@1RM!WI?B^Ead-rqng)SN zrnpG3S%3g;4q^MbB=CfD(46iFgT}xP&ZMDe6lVGfxNy3LX#vkevXwH;h5|gZ=1obU z2hW!qhy0`1pnm^RV$|PAj9Dl#9Q%JQF*qWpCElm63xMr?`VeaZg-L?Z9cB{jsr$#n z5@w)0lW(94fy=;=^Rzbu;OAi~3{LhpplS|7XFi|(I@(l>lHb#fy)UM{kEs4X=5~L zm*;l%>w^JnR;TFeOGQiHXzZ!8T!)m5O7_8Pi$x|^E*1+;Juli#ooqo_5xSo(etqiN zX!W(KgMx000)s+$`bF1Jvdy2W2(DcJ`ciRy(y@&Xs-WL+n}wfRpT#{*UQMy&8?1Tk zVrW`uxmp8d=A)vtl0*q?~7IaPdzTJl|Otb?BVXH zhv|u@>!@ZXg}6mpAAHZFUQ(n|Z(8s6sm{yR=?KlmiM>-fd!={8&b-fW%f2<@=VBwA zY?4BCkK{!SPQ2K>{zB=2011(0PkhZjIKRHEYq1~OXik=M`z9OhXmC_CK)KLB{CwQ` zlT31%1W79+LG9>;XGYH&hjcpx9N#wh=7!zRSZURHA^>hxZ}M7xOtskl z;_5Ec2YsjnmXlG<`v*r(-AlwAFMc3u^fbo7Wt)|e&)V|qXVUC;>t(w>AUhuAF_L*7 z)stwPM)tD9OMBhSDL#3u&oi$1{exO&>YbRXgAY*fw;QvA`Zk*Q#bq54_?p3Dtqy)` zVwY0;bQEeXcw_wYISunfbV3Mc-UeA$V}HzXGkVa8;O)}OSoRGn!K4UdXxZ1AC|iyv zA^LR(dRLgETSNmD3ctbgWV(~3qJhwe%}-PH`P|inY8CWKVM)<>W{C@)Dl$3 z?Yt)#?^cqKUl&1ZxO*j5zJ(O`VM2V(#?eF+?qxiQ~C zLG>7|&P44K93gKxK986=vxI~M3K^d`$gpNm1wT4iE2!ijJ?sOv9Oxh`<_OFTCH}lz6bI2<-8MPrN;1s$a_}F zUF!=z7LS#GypvG|v+io!soAwTY)r}4Tnk&I>Z<*2KsCrJGVGeSDPLB_;s{Lagn8%DVYUsg%`9!)JSavyVBe(9oz>bs5!%GCAB zvRz+SZceTd9O7O%Aoj75!P)M1C+X;CiQtA+FBO)$ecK+uv<$mo!e_bPL}T4hIJa)k zp}RwnEv$*>c4|%r4JPKjFVvRN(%^+{%OIP%;thn`ZL|05mvahlG%Ys|Yt{UCnZvLc z^Q;&1Z6M=@jgM6J)F~xlmmu10MVQh14JU^msnDYYLjo$lfidKl8T>fM9H zN@}1^^pVBfdrb~|_sTBLYDKN8wvO1>Qwh0#3%S+OAaFJJ#yD3c=&R+bO9tq6Q*VpZ z4~1{vmEX}6a(qW-+_}}aHONTc0*}y}pY+~wCSa(%1s~HyZd`jO`TA&d$w3~PL#FEU zZA-AkQpak}%)Cz%^&3m%g{6kJ3+lYGQ(0T^iXtV9+7>3@yT7#;oyaL+-I{J~VVWBx zi#U^W)qc3_EL<@K1A{NZ#!?Umm3`Kgr``5TX*a{Bu2p{ei1m=u5!Y}|BaZRP+dn(@ zsqt0a^+ub%N5oF0EEfGzN{AiY+%_u3aM*B6PM|fT7bSzVsNSKLSD+sGyiIBd z*ZJpov0^l*>#wWjy6(QOD07UA;jVV?FTZgrEG00yQ>l0SORsr|LMYD;kJ8os?+a)R zo7bItdW%_fiGxFF)DIwI?EFW6V*Rd;8(2*_KyVcw`8;#X3deOv{ zR*b5a7GkNB@R_Ky^i3Qgb%8lB*ZdCX7rKlFJ~r>8*qbvCLiSW z&<=_|LjQQx|2yMVfulL(WjgI9p6E9G3Cx(}6Zs-pF-ZV#n2eA?L--_@xv0SGMMHE$7gBdPIlsH!E%SD)R4EDoAi0yNIMdk3hk801x0w1o+P4RDjB#(I|8paV-F)DD=OzUSz9wJ~+c7WU#0| z1GITv{v}SsH4MFX}!0GW@Itw;ydE(tQwT_U_)*GsgM54A0w^a?$~>q~wts#B2<|MdMb^jR-I zhtftIuf)xCM)0mjefXoF*v8D7{3wR(c%}875DeQo@`qex4*)UQ>j-xM_Ce9`eLO`w&D)$ zvqM}QWvr%MhsRfJzRAzi5V^f6TjTK|BU*mj+bsbSC_`^C$@g(LdCtLA#glIK3IyCc z6mf&RnKK}7C>R&jV(EPCoci5@0+rKS>vmljPr99_AJtLaaHA?KRC#h4ox1y-i2~ml zXThYW;}0|Hp&Z^xi}OEso87LQ;D8V23g?bhpB#&Fk;HCb5pr`!Mn)9vBHKz0Yq8^Z zR^%xSJgO;WwcY+~ajXIvm{M^juunWGF&5L8awtS6vFQA6;a5k6$A(;-Z6qsix<(3K zEqfBJlVJ4nW3yBvk7K%^f&F)bwWmqX_n~$_%gnS&;!JwZn=JF0s`7r&nyf$1?OrYY@zVx6yzpvxZ-Zm zCFHy`{;YkMc;?z8yekVLJ}HjDPjD%&JbG@&OOH>|T&p$}?h#roBC4@nQ|`c}nRv=2(RWItAaM`yviy0!O+WnA~ z*GGMKiyam3+?E%fERlEfPG}FT5?e zo=l84ZeH?U;ysVO|5K9J^Ii&n&aKBDC$F5mqxvfI*eg7r-i~*RswJz zkGv3~?tP)&(x>>8SEXQ$G*vnR>gV6?&nul|nwwS_|0+Q$0dvsDtUW~|K_Njl;eEnG z(>p1rh)+_NKD^e-Y86V$A}?!oZLxlVX+34(R&czzxD#uCA356D1K=$BSbEE1+M*A zl$=*cWiW5>KDnAqT;{#3w9F5VS-pFY3FP?a(2gs-AFtBw@*l{kptgO?%|8GUKrQ{k zN6V3Ii)gcN+tZ%px=NvFi{BPAh1}uu3g_f2752!(TnmmA9I;DEICAUJ(vG_whX(c! zY*xvJYaHCswlnzi%ZYpAtTFEi`7e%x(Bbwjx8~9GqrOM|Is-bPtM}ZL?pr0i_T;;P zUfAf?!MsiROEj0*F2k+)L=7_uLpqps-8q-3OjeFNtH(374Y&Q^)V!mR&_IRDA=df2_?1OHA*7Cg+J^4^I&AnPJzARO{9e&zQ+BVl!uip~8qjxu& z7`;6D#Erhd*nJBAJkes&RGpm1wT^d>zjT()$-5y^cE5Z~RU9F^jk$dYW*Q#v zAD{Z7?Zc}N3NQ9CEt%sC+S}}Ro0$8$5ksDzkH1r>yjnR>bLa4z9NQP+L)^{WeP_2_ zxL5e7Fyun2*X#B4L-OY93>%GDCofxQJ-N=*PPkFF0Ijn3Oe^eMX-ezo|zEnQ6^{#%A< zjHO#~YQ=EH%AKdYiX}YXQ zCPu-s>*a2P_1^s@ekC#4W!cxV-;KD8cx-yk-*R!8PpFUmrUA4VYAR|Y)gOC@a*RTz z2ObhkrR>?+c&Nqo!PBgSRI01XtIy^i8^2V1+3h&yIP7#HPxN$gie66j+Yl!c@x-=P zQgh@$c8b)ArY}uBb|Zb4(VX@f@hSAhlWdaTc^q*WSZ}Xx@6r4%Gm+A+cGRIW zW29)LW#k!FjrzQ)rk~!ImxG|be#uD*bL*PWExujN&$EKosnbqrlgHm2-^X!})9hP7 zX5jWf-@wTr+n}b~Dz}q@g@P{!kA@IK>O+-66YmJ$@wzh}Mh<&^chB97aPe^e2%d=J z5#9HU@0CX4B4eU9MR`R{Mbo0Y?jN{c6oZY4i4}^y8pjpq7}pzrIKDPPEg>@zns_%! zFv%;KBiS*zFU2CI`GNL>!c<&pVwzZ5aQfPG&kW8CmyAyjZ69`Jnr7Bz?aeC8-j$u6 zBa;*TNaWG&#{!S9=JMs9&;6d~nm3Z~kpH2;rr>qq(Zbdz2cI++?Jue>)-En9(I|OR zs$7~^rcm~%T&_H;0$1^{5>uH`g|13}ihi12jj7J4!PaEf;%l?(bK>)!7nB!+Eyr6XTFIm`dyybUl8l z_Oj}g!K>ESR$sV%*$b>B1ADe}v!jHinV&;rH}@@ASqn z1_{D%EN}=oy)ldc_Pu8|hVgI!;Q}4ZYz(tIp1&Q8Mc{sH2cv;QxgQ5nbBA|-+zp-v z+~E1+zjY)!eJJ_woQVGMK=j`_5B>jh2ntHGU{Qepf*F3Zs93OgFtKO0Xsny6PReZ9 z7rv;n@A5h5@MSAI&DNM3gG&x7U9OFFwaAg38c@i&u4J(zQrOKRvVB5sv@K`- z4dal4_m{Qe9$C2&-Ktn+>68-aCRffOg$gyB7sqrk!=Fk>idj+RhZ(rk7Pru~@Y0FG zD0`kN`|akpUG&_ZZE>wi?=!!X`b4)nu>DdHhPmRnZYQBF#tC}$Yr1K*{7xmxh@>LX zn90{1Cz})%Qo!;w50cqsS1EcW&rV?Ra_8lX*7IcPHt5Y%8$0e+J?iF;ri_tTp4Q_5M_ap> z6lazZLn{-?By|hqK?MBCMy#>fHbK`0y?LqW(iGmU-LswtKWbQOHy7KT_P3`-Ji= zWyJw!*!`;Fwc&TO7B@Srul8AD#ofBoRD4+qPQ1l;;`rJ_E9I9hJ9JrXwa%N5nycUr zrT)@e3^qU|7FE9GvEf^~^|N7B1ZjPHD_S%~KWAq_tlTd5@GZnW-=|ZqvJhCOb~mhJ+{msqoZ4wr$+a*Z}U3luurmXMSX(n=pbHk z>&uLHse8py#a;|k7w=9Jm4Fe0G|KzP7yEcHxjC6xp*pOI2Zs|JI(=V`N(ZYSGn7}< zt<)=Mnurm6xO31vPwqNT@p#uN-hE91W=Re;v5&4~++X3oGQm(uS7)Bp+E`6~5=mlqungoskGTqf^(EvJm zB*-==>Rh3&tALQ_l@b20Mv5(0yhM1P?0Zsr8+rFW?!u{zUc%xyH6N$XN9uIzmQk$- z@8i}-ktZ`3ar)lhm7JJr%sY0P)pmE0`i|z%3;P=fN7J3`y|;Ku2d_VW9NP5>c|+^2 zBDTfo-h;Qc59zH{Sp6V$;!*C>!cU%VH8C3ZhE#U0D-VxepYUarzqzwk=;9Mi0Uzn+ z@v^(x5A2zSU1zP`ltv~66|40v8QaoKAY%!2w6AjhYVzy+M7>20AcHjh;v6#tq;$i1 z2=sJ&vno`JgBo{4Oi<0IynLm*lM+lrbbnzIzoqB1cP~x|Q;S6+4_m+Nu zou?%=t|ce#?bg0#@=-K`6ez;Gaj%*WA!v)jUaQrXYPE|w)jUpFN~2u58sSk*wIamR z&{xByxC*b}gs^4LoNrnv+Ejih+kdZsFaFSxeGyUPb&=*KUKK+e4e<@$6WH)F(UfBK zu)q`<&*5T=dNoH!W>r6bEGnX z$Rc)x&b(l~c|is+wYfd7xnpQmx+8F248;6_K{)LACYUyv$TVZ`haP~icU|Yvn|F>o z6S#9wS7$cTOBRiiohCFJH#PU{lHctN#2nd^SP)B+4Vk7OI*^km3Lz5}L`~4Ta9syg zk}X-&l|eFa)ibnmwYS0(MRzOm$vewAQyr*46c)spN})03oE1a~KolZL4oHL9Fi{A* z3d>$WR8|H7#ljJyieOZlJcDR0cR)>JrX6snAZp8EImp3aPEJlTPO>s|h7AmX$Kzpe zBn*j!0yUsa7aEJ;45cx*O%s`=GYe_RbQ%PtOR%InvJ^x`7lgk}Gw3j{BN|hN&8&2F9tJWrk3qKd{|}5i6C8eMXaVCu0l+wXA>%-%oGK8m2ZU%D(&-dMeFJvD z7Fvc#p+JmD3?`^5AjC}`_H)fSoymhmxk6EI?e z|7p5fG$0O_W<{E%OOhp!uozhq6b>h%peQU71tpNItf7`ftfe&`X@vx0GG^({Yx|Gh zKdn7r@&qPe*pC_b7lVQB_aFbv3H%=?JxB1roy_UtFH-+i*Iy`UuF8MaHK&WeNc~q` zf1#wgD*sj2oG$(%^pB`)ga-UtY08$O8JFYx~QqWOzWd O`LA~&5SSk?c>NDocBBpf literal 0 HcmV?d00001 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson2/Sch1.cpp b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson2/Sch1.cpp new file mode 100644 index 000000000..718039921 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/Lesson2/Sch1.cpp @@ -0,0 +1,107 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// Sch1.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include +#include +#include +#include + +using namespace std; + +// the moeoObjectiveVectorTraits : minimizing 2 objectives +class Sch1ObjectiveVectorTraits : public moeoObjectiveVectorTraits +{ +public: + static bool minimizing (int i) + { + return true; + } + static bool maximizing (int i) + { + return false; + } + static unsigned int nObjectives () + { + return 2; + } +}; + + +// objective vector of real values +typedef moeoRealObjectiveVector < Sch1ObjectiveVectorTraits > Sch1ObjectiveVector; + + +// multi-objective evolving object for the Sch1 problem +class Sch1 : public moeoRealVector < Sch1ObjectiveVector, double, double > +{ +public: + Sch1() : moeoRealVector < Sch1ObjectiveVector, double, double > (1) {} +}; + + +// evaluation of objective functions +class Sch1Eval : public moeoEvalFunc < Sch1 > +{ +public: + void operator () (Sch1 & _sch1) + { + if (_sch1.invalidObjectiveVector()) + { + Sch1ObjectiveVector objVec; + double x = _sch1[0]; + objVec[0] = x * x; + objVec[1] = (x - 2.0) * (x - 2.0); + _sch1.objectiveVector(objVec); + } + } +}; + + +// main +int main (int argc, char *argv[]) +{ + // parameters + unsigned int POP_SIZE = 20; + unsigned int MAX_GEN = 100; + double M_EPSILON = 0.01; + double P_CROSS = 0.25; + double P_MUT = 0.35; + + // objective functions evaluation + Sch1Eval eval; + + // crossover and mutation + eoQuadCloneOp < Sch1 > xover; + eoUniformMutation < Sch1 > mutation (M_EPSILON); + + // generate initial population + eoRealVectorBounds bounds (1, 0.0, 2.0); // [0, 2] + eoRealInitBounded < Sch1 > init (bounds); + eoPop < Sch1 > pop (POP_SIZE, init); + + // build NSGA-II + moeoNSGAII < Sch1 > nsgaII (MAX_GEN, eval, xover, P_CROSS, mutation, P_MUT); + + // run the algo + nsgaII (pop); + + // extract first front of the final population using an moeoArchive (this is the output of nsgaII) + moeoArchive < Sch1 > arch; + arch.update (pop); + + // printing of the final archive + cout << "Final Archive" << endl; + arch.sortedPrintOn (cout); + cout << endl; + + return EXIT_SUCCESS; +} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/CMakeLists.txt new file mode 100644 index 000000000..eae35f629 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/CMakeLists.txt @@ -0,0 +1,9 @@ + + +###################################################################################### +### 1) Where must cmake go now ? +###################################################################################### + +SUBDIRS(flowshop) + +###################################################################################### \ No newline at end of file diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/CMakeLists.txt new file mode 100644 index 000000000..78af616e8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/CMakeLists.txt @@ -0,0 +1,150 @@ + +###################################################################################### +### 0) Copy the "benchs" directory in the build directory to easily run the lessons +###################################################################################### + +ADD_CUSTOM_TARGET(install DEPENDS ${FLOWSHOP_SRC_DIR}/benchs) +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_directory + ${FLOWSHOP_SRC_DIR}/benchs + ${FLOWSHOP_BINARY_DIR}/benchs) + +###################################################################################### + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) +INCLUDE_DIRECTORIES(${FLOWSHOP_SRC_DIR}) + +###################################################################################### + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +# --> UNIX +IF(UNIX) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${ParadisEO-MOEO_BINARY_DIR}/lib) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\debug) + LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\release) + LINK_DIRECTORIES(${EO_LIB_DIR}\\release) + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) + +###################################################################################### + + + +###################################################################################### +### 3) Define your target(s): just the flowshop lib here +###################################################################################### + +SET(FLOWSHOP_LIB_OUTPUT_PATH ${FLOWSHOP_BINARY_DIR}/lib) +SET(LIBRARY_OUTPUT_PATH ${FLOWSHOP_LIB_OUTPUT_PATH}) + +SET (FLOWSHOP_SOURCES FlowShopBenchmarkParser.cpp + FlowShopEval.cpp + FlowShopInit.cpp + FlowShopObjectiveVectorTraits.cpp + FlowShopOpCrossoverQuad.cpp + FlowShopOpMutationExchange.cpp + FlowShopOpMutationShift.cpp + FlowShop.cpp) + +# --> UNIX +IF(UNIX) + ADD_LIBRARY(flowshop STATIC ${FLOWSHOP_SOURCES}) + +# --> WIN +ELSEIF(WIN32) + ADD_LIBRARY(flowshop STATIC ${FLOWSHOP_SOURCES}) + + +ADD_DEPENDENCIES(flowshop moeo) + +ENDIF(UNIX) +###################################################################################### + + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(FLOWSHOP_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(flowshop PROPERTIES VERSION "${FLOWSHOP_VERSION}") +###################################################################################### + + +###################################################################################### +### 5) Link the librairies for your target(s) +###################################################################################### + +# --> UNIX +IF(UNIX) + TARGET_LINK_LIBRARIES(flowshop moeo) + TARGET_LINK_LIBRARIES(flowshop eo) + +# --> APPLE AND WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + TARGET_LINK_LIBRARIES(flowshop moeo) + TARGET_LINK_LIBRARIES(flowshop eod) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + TARGET_LINK_LIBRARIES(flowshop moeo) + TARGET_LINK_LIBRARIES(flowshop eo) + ELSE(CMAKE_BUILD_TYPE STREQUAL Debug) + MESSAGE(FATAL_ERROR " Cmake build type can only be \"Debug\" or \"Release\" ") + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) +###################################################################################### + + +###################################################################################### +### 6) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O2") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MTd /Z7 /Od") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE") + + ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + + + + diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.cpp b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.cpp new file mode 100644 index 000000000..1ee6b9d0d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.cpp @@ -0,0 +1,18 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShop.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + +std::string FlowShop::className() const +{ + return "FlowShop"; +} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.h new file mode 100644 index 000000000..232ff8b64 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.h @@ -0,0 +1,33 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShop.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef FLOWSHOP_H_ +#define FLOWSHOP_H_ + +#include +#include + +/** + * Structure of the genotype for the flow-shop scheduling problem: a vector of unsigned int int. + */ +class FlowShop: public moeoVector < FlowShopObjectiveVector , double , double , unsigned int > +{ +public: + + /** + * class name + */ + std::string className() const; + +}; + +#endif /*FLOWSHOP_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopBenchmarkParser.cpp b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopBenchmarkParser.cpp new file mode 100644 index 000000000..0ca8c857e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopBenchmarkParser.cpp @@ -0,0 +1,101 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopBenchmarkParser.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include +#include + +FlowShopBenchmarkParser::FlowShopBenchmarkParser(const std::string _benchmarkFileName) +{ + init(_benchmarkFileName); +} + + +const unsigned int FlowShopBenchmarkParser::getM() +{ + return M; +} + + +const unsigned int FlowShopBenchmarkParser::getN() +{ + return N; +} + + +const std::vector< std::vector > FlowShopBenchmarkParser::getP() +{ + return p; +} + + +const std::vector FlowShopBenchmarkParser::getD() +{ + return d; +} + + +void FlowShopBenchmarkParser::printOn(std::ostream & _os) const +{ + _os << "M=" << M << " N=" << N << std::endl; + _os << "*** processing times" << std::endl; + for (unsigned int i=0; i > (M,N); + d = std::vector (N); + // for each job... + for (unsigned int j=0 ; j j) + getline(inputFile, buffer, '\n'); + // due-date of the job j + getline(inputFile, buffer, '\n'); + d[j] = atoi(buffer.data()); + // processing times of the job j on each machine + getline(inputFile, buffer, '\n'); + start = buffer.find_first_not_of(" "); + for (unsigned int i=0 ; i +#include +#include + +/** + * Class to handle parameters of a flow-shop instance from a benchmark file + */ +class FlowShopBenchmarkParser +{ +public: + + /** + * Ctor + * @param _benchmarkFileName the name of the benchmark file + */ + FlowShopBenchmarkParser(const std::string _benchmarkFileName); + + + /** + * the number of machines + */ + const unsigned int getM(); + + + /** + * the number of jobs + */ + const unsigned int getN(); + + + /** + * the processing times + */ + const std::vector < std::vector < unsigned int > > getP(); + + + /** + * the due-dates + */ + const std::vector < unsigned int > getD(); + + + /** + * printing... + */ + void printOn(std::ostream & _os) const; + + +private: + + /** number of machines */ + unsigned int M; + /** number of jobs */ + unsigned int N; + /** p[i][j] = processing time of job j on machine i */ + std::vector < std::vector < unsigned int > > p; + /** d[j] = due-date of the job j */ + std::vector < unsigned int > d; + + + /** + * Initialisation of the parameters with the data contained in the benchmark file + * @param _benchmarkFileName the name of the benchmark file + */ + void init(const std::string _benchmarkFileName); + +}; + +#endif /*FLOWSHOPBENCHMARKPARSER_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopEval.cpp b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopEval.cpp new file mode 100644 index 000000000..579d0bfc8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopEval.cpp @@ -0,0 +1,64 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopEval.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + + +FlowShopEval::FlowShopEval(unsigned int _M, unsigned int _N, const std::vector< std::vector > & _p, const std::vector & _d) : + M(_M), N (_N), p(_p), d(_d) +{} + + +void FlowShopEval::operator()(FlowShop & _flowshop) +{ + FlowShopObjectiveVector objVector; + objVector[0] = makespan(_flowshop); + objVector[1] = tardiness(_flowshop); + _flowshop.objectiveVector(objVector); +} + + + +double FlowShopEval::makespan(const FlowShop & _flowshop) +{ + // completion times computation for each job on each machine + // C[i][j] = completion of the jth job of the scheduling on the ith machine + std::vector< std::vector > C = completionTime(_flowshop); + return C[M-1][_flowshop[N-1]]; +} + + +double FlowShopEval::tardiness(const FlowShop & _flowshop) +{ + // completion times computation for each job on each machine + // C[i][j] = completion of the jth job of the scheduling on the ith machine + std::vector< std::vector > C = completionTime(_flowshop); + // tardiness computation + unsigned int long sum = 0; + for (unsigned int j=0 ; j > FlowShopEval::completionTime(const FlowShop & _flowshop) { + std::vector< std::vector > C(M,N); + C[0][_flowshop[0]] = p[0][_flowshop[0]]; + for (unsigned int j=1; j +#include +#include + +/** + * Evaluation of the objective vector a (multi-objective) FlowShop object + */ +class FlowShopEval : public moeoEvalFunc +{ +public: + + /** + * Ctor + * @param _M the number of machines + * @param _N the number of jobs to schedule + * @param _p the processing times + * @param _d the due dates + */ + FlowShopEval(unsigned int _M, unsigned int _N, const std::vector< std::vector > & _p, const std::vector & _d); + + + /** + * computation of the multi-objective evaluation of a FlowShop object + * @param _flowshop the FlowShop object to evaluate + */ + void operator()(FlowShop & _flowshop); + + +private: + + /** number of machines */ + unsigned int M; + /** number of jobs */ + unsigned int N; + /** p[i][j] = processing time of job j on machine i */ + std::vector< std::vector < unsigned int > > p; + /** d[j] = due-date of the job j */ + std::vector < unsigned int > d; + + + /** + * computation of the makespan + * @param _flowshop the genotype to evaluate + */ + double makespan(const FlowShop & _flowshop); + + + /** + * computation of the tardiness + * @param _flowshop the genotype to evaluate + */ + double tardiness(const FlowShop & _flowshop); + + + /** + * computation of the completion times of a scheduling (for each job on each machine) + * C[i][j] = completion of the jth job of the scheduling on the ith machine + * @param _flowshop the genotype to evaluate + */ + std::vector< std::vector > completionTime (const FlowShop & _flowshop); + +}; + +#endif /*FLOWSHOPEVAL_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopInit.cpp b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopInit.cpp new file mode 100644 index 000000000..d3877fb64 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopInit.cpp @@ -0,0 +1,39 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopInit.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + + +FlowShopInit::FlowShopInit(unsigned int _N) : N(_N) +{} + + +void FlowShopInit::operator()(FlowShop & _flowshop) +{ + // scheduling vector + std::vector scheduling(N); + // initialisation of possible values + std::vector possibles(N); + for (unsigned int i=0 ; i +#include + +/** + * Initialization of a random genotype built by the default constructor of the FlowShop class + */ +class FlowShopInit : public eoInit +{ +public: + + /** + * Ctor + * @param _N the number of jobs to schedule + */ + FlowShopInit(unsigned int _N); + + + /** + * builds a random genotype + * @param _flowshop a genotype that has been default-constructed + */ + void operator()(FlowShop & _flowshop); + + +private: + + /** the number of jobs (size of a scheduling vector) */ + unsigned int N; + +}; + +#endif /*FLOWSHOPINIT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVector.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVector.h new file mode 100644 index 000000000..05a8f5eb7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVector.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopObjectiveVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef FLOWSHOPOBJECTIVEVECTOR_H_ +#define FLOWSHOPOBJECTIVEVECTOR_H_ + +#include +#include + +/** + * Definition of the objective vector for multi-objective flow-shop problems: a vector of doubles + */ +typedef moeoRealObjectiveVector < FlowShopObjectiveVectorTraits > FlowShopObjectiveVector; + +#endif /*FLOWSHOPOBJECTIVEVECTOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.cpp b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.cpp new file mode 100644 index 000000000..7296fdf0b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.cpp @@ -0,0 +1,32 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopObjectiveVectorTraits.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + + +bool FlowShopObjectiveVectorTraits::minimizing (int _i) +{ + // minimizing both + return true; +} + +bool FlowShopObjectiveVectorTraits::maximizing (int _i) +{ + // minimizing both + return false; +} + +unsigned int FlowShopObjectiveVectorTraits::nObjectives () +{ + // 2 objectives + return 2; +} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.h new file mode 100644 index 000000000..994304e3f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.h @@ -0,0 +1,46 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopObjectiveVectorTraits.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef FLOWSHOPOBJECTIVEVECTORTRAITS_H_ +#define FLOWSHOPOBJECTIVEVECTORTRAITS_H_ + +#include + +/** + * Definition of the objective vector traits for multi-objective flow-shop problems + */ +class FlowShopObjectiveVectorTraits : public moeoObjectiveVectorTraits +{ +public: + + /** + * Returns true if the _ith objective have to be minimzed + * @param _i index of the objective + */ + static bool minimizing (int _i); + + + /** + * Returns true if the _ith objective have to be maximzed + * @param _i index of the objective + */ + static bool maximizing (int _i); + + + /** + * Returns the number of objectives + */ + static unsigned int nObjectives (); + +}; + +#endif /*FLOWSHOPOBJECTIVEVECTORTRAITS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpCrossoverQuad.cpp b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpCrossoverQuad.cpp new file mode 100644 index 000000000..d1aee2351 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpCrossoverQuad.cpp @@ -0,0 +1,84 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopOpCrossoverQuad.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + + +std::string FlowShopOpCrossoverQuad::className() const +{ + return "FlowShopOpCrossoverQuad"; +} + + +bool FlowShopOpCrossoverQuad::operator()(FlowShop & _flowshop1, FlowShop & _flowshop2) +{ + bool oneAtLeastIsModified; + // computation of the 2 random points + unsigned int point1, point2; + do + { + point1 = rng.random(std::min(_flowshop1.size(), _flowshop2.size())); + point2 = rng.random(std::min(_flowshop1.size(), _flowshop2.size())); + } while (fabs((double) point1-point2) <= 2); + // computation of the offspring + FlowShop offspring1 = generateOffspring(_flowshop1, _flowshop2, point1, point2); + FlowShop offspring2 = generateOffspring(_flowshop2, _flowshop1, point1, point2); + // does at least one genotype has been modified ? + if ((_flowshop1 != offspring1) || (_flowshop2 != offspring2)) + { + // update + _flowshop1.value(offspring1); + _flowshop2.value(offspring2); + // at least one genotype has been modified + oneAtLeastIsModified = true; + } + else + { + // no genotype has been modified + oneAtLeastIsModified = false; + } + // return 'true' if at least one genotype has been modified + return oneAtLeastIsModified; +} + + +FlowShop FlowShopOpCrossoverQuad::generateOffspring(const FlowShop & _parent1, const FlowShop & _parent2, unsigned int _point1, unsigned int _point2) +{ + FlowShop result = _parent1; + std::vector taken_values(result.size(), false); + if (_point1 > _point2) + std::swap(_point1, _point2); + /* first parent */ + for (unsigned int i=0 ; i<=_point1 ; i++) + { + // result[i] == _parent1[i] + taken_values[_parent1[i]] = true; + } + for (unsigned int i=_point2 ; i +#include + +/** + * Quadratic crossover operator for flow-shop (modify the both genotypes) + */ +class FlowShopOpCrossoverQuad : public eoQuadOp < FlowShop > +{ +public: + + /** + * the class name (used to display statistics) + */ + std::string className() const; + + + /** + * eoQuad crossover - _flowshop1 and _flowshop2 are the (future) offspring, i.e. _copies_ of the parents + * @param _flowshop1 the first parent + * @param _flowshop2 the second parent + */ + bool operator()(FlowShop & _flowshop1, FlowShop & _flowshop2); + + +private: + + /** + * generation of an offspring by a 2 points crossover + * @param _parent1 the first parent + * @param _parent2 the second parent + * @param _point1 the first point + * @param _point2 the second point + */ + FlowShop generateOffspring(const FlowShop & _parent1, const FlowShop & _parent2, unsigned int _point1, unsigned int _point2); + +}; + +#endif /*FLOWSHOPOPCROSSOVERQUAD_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.cpp b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.cpp new file mode 100644 index 000000000..b99535c53 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.cpp @@ -0,0 +1,50 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopOpCrossoverQuad.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + + +std::string FlowShopOpMutationExchange::className() const +{ + return "FlowShopOpMutationExchange"; +} + + +bool FlowShopOpMutationExchange::operator()(FlowShop & _flowshop) +{ + bool isModified; + FlowShop result = _flowshop; + // computation of the 2 random points + unsigned int point1, point2; + do + { + point1 = rng.random(result.size()); + point2 = rng.random(result.size()); + } while (point1 == point2); + // swap + std::swap (result[point1], result[point2]); + // update (if necessary) + if (result != _flowshop) + { + // update + _flowshop.value(result); + // the genotype has been modified + isModified = true; + } + else + { + // the genotype has not been modified + isModified = false; + } + // return 'true' if the genotype has been modified + return isModified; +} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.h new file mode 100644 index 000000000..e63a3884b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.h @@ -0,0 +1,40 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopOpCrossoverQuad.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef FLOWSHOPOPMUTATIONEXCHANGE_H_ +#define FLOWSHOPOPMUTATIONEXCHANGE_H_ + +#include +#include + +/** + * Exchange mutation operator for the flow-shop + */ +class FlowShopOpMutationExchange : public eoMonOp +{ +public: + + /** + * the class name (used to display statistics) + */ + std::string className() const; + + + /** + * modifies the parent with an exchange mutation + * @param _flowshop the parent genotype (will be modified) + */ + bool operator()(FlowShop & _flowshop); + +}; + +#endif /*FLOWSHOPOPMUTATIONEXCHANGE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.cpp b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.cpp new file mode 100644 index 000000000..4da8d0b09 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.cpp @@ -0,0 +1,60 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopOpMutationShift.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + + +std::string FlowShopOpMutationShift::className() const +{ + return "FlowShopOpMutationShift"; +} + + +bool FlowShopOpMutationShift::operator()(FlowShop & _flowshop) +{ + bool isModified; + int direction; + unsigned int tmp; + FlowShop result = _flowshop; + // computation of the 2 random points + unsigned int point1, point2; + do + { + point1 = rng.random(result.size()); + point2 = rng.random(result.size()); + } while (point1 == point2); + // direction + if (point1 < point2) + direction = 1; + else + direction = -1; + // mutation + tmp = result[point1]; + for (unsigned int i=point1 ; i!=point2 ; i+=direction) + result[i] = result[i+direction]; + result[point2] = tmp; + // update (if necessary) + if (result != _flowshop) + { + // update + _flowshop.value(result); + // the genotype has been modified + isModified = true; + } + else + { + // the genotype has not been modified + isModified = false; + } + // return 'true' if the genotype has been modified + return isModified; +} diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.h new file mode 100644 index 000000000..cc6ecdeee --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.h @@ -0,0 +1,40 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopOpMutationShift.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef FLOWSHOPOPMUTATIONSHIFT_H_ +#define FLOWSHOPOPMUTATIONSHIFT_H_ + +#include +#include + +/** + * Shift mutation operator for flow-shop + */ +class FlowShopOpMutationShift : public eoMonOp < FlowShop > +{ +public: + + /** + * the class name (used to display statistics) + */ + std::string className() const; + + + /** + * modifies the parent with a shift mutation + * @param _flowshop the parent genotype (will be modified) + */ + bool operator()(FlowShop & _flowshop); + +}; + +#endif /*FLOWSHOPOPMUTATIONSHIFT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_01.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_01.txt new file mode 100644 index 000000000..2c2f78d86 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_01.txt @@ -0,0 +1,63 @@ +20 +5 +873654221 +0 +468 +54 79 16 66 58 +1 +325 +83 3 89 58 56 +2 +923 +15 11 49 31 20 +3 +513 +71 99 15 68 85 +4 +1070 +77 56 89 78 53 +5 +690 +36 70 45 91 35 +6 +602 +53 99 60 13 53 +7 +289 +38 60 23 59 41 +8 +873 +27 5 57 49 69 +9 +342 +87 56 64 85 13 +10 +764 +76 3 7 85 86 +11 +268 +91 61 1 9 72 +12 +1158 +14 73 63 39 8 +13 +646 +29 75 41 41 49 +14 +1111 +12 47 63 56 47 +15 +965 +77 14 47 40 87 +16 +703 +32 21 26 54 58 +17 +1205 +87 86 75 77 18 +18 +334 +68 5 77 51 68 +19 +1111 +94 77 40 31 28 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_02.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_02.txt new file mode 100644 index 000000000..c82c2d033 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_02.txt @@ -0,0 +1,63 @@ +20 +5 +379008056 +0 +517 +26 59 78 88 69 +1 +461 +38 62 90 54 30 +2 +832 +27 44 64 47 61 +3 +653 +88 10 49 83 35 +4 +933 +95 23 47 84 53 +5 +811 +55 64 20 9 98 +6 +966 +54 47 61 30 94 +7 +448 +63 68 93 11 33 +8 +577 +23 54 36 92 77 +9 +1122 +45 9 47 63 31 +10 +666 +86 30 70 62 54 +11 +1189 +43 31 54 75 71 +12 +470 +43 92 87 48 78 +13 +475 +40 7 13 23 9 +14 +462 +37 14 40 85 79 +15 +866 +54 95 34 23 51 +16 +392 +35 76 55 4 76 +17 +310 +59 82 13 31 56 +18 +719 +43 91 11 13 80 +19 +1221 +50 37 5 98 72 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_01.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_01.txt new file mode 100644 index 000000000..96bca095d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_01.txt @@ -0,0 +1,63 @@ +20 +10 +587595453 +0 +1250 +74 28 89 60 54 92 9 4 25 15 +1 +1371 +21 3 52 88 66 11 8 18 15 84 +2 +637 +58 27 56 26 12 54 88 25 91 8 +3 +616 +4 61 13 58 57 97 72 28 49 30 +4 +917 +21 34 7 76 70 57 27 95 56 95 +5 +937 +28 76 32 98 82 53 22 51 10 79 +6 +1435 +58 64 32 29 99 65 50 84 62 9 +7 +1197 +83 87 98 47 84 77 2 18 70 91 +8 +1301 +31 54 46 79 16 51 49 6 76 76 +9 +637 +61 98 60 26 41 36 82 90 99 26 +10 +749 +94 76 23 19 23 53 93 69 58 42 +11 +1223 +44 41 87 48 11 19 96 61 83 66 +12 +887 +97 70 7 95 68 54 43 57 84 70 +13 +1316 +94 43 36 78 58 86 13 5 64 91 +14 +1330 +66 42 26 77 30 40 60 75 74 67 +15 +1380 +6 79 85 90 5 56 11 4 14 3 +16 +767 +37 88 7 24 5 79 37 38 18 98 +17 +574 +22 15 34 10 39 74 91 28 48 4 +18 +1398 +99 49 36 85 58 24 84 4 96 71 +19 +1179 +83 72 48 55 31 3 67 80 86 62 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_02.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_02.txt new file mode 100644 index 000000000..bf23361f5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_02.txt @@ -0,0 +1,63 @@ +20 +10 +1401007982 +0 +1279 +80 59 59 31 30 53 93 90 65 64 +1 +1481 +13 83 70 64 88 19 79 92 97 38 +2 +1157 +64 85 76 11 14 99 88 35 27 44 +3 +1391 +77 85 10 9 22 62 77 13 25 46 +4 +763 +17 70 65 32 93 88 94 75 61 66 +5 +1456 +78 35 19 58 48 93 39 55 24 31 +6 +900 +82 2 77 98 10 34 74 80 97 48 +7 +1047 +4 76 86 95 7 72 46 67 61 27 +8 +1355 +72 46 21 25 14 42 17 3 75 82 +9 +1262 +93 72 75 4 91 65 30 93 92 51 +10 +1329 +68 69 96 45 5 39 62 54 73 90 +11 +562 +25 46 3 60 43 79 77 67 21 63 +12 +684 +67 3 50 87 30 9 43 25 29 85 +13 +567 +80 57 57 31 79 26 98 77 3 36 +14 +765 +43 71 66 1 39 72 48 38 96 69 +15 +808 +93 77 84 96 34 29 14 98 51 67 +16 +999 +21 33 98 22 77 36 45 96 26 81 +17 +548 +33 49 55 95 81 48 25 20 44 18 +18 +577 +14 59 70 73 11 57 98 15 56 81 +19 +704 +30 82 32 77 10 95 30 36 31 72 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_20_01.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_20_01.txt new file mode 100644 index 000000000..2ef8f0bee --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_20_01.txt @@ -0,0 +1,63 @@ +20 +20 +479340445 +0 +1696 +50 78 36 85 9 75 46 73 71 7 49 3 60 12 75 31 70 20 88 9 +1 +1273 +90 56 43 88 92 64 94 3 49 40 49 53 88 47 19 61 78 78 30 41 +2 +1546 +39 9 10 60 98 96 6 56 36 33 15 59 15 46 60 47 41 38 34 22 +3 +1882 +34 43 19 98 44 95 19 73 87 64 18 7 26 17 87 32 9 26 33 34 +4 +1117 +66 84 55 4 51 22 20 80 8 5 65 65 11 43 27 34 47 64 21 83 +5 +1181 +81 73 48 99 8 41 51 82 25 25 55 58 16 16 48 69 94 62 7 55 +6 +1416 +27 66 85 53 31 26 85 36 76 89 1 24 55 91 72 32 26 11 94 3 +7 +1635 +48 38 70 21 15 33 92 98 73 95 79 55 59 94 88 1 65 38 10 8 +8 +1723 +46 83 82 33 47 68 43 90 80 58 10 26 81 73 48 1 17 68 73 75 +9 +1932 +68 57 39 53 31 9 75 46 6 83 37 40 53 89 59 80 42 37 85 30 +10 +1219 +48 97 91 63 80 81 70 10 6 28 77 89 92 12 74 19 59 74 82 57 +11 +1521 +92 52 82 18 83 28 70 46 33 35 80 94 23 58 86 57 80 9 62 65 +12 +1322 +78 77 85 45 20 61 36 65 79 74 79 51 55 25 49 98 7 65 99 89 +13 +1057 +84 13 17 29 84 69 31 83 10 5 84 74 79 24 94 37 75 16 67 60 +14 +1922 +93 12 6 43 69 37 76 75 93 6 93 54 13 55 15 31 63 38 61 90 +15 +1130 +39 2 54 41 49 57 63 47 65 9 21 86 89 1 95 51 96 85 10 84 +16 +1411 +43 65 87 80 93 36 89 61 26 3 85 22 2 67 41 66 7 50 4 74 +17 +1840 +1 93 85 4 39 80 46 28 73 2 64 83 17 3 94 38 10 62 70 17 +18 +1741 +65 39 4 31 13 96 25 59 42 35 46 19 97 1 15 62 47 39 31 2 +19 +1377 +87 1 72 19 88 74 88 22 18 41 35 44 41 71 71 72 38 97 49 19 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_05_01.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_05_01.txt new file mode 100644 index 000000000..5f4b46f37 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_05_01.txt @@ -0,0 +1,153 @@ +50 +5 +1328042058 +0 +1290 +75 26 48 26 77 +1 +2352 +87 37 4 67 94 +2 +362 +13 25 92 4 9 +3 +305 +11 95 92 14 57 +4 +262 +41 49 72 93 29 +5 +1250 +43 12 45 54 79 +6 +2170 +93 59 5 21 55 +7 +1601 +69 17 98 20 73 +8 +2039 +80 46 93 6 65 +9 +1628 +13 20 17 18 86 +10 +483 +24 52 79 75 25 +11 +285 +72 44 11 25 39 +12 +1092 +38 92 16 16 76 +13 +936 +81 75 89 77 24 +14 +2349 +83 95 81 28 38 +15 +473 +88 33 92 24 5 +16 +2325 +26 10 45 15 91 +17 +747 +6 45 61 77 29 +18 +970 +89 2 39 36 22 +19 +434 +67 62 28 16 27 +20 +1258 +70 62 94 32 39 +21 +2405 +30 82 87 46 31 +22 +862 +89 29 23 21 46 +23 +298 +30 29 1 81 18 +24 +2014 +68 94 55 28 93 +25 +2608 +21 20 91 70 58 +26 +1737 +78 42 67 89 85 +27 +2214 +46 80 91 54 58 +28 +1910 +99 94 4 96 97 +29 +2245 +10 35 60 62 10 +30 +2211 +17 8 38 46 79 +31 +547 +23 41 25 60 93 +32 +2237 +83 65 90 19 2 +33 +1327 +47 4 93 97 87 +34 +700 +86 71 13 13 17 +35 +1011 +18 30 65 7 18 +36 +2001 +67 14 25 44 10 +37 +1230 +46 32 34 7 50 +38 +1020 +4 50 47 73 8 +39 +1918 +14 30 98 15 26 +40 +1001 +4 27 91 66 14 +41 +1383 +20 98 11 70 21 +42 +1229 +88 39 46 97 15 +43 +2594 +50 84 50 33 10 +44 +403 +84 65 77 97 85 +45 +1515 +58 12 5 64 46 +46 +431 +93 58 14 73 42 +47 +1971 +76 45 47 28 18 +48 +939 +50 49 80 4 36 +49 +2028 +30 15 45 87 2 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_10_01.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_10_01.txt new file mode 100644 index 000000000..17f3cb117 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_10_01.txt @@ -0,0 +1,153 @@ +50 +10 +1958948863 +0 +793 +46 61 3 51 37 79 83 22 27 24 +1 +2280 +52 87 1 24 16 93 87 29 92 47 +2 +939 +79 51 58 21 42 68 38 99 75 39 +3 +2591 +45 25 85 57 47 75 38 25 94 66 +4 +1540 +97 73 33 69 94 37 86 98 18 41 +5 +2386 +10 93 71 51 14 44 67 55 41 46 +6 +812 +44 28 58 50 94 34 23 80 37 24 +7 +2524 +24 90 56 51 34 39 19 82 58 23 +8 +1370 +85 94 64 21 72 76 97 33 56 68 +9 +1319 +75 59 43 19 36 62 78 68 20 50 +10 +2388 +66 64 48 63 88 74 66 47 2 93 +11 +961 +49 2 69 91 51 28 67 74 39 22 +12 +2831 +95 16 96 11 41 78 7 26 91 64 +13 +2790 +61 35 35 6 71 43 23 61 81 81 +14 +2076 +19 53 82 31 94 98 67 95 33 94 +15 +2519 +47 40 53 63 99 83 8 55 14 97 +16 +1981 +84 81 64 36 11 91 77 11 88 54 +17 +695 +13 26 11 39 97 27 71 42 22 82 +18 +2133 +11 85 61 57 44 6 85 72 36 11 +19 +1871 +19 4 36 47 77 82 29 14 65 91 +20 +1495 +98 4 53 56 69 60 49 8 79 23 +21 +754 +2 10 87 65 91 44 3 98 23 32 +22 +783 +85 63 88 59 38 43 94 90 66 26 +23 +984 +44 96 10 4 25 76 76 36 5 22 +24 +2004 +7 55 32 10 87 99 95 75 15 12 +25 +2269 +73 71 38 12 7 66 48 69 51 23 +26 +1771 +19 66 25 62 66 11 4 26 2 34 +27 +2030 +69 94 24 43 54 35 37 24 81 87 +28 +2603 +12 7 90 49 86 52 82 55 12 59 +29 +2150 +73 15 7 54 49 8 57 98 40 2 +30 +2157 +85 11 11 87 3 40 61 86 59 38 +31 +2187 +23 99 49 29 48 62 6 30 32 84 +32 +937 +53 37 2 2 44 25 97 92 16 62 +33 +728 +16 50 76 18 93 24 5 94 87 10 +34 +510 +88 56 17 75 37 30 27 66 78 11 +35 +2786 +8 69 32 39 82 1 95 47 41 93 +36 +2134 +26 22 39 77 31 73 46 3 43 57 +37 +1046 +42 56 9 69 59 27 92 41 94 81 +38 +2849 +58 67 83 15 78 16 46 41 1 10 +39 +1956 +63 63 69 78 33 91 52 47 93 40 +40 +2456 +7 96 67 68 36 33 8 89 22 62 +41 +1105 +2 74 28 37 3 11 11 28 93 49 +42 +1560 +44 4 88 22 58 99 7 39 62 90 +43 +1745 +38 42 23 41 10 2 54 80 53 34 +44 +2216 +24 40 91 92 98 60 72 47 30 11 +45 +1157 +76 30 71 67 6 90 57 57 34 81 +46 +1317 +85 93 3 24 44 36 85 74 27 51 +47 +2372 +61 36 26 87 62 62 22 38 30 21 +48 +777 +32 25 41 91 24 15 87 59 54 39 +49 +972 +90 87 96 31 94 3 65 5 77 27 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_20_01.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_20_01.txt new file mode 100644 index 000000000..23ccddab3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_20_01.txt @@ -0,0 +1,153 @@ +50 +20 +1539989115 +0 +2509 +52 63 82 16 63 94 79 22 80 96 53 54 71 27 95 3 92 80 61 74 +1 +2039 +95 99 21 26 55 34 21 6 13 3 19 67 90 93 53 80 62 38 86 38 +2 +3096 +42 69 79 46 59 89 93 24 64 50 99 25 59 49 54 78 11 55 16 4 +3 +2950 +75 70 95 66 35 62 32 55 77 57 62 77 82 63 22 32 83 34 42 31 +4 +1249 +44 53 46 76 21 47 8 48 17 66 88 38 22 65 84 53 87 85 14 62 +5 +2481 +57 21 23 31 59 66 45 57 78 84 93 98 88 34 54 43 66 44 92 39 +6 +3193 +89 10 40 36 78 76 37 78 82 98 34 96 35 10 2 85 98 47 67 97 +7 +3253 +53 31 95 8 25 15 78 5 4 55 72 20 49 56 80 19 42 66 77 57 +8 +2123 +84 80 87 37 30 18 26 50 72 70 42 15 78 51 84 48 23 19 46 9 +9 +2390 +62 18 37 21 38 54 98 83 93 32 65 36 69 97 66 49 45 66 41 54 +10 +1764 +91 5 24 3 78 24 17 70 68 31 39 65 76 52 25 66 52 61 78 13 +11 +2940 +14 18 24 76 79 55 25 21 25 64 79 97 2 46 16 22 6 60 3 47 +12 +1635 +95 17 65 67 58 96 21 71 67 11 9 27 14 16 79 37 3 98 72 6 +13 +3171 +89 71 62 5 44 10 28 58 80 9 26 25 3 50 90 51 64 82 95 70 +14 +2670 +4 90 19 47 38 12 68 36 43 32 72 61 22 96 51 82 55 79 53 19 +15 +2932 +95 93 67 72 76 96 24 50 93 58 29 24 26 85 29 59 97 71 59 97 +16 +2054 +2 14 66 66 70 53 62 31 21 98 36 97 44 61 29 88 83 28 34 41 +17 +3238 +97 49 6 56 72 92 89 86 33 95 48 61 1 76 90 77 42 74 66 1 +18 +2466 +68 52 65 95 85 77 60 29 14 25 57 75 4 30 83 19 81 27 42 57 +19 +2384 +20 7 59 49 8 6 64 30 30 4 95 92 16 90 83 32 92 33 63 60 +20 +3473 +33 78 2 47 10 91 38 93 59 45 93 73 55 42 19 52 68 13 27 62 +21 +3290 +51 57 67 26 84 14 90 49 83 60 79 21 43 88 95 9 46 9 92 14 +22 +2086 +98 41 82 81 42 41 87 83 85 87 88 29 87 37 87 96 56 12 8 90 +23 +2560 +8 75 90 56 67 30 1 89 85 31 77 3 35 43 12 23 88 51 65 76 +24 +3253 +85 98 30 76 20 85 99 44 70 1 94 96 76 88 34 64 50 16 34 12 +25 +3205 +86 93 63 66 24 17 34 38 35 96 39 51 98 91 23 22 13 49 6 89 +26 +2534 +73 33 5 36 75 23 9 62 2 22 74 26 78 14 44 37 23 83 42 37 +27 +2039 +4 75 93 53 23 60 22 45 76 95 46 44 81 63 30 3 13 48 39 35 +28 +2273 +40 68 53 26 33 76 74 22 46 73 17 56 48 65 82 52 49 13 2 91 +29 +2062 +98 33 85 52 60 39 14 85 72 77 30 31 25 74 83 44 18 78 7 69 +30 +1909 +12 60 81 29 20 85 14 39 69 30 62 64 81 71 42 11 50 96 85 55 +31 +2432 +59 82 73 36 75 10 84 98 46 88 77 38 27 8 56 21 94 77 32 48 +32 +2624 +44 24 34 68 83 65 75 56 3 14 43 44 84 39 89 85 71 68 14 56 +33 +3325 +46 99 74 21 26 15 37 68 57 22 98 46 59 95 38 6 64 88 74 84 +34 +3427 +2 4 13 71 92 55 32 84 71 93 48 66 98 82 96 40 31 77 59 22 +35 +1318 +41 97 78 61 29 41 29 77 77 48 14 31 14 17 10 68 21 76 95 51 +36 +1539 +28 24 35 71 39 28 32 67 33 10 45 48 32 38 3 30 2 73 48 43 +37 +3223 +83 50 20 69 14 93 89 53 49 7 25 27 95 69 53 35 63 92 37 50 +38 +1703 +28 55 16 28 74 88 12 46 59 14 98 82 30 17 97 58 58 72 59 62 +39 +1051 +21 91 48 86 66 27 47 24 82 91 30 51 13 24 11 31 36 87 4 61 +40 +1512 +80 46 12 27 86 77 19 52 59 5 90 90 68 66 65 11 64 66 42 10 +41 +2589 +71 58 11 41 10 81 97 96 70 43 92 63 19 75 47 11 52 98 93 87 +42 +3248 +4 17 80 86 27 19 7 2 76 30 35 85 57 52 76 6 8 40 32 99 +43 +2047 +60 47 9 55 8 76 12 88 10 79 13 36 65 59 22 59 94 31 30 40 +44 +3333 +34 82 24 17 7 55 43 33 65 39 75 69 13 4 17 64 51 75 16 91 +45 +1760 +55 6 76 62 97 67 89 27 19 34 55 67 63 73 14 65 36 45 95 64 +46 +2333 +53 15 32 96 84 65 14 49 77 77 80 81 26 56 11 23 82 98 58 62 +47 +2400 +96 91 35 59 56 8 33 78 86 81 67 18 96 19 69 80 30 90 12 53 +48 +2142 +37 74 66 53 61 18 56 82 21 11 3 81 53 39 91 75 17 4 95 33 +49 +1231 +37 42 48 93 9 56 57 65 75 10 93 72 94 51 53 63 21 23 21 16 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_05_01.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_05_01.txt new file mode 100644 index 000000000..f0d8d9b38 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_05_01.txt @@ -0,0 +1,303 @@ +100 +5 +896678084 +0 +1682 +73 34 8 62 10 +1 +4503 +84 46 37 86 60 +2 +1249 +57 97 38 46 34 +3 +4984 +52 88 30 3 96 +4 +2923 +66 52 20 22 79 +5 +2401 +67 49 68 33 62 +6 +1978 +33 88 4 90 6 +7 +5318 +62 15 78 94 15 +8 +4769 +65 55 41 98 94 +9 +2093 +7 6 2 9 39 +10 +2438 +6 77 62 84 85 +11 +3143 +31 49 38 69 17 +12 +698 +42 46 95 26 55 +13 +621 +82 14 82 22 59 +14 +2463 +48 35 96 49 48 +15 +3865 +45 40 56 90 11 +16 +1563 +79 1 61 81 63 +17 +1461 +86 70 34 12 98 +18 +2285 +10 46 1 54 33 +19 +4381 +47 28 9 53 49 +20 +1057 +67 73 57 18 41 +21 +3190 +86 24 80 56 82 +22 +4493 +64 44 58 43 12 +23 +4604 +38 55 7 50 61 +24 +1592 +13 94 56 82 94 +25 +4645 +69 52 31 18 80 +26 +2729 +4 40 92 89 84 +27 +1925 +21 76 84 49 18 +28 +3843 +25 92 25 20 68 +29 +4188 +74 22 20 76 6 +30 +2635 +11 46 65 90 98 +31 +3773 +85 19 36 64 47 +32 +269 +50 18 67 89 6 +33 +307 +21 50 96 16 55 +34 +907 +93 31 35 3 73 +35 +288 +98 41 59 12 70 +36 +5211 +91 51 76 45 56 +37 +331 +26 73 66 67 46 +38 +1499 +4 22 83 97 50 +39 +1119 +28 21 37 80 90 +40 +4399 +61 79 33 97 89 +41 +1306 +8 93 2 92 88 +42 +1149 +55 98 95 56 50 +43 +3919 +68 89 20 50 99 +44 +3875 +30 44 84 95 41 +45 +3485 +26 64 43 25 36 +46 +2800 +81 93 4 52 16 +47 +1893 +95 66 44 21 84 +48 +2341 +49 14 74 47 98 +49 +874 +6 10 92 4 44 +50 +3355 +82 36 55 67 42 +51 +345 +71 36 98 62 43 +52 +1530 +61 69 8 63 62 +53 +3516 +84 79 30 25 49 +54 +3194 +29 90 18 3 22 +55 +985 +44 51 28 55 16 +56 +1638 +83 81 54 87 14 +57 +2970 +12 16 68 84 55 +58 +4265 +54 28 42 28 45 +59 +3494 +19 26 28 73 20 +60 +5134 +52 97 12 8 35 +61 +3520 +59 33 57 38 89 +62 +3570 +74 77 81 80 7 +63 +1335 +42 68 19 53 64 +64 +313 +60 28 16 70 36 +65 +1031 +43 46 88 9 5 +66 +4360 +80 16 75 87 63 +67 +2814 +34 96 11 33 8 +68 +571 +74 59 57 11 76 +69 +538 +46 56 99 65 95 +70 +2856 +40 4 4 92 40 +71 +747 +27 52 51 34 51 +72 +3321 +79 89 26 64 98 +73 +612 +1 84 6 96 77 +74 +4517 +98 42 16 67 92 +75 +1532 +44 37 71 54 35 +76 +2848 +8 90 52 26 3 +77 +4701 +55 51 96 32 56 +78 +263 +55 84 89 10 1 +79 +5340 +27 16 79 91 17 +80 +3979 +69 39 91 90 70 +81 +4804 +79 16 57 31 45 +82 +1574 +97 37 2 7 87 +83 +3644 +39 19 33 6 37 +84 +1512 +54 15 42 77 70 +85 +4445 +75 68 1 91 84 +86 +3253 +88 7 40 42 69 +87 +5334 +87 58 76 5 7 +88 +2338 +97 47 85 46 5 +89 +1071 +4 27 99 54 97 +90 +2398 +79 82 65 56 47 +91 +1675 +59 72 98 1 12 +92 +4974 +7 1 78 24 54 +93 +1785 +89 7 61 62 84 +94 +3391 +61 22 83 47 49 +95 +4517 +42 40 30 63 89 +96 +2909 +79 59 14 39 86 +97 +2733 +85 16 62 63 37 +98 +853 +66 7 41 95 52 +99 +4261 +99 72 91 45 85 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_10_01.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_10_01.txt new file mode 100644 index 000000000..480d6be62 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_10_01.txt @@ -0,0 +1,303 @@ +100 +10 +1539989115 +0 +3490 +52 82 63 79 80 53 71 95 92 61 +1 +2540 +95 21 55 21 13 19 90 53 62 86 +2 +4675 +42 79 59 93 64 99 59 54 11 16 +3 +4381 +75 95 35 32 77 62 82 22 83 42 +4 +945 +44 46 21 8 17 88 22 84 87 14 +5 +3435 +57 23 59 45 78 93 88 54 66 92 +6 +4873 +89 40 78 37 82 34 35 2 98 67 +7 +4993 +53 95 25 78 4 72 49 80 42 77 +8 +2710 +84 87 30 26 72 42 78 84 23 46 +9 +3251 +62 37 38 98 93 65 69 66 45 41 +10 +1985 +91 24 78 17 68 39 76 25 52 78 +11 +4361 +14 24 79 25 25 79 2 16 6 3 +12 +1726 +95 65 58 21 67 9 14 79 3 72 +13 +4828 +89 62 44 28 80 26 3 90 64 95 +14 +3816 +4 19 38 68 43 72 22 51 55 53 +15 +4345 +95 67 76 24 93 29 26 29 97 59 +16 +2572 +2 66 70 62 21 36 44 29 83 34 +17 +4963 +97 6 72 89 33 48 1 90 42 66 +18 +3403 +68 65 85 60 14 57 4 83 81 42 +19 +3238 +20 59 8 64 30 95 16 83 92 63 +20 +5437 +33 2 10 38 59 93 55 19 68 27 +21 +5068 +51 67 84 90 83 79 43 95 46 92 +22 +2635 +98 82 42 87 85 88 87 87 56 8 +23 +3593 +8 90 67 1 85 77 35 12 88 65 +24 +4993 +85 30 20 99 70 94 76 34 50 34 +25 +4897 +86 63 24 34 35 39 98 23 13 6 +26 +3542 +73 5 75 9 2 74 78 44 23 42 +27 +2541 +4 93 23 22 76 46 81 30 13 39 +28 +3014 +40 53 33 74 46 17 48 82 49 2 +29 +2587 +98 85 60 14 72 30 25 83 18 7 +30 +2278 +12 81 20 14 69 62 81 42 50 85 +31 +3336 +59 73 75 84 46 77 27 56 94 32 +32 +3723 +44 34 83 75 3 43 84 89 71 14 +33 +5138 +46 74 26 37 57 98 59 38 64 74 +34 +5345 +2 13 92 32 71 48 98 96 31 59 +35 +1084 +41 78 29 29 77 14 14 10 21 95 +36 +1531 +28 35 39 32 33 45 32 3 2 48 +37 +4932 +83 20 14 89 49 25 95 53 63 37 +38 +1863 +28 16 74 12 59 98 30 97 58 59 +39 +545 +21 48 66 47 82 30 13 11 36 4 +40 +1477 +80 12 86 19 59 90 68 65 64 42 +41 +3653 +71 11 10 97 70 92 19 47 52 93 +42 +4983 +4 80 27 7 76 35 57 76 8 32 +43 +2558 +60 9 8 12 10 13 65 22 94 30 +44 +5156 +34 24 7 43 65 75 13 17 51 16 +45 +1977 +55 76 97 89 19 55 63 14 36 95 +46 +3136 +53 32 84 14 77 80 26 11 82 58 +47 +3271 +96 35 56 33 86 67 96 69 30 12 +48 +2748 +37 66 61 56 21 3 53 91 17 95 +49 +909 +37 48 9 57 75 93 94 53 21 21 +50 +4366 +63 16 94 22 96 54 27 3 80 74 +51 +4943 +99 26 34 6 3 67 93 80 38 38 +52 +4596 +69 46 89 24 50 25 49 78 55 4 +53 +1793 +70 66 62 55 57 77 63 32 34 31 +54 +4596 +53 76 47 48 66 38 65 53 85 62 +55 +3717 +21 31 66 57 84 98 34 43 44 39 +56 +4624 +10 36 76 78 98 96 10 85 47 97 +57 +5212 +31 8 15 5 55 20 56 19 66 57 +58 +5604 +80 37 18 50 70 15 51 48 19 9 +59 +2110 +18 21 54 83 32 36 97 49 66 54 +60 +2568 +5 3 24 70 31 65 52 66 61 13 +61 +5330 +18 76 55 21 64 97 46 22 60 47 +62 +676 +17 67 96 71 11 27 16 37 98 6 +63 +1603 +71 5 10 58 9 25 50 51 82 70 +64 +1085 +90 47 12 36 32 61 96 82 79 19 +65 +5128 +93 72 96 50 58 24 85 59 71 97 +66 +938 +14 66 53 31 98 97 61 88 28 41 +67 +4778 +49 56 92 86 95 61 76 77 74 1 +68 +1986 +52 95 77 29 25 75 30 19 27 57 +69 +2115 +7 49 6 30 4 92 90 32 33 60 +70 +616 +78 47 91 93 45 73 42 52 13 62 +71 +534 +57 26 14 49 60 21 88 9 9 14 +72 +1231 +41 81 41 83 87 29 37 96 12 90 +73 +3376 +75 56 30 89 31 3 43 23 51 76 +74 +2922 +98 76 85 44 1 96 88 64 16 12 +75 +2152 +93 66 17 38 96 51 91 22 49 89 +76 +1813 +33 36 23 62 22 26 14 37 83 37 +77 +3561 +75 53 60 45 95 44 63 3 48 35 +78 +4603 +68 26 76 22 73 56 65 52 13 91 +79 +2813 +33 52 39 85 77 31 74 44 78 69 +80 +528 +60 29 85 39 30 64 71 11 96 55 +81 +1112 +82 36 10 98 88 38 8 21 77 48 +82 +4387 +24 68 65 56 14 44 39 85 68 56 +83 +4573 +99 21 15 68 22 46 95 6 88 84 +84 +5585 +4 71 55 84 93 66 82 40 77 22 +85 +2680 +97 61 41 77 48 31 17 68 76 51 +86 +3262 +24 71 28 67 10 48 38 30 73 43 +87 +3913 +50 69 93 53 7 27 69 35 92 50 +88 +1749 +55 28 88 46 14 82 17 58 72 62 +89 +2369 +91 86 27 24 91 51 24 31 87 61 +90 +888 +46 27 77 52 5 90 66 11 66 10 +91 +3107 +58 41 81 96 43 63 75 11 98 87 +92 +4964 +17 86 19 2 30 85 52 6 40 99 +93 +5249 +47 55 76 88 79 36 59 59 31 40 +94 +5632 +82 17 55 33 39 69 4 64 75 91 +95 +893 +6 62 67 27 34 67 73 65 45 64 +96 +3432 +15 96 65 49 77 81 56 23 98 62 +97 +5507 +91 59 8 78 81 18 19 80 90 53 +98 +2007 +74 53 18 82 11 81 39 75 4 33 +99 +5336 +42 93 56 65 10 72 51 63 23 16 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_20_01.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_20_01.txt new file mode 100644 index 000000000..f063c0f7c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_20_01.txt @@ -0,0 +1,303 @@ +100 +20 +450926852 +0 +1420 +12 27 24 42 5 27 51 48 42 31 48 51 8 1 1 28 4 44 6 57 +1 +1890 +72 97 57 16 42 69 9 44 18 49 92 84 37 77 59 81 40 6 49 88 +2 +5212 +29 53 68 44 47 38 22 73 31 78 43 28 33 92 53 96 5 18 84 88 +3 +2835 +16 16 58 75 47 66 15 95 18 23 35 63 4 57 22 99 37 51 72 43 +4 +4466 +22 36 76 32 47 21 84 72 55 37 7 86 8 46 10 79 80 77 39 25 +5 +5004 +61 28 70 66 78 65 38 12 82 34 51 99 38 75 48 97 46 47 51 81 +6 +1562 +69 50 72 31 94 3 71 30 64 43 85 27 97 2 94 15 14 27 77 3 +7 +1927 +71 41 56 6 18 7 11 22 36 7 66 24 75 14 46 6 81 17 59 3 +8 +2807 +86 42 56 6 14 10 45 25 48 69 87 36 76 14 57 77 16 42 97 78 +9 +2057 +16 86 55 52 97 11 48 92 74 97 71 83 93 79 55 98 10 84 5 97 +10 +5762 +54 2 89 7 54 41 29 5 17 15 16 24 69 64 66 5 79 3 83 74 +11 +5182 +53 45 23 92 73 64 31 44 60 38 40 54 10 8 69 51 35 69 51 71 +12 +5558 +64 86 42 45 94 9 14 90 18 80 22 34 25 73 7 51 41 3 9 50 +13 +2591 +96 43 26 70 17 15 56 35 88 78 12 49 40 15 13 60 83 6 9 70 +14 +4353 +79 92 87 72 97 71 59 24 37 89 2 43 88 71 64 17 13 94 59 23 +15 +4442 +68 73 17 48 7 86 35 64 29 95 90 5 90 6 83 98 93 58 30 43 +16 +2375 +98 99 38 86 94 2 7 82 19 1 63 70 57 54 39 46 55 65 86 51 +17 +3311 +87 84 24 63 94 26 20 7 51 18 52 56 39 59 46 87 48 36 49 97 +18 +2369 +40 83 82 61 68 57 48 34 20 11 15 71 29 49 59 44 35 28 46 57 +19 +4728 +74 61 55 92 4 78 88 91 7 11 6 12 97 38 36 18 75 68 13 77 +20 +5437 +22 7 47 73 60 84 54 59 43 92 18 30 51 21 69 71 66 73 45 90 +21 +3616 +23 8 7 49 70 20 30 5 77 99 87 77 97 60 47 93 82 81 51 58 +22 +4472 +47 62 99 53 68 21 81 47 95 81 66 55 5 8 83 97 3 12 68 75 +23 +2738 +55 3 89 20 22 3 2 96 92 79 7 92 75 35 25 44 79 89 82 4 +24 +1604 +21 21 20 97 17 39 1 7 27 53 43 78 91 81 12 18 78 53 6 12 +25 +3121 +90 50 65 58 59 64 78 53 70 47 27 79 80 96 28 59 48 14 99 2 +26 +2296 +68 71 3 59 98 51 8 60 91 48 78 52 81 61 30 9 99 88 12 4 +27 +2107 +14 95 45 29 55 83 8 77 74 32 80 19 60 89 49 45 91 78 8 28 +28 +5637 +42 70 89 98 76 12 71 61 62 58 73 16 97 58 81 78 29 63 36 54 +29 +1686 +41 60 96 61 3 16 60 14 80 33 86 21 14 32 56 67 87 81 24 39 +30 +2186 +40 4 16 83 21 3 41 88 85 65 82 37 2 59 96 65 27 29 82 30 +31 +5311 +63 58 42 8 10 1 39 97 8 86 33 85 55 89 89 50 2 15 73 71 +32 +3210 +23 16 70 83 11 88 8 92 39 60 92 56 97 99 73 87 48 81 66 89 +33 +1223 +75 30 69 73 44 80 96 65 85 47 8 29 60 7 52 29 33 84 69 33 +34 +2856 +4 80 77 2 29 77 3 73 83 89 87 56 8 79 12 80 92 36 71 85 +35 +4618 +31 71 46 56 43 2 79 19 76 40 64 23 30 38 98 14 15 8 70 2 +36 +1981 +87 59 20 7 60 14 48 99 31 72 7 19 87 1 12 70 55 60 61 69 +37 +2755 +25 75 71 15 14 60 23 92 12 54 26 52 42 67 40 10 24 24 42 20 +38 +1976 +47 52 91 55 46 45 38 19 69 29 79 39 16 63 70 30 59 57 77 64 +39 +1153 +70 25 8 3 3 39 85 66 26 57 49 4 56 42 35 19 41 87 10 94 +40 +5686 +1 86 34 73 60 32 32 25 54 93 71 46 86 3 58 51 49 61 2 3 +41 +4817 +49 48 72 13 72 97 69 79 91 65 72 59 4 29 95 4 88 57 6 41 +42 +1305 +59 53 40 47 90 98 56 36 61 39 69 22 30 23 41 23 67 85 24 37 +43 +4539 +11 54 82 76 1 65 99 10 27 8 30 76 15 21 71 9 49 45 97 36 +44 +4894 +93 98 60 15 42 86 51 23 88 87 28 34 24 25 90 62 81 69 15 74 +45 +2853 +38 36 59 43 74 6 59 37 53 57 46 63 23 48 3 30 89 15 91 53 +46 +1815 +5 9 59 44 54 14 47 76 47 5 75 32 57 33 68 20 43 7 32 49 +47 +5816 +43 78 43 13 41 99 79 83 39 56 78 72 81 92 5 69 24 87 68 77 +48 +5297 +82 80 72 16 15 93 67 58 14 80 34 92 77 2 18 88 70 58 17 13 +49 +4830 +33 88 10 18 38 54 83 99 78 2 4 72 43 12 26 22 74 61 1 37 +50 +4903 +26 52 63 16 24 54 58 29 90 17 23 26 82 32 2 43 44 82 49 34 +51 +3618 +89 30 67 18 91 92 49 35 90 84 69 46 97 38 21 63 23 73 25 31 +52 +4572 +86 62 12 3 49 57 50 49 50 86 33 30 3 67 86 67 89 84 46 15 +53 +5078 +10 8 41 11 23 39 19 89 64 65 11 49 46 93 8 22 96 63 37 32 +54 +1714 +16 45 5 98 63 13 64 79 94 53 5 3 86 80 33 82 80 14 56 45 +55 +1214 +72 77 25 9 88 70 5 82 79 5 54 81 62 75 88 41 44 73 50 50 +56 +2317 +96 90 67 28 1 73 5 92 10 16 42 4 26 59 33 69 69 84 9 81 +57 +1939 +47 52 95 44 30 16 52 45 18 58 12 46 56 51 65 81 7 9 62 46 +58 +4684 +9 39 46 14 85 43 15 42 7 60 40 95 67 7 8 21 10 38 10 93 +59 +2148 +56 95 37 39 22 9 26 21 26 78 30 20 87 65 89 54 15 67 89 13 +60 +4555 +8 86 41 76 94 2 67 51 51 25 51 56 46 6 46 42 55 76 66 47 +61 +5302 +69 15 2 92 39 76 11 30 23 71 94 57 66 59 76 53 27 18 98 50 +62 +1794 +87 98 25 59 70 38 77 70 43 93 24 85 53 30 57 52 55 70 10 70 +63 +2125 +84 59 99 95 85 66 74 2 95 99 28 31 34 67 51 26 2 69 70 21 +64 +3571 +62 22 48 11 7 21 88 20 57 6 84 44 52 41 58 69 82 4 92 41 +65 +5197 +52 43 24 55 65 32 83 82 30 62 69 1 81 32 62 80 42 58 36 12 +66 +1470 +82 85 18 56 43 78 96 13 86 60 44 11 68 63 59 46 88 66 82 18 +67 +2420 +66 93 10 16 4 41 73 92 80 33 98 72 48 7 71 10 84 11 54 28 +68 +4451 +67 6 23 56 60 52 59 91 55 57 36 6 4 8 12 81 38 1 34 22 +69 +1234 +33 46 66 23 90 88 94 2 76 79 21 68 25 89 11 99 69 51 34 60 +70 +1487 +3 51 82 84 73 76 15 80 12 7 9 62 76 51 82 6 31 38 5 69 +71 +5745 +53 97 84 22 21 14 50 38 91 69 48 18 46 81 56 90 5 16 12 49 +72 +1472 +95 79 14 32 25 86 20 54 95 82 30 21 13 9 57 79 3 81 3 38 +73 +5132 +42 46 13 40 33 35 54 45 28 26 15 48 72 13 53 34 37 39 56 80 +74 +3842 +59 71 88 47 48 81 16 19 12 41 21 32 72 27 45 56 14 56 44 52 +75 +3269 +77 18 7 92 25 32 33 65 18 52 43 42 82 74 96 75 35 83 41 45 +76 +4366 +38 33 40 61 27 75 9 35 80 38 91 79 32 59 31 54 61 27 14 34 +77 +4912 +12 13 20 51 37 38 74 66 32 21 49 74 25 98 39 94 43 29 25 3 +78 +3383 +1 3 68 74 63 55 11 26 67 84 86 82 58 31 12 84 38 93 78 61 +79 +4632 +66 32 22 85 28 96 21 18 2 74 36 3 17 98 13 55 48 70 25 96 +80 +2775 +24 28 92 6 88 19 97 32 4 76 41 64 99 48 8 64 89 64 89 99 +81 +5614 +17 48 53 13 27 35 15 51 30 16 10 90 54 74 49 14 86 22 83 49 +82 +3465 +58 8 16 32 94 41 43 23 64 75 75 10 81 76 4 18 37 84 78 78 +83 +1004 +71 42 10 8 20 77 2 18 69 75 56 72 73 75 33 6 20 25 23 34 +84 +1425 +88 26 23 43 54 36 1 87 76 36 70 2 93 78 22 27 33 73 51 78 +85 +1759 +63 26 88 30 17 24 74 74 92 79 73 49 73 11 30 20 1 81 7 79 +86 +5341 +60 95 65 53 74 52 37 10 50 71 57 88 79 71 34 54 8 10 20 64 +87 +1080 +86 44 11 24 35 60 61 76 35 82 51 53 54 54 19 30 61 46 30 55 +88 +4906 +8 74 89 2 15 43 3 31 20 70 34 59 72 10 24 58 41 32 30 63 +89 +2859 +8 82 78 11 53 30 75 31 23 22 62 88 37 96 56 35 40 38 30 24 +90 +5588 +44 28 94 33 64 86 41 93 52 39 3 97 68 97 96 66 10 68 63 58 +91 +5551 +99 4 32 27 38 6 86 61 25 8 34 98 22 75 35 85 10 40 82 25 +92 +5376 +80 42 64 35 79 8 51 26 82 22 27 94 94 41 43 78 75 33 40 93 +93 +5672 +76 81 42 40 45 31 65 39 18 79 29 95 37 30 8 15 9 79 39 73 +94 +5671 +94 56 74 40 67 80 42 83 2 90 25 93 15 73 5 29 81 64 37 45 +95 +4086 +75 38 87 96 93 82 50 11 29 55 97 95 31 84 65 31 40 36 44 93 +96 +1806 +63 50 63 69 16 2 48 57 70 77 30 6 46 22 64 45 13 62 2 37 +97 +5810 +57 12 94 23 59 59 88 81 7 3 28 1 33 8 20 41 10 82 27 64 +98 +1083 +76 43 87 32 47 47 52 40 36 20 48 15 82 98 54 84 53 44 71 92 +99 +1887 +34 51 72 13 95 21 46 97 96 61 99 66 75 68 38 51 28 99 45 59 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/200_10_01.txt b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/200_10_01.txt new file mode 100644 index 000000000..d1bccf9b0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/200_10_01.txt @@ -0,0 +1,603 @@ +200 +10 +471503978 +0 +7166 +17 30 28 15 52 5 53 55 81 47 +1 +7478 +37 26 82 67 82 44 43 65 44 51 +2 +4344 +22 2 88 57 17 2 43 38 46 44 +3 +3004 +71 29 33 64 66 98 56 76 3 27 +4 +4783 +79 98 69 23 62 27 48 45 93 76 +5 +4813 +37 67 28 9 57 10 83 99 14 4 +6 +1411 +69 92 92 1 58 25 34 84 86 76 +7 +4573 +53 51 66 2 91 27 93 67 23 49 +8 +7480 +59 53 92 43 42 41 95 40 59 5 +9 +4429 +64 82 30 73 69 59 48 93 47 25 +10 +841 +11 86 67 94 48 89 63 70 76 23 +11 +9418 +67 47 53 96 46 36 93 45 45 67 +12 +8849 +27 36 93 78 18 62 91 75 64 55 +13 +5306 +64 23 45 14 94 29 94 91 10 40 +14 +4634 +59 34 7 32 83 17 32 21 4 58 +15 +9336 +31 66 70 23 48 37 81 72 29 26 +16 +4344 +43 43 58 83 81 35 69 15 69 36 +17 +10182 +42 71 58 29 57 47 29 73 46 83 +18 +5648 +56 31 17 75 93 37 44 43 68 65 +19 +10009 +88 36 41 55 67 52 2 62 89 91 +20 +7809 +71 41 56 91 19 3 66 40 48 77 +21 +6970 +86 6 34 44 65 87 25 43 68 62 +22 +6260 +6 28 62 46 49 4 60 96 13 6 +23 +3543 +54 43 81 59 45 50 69 39 36 57 +24 +4215 +92 18 44 11 22 96 44 23 85 87 +25 +7436 +75 64 95 20 92 74 34 79 35 4 +26 +2229 +83 28 50 68 41 68 68 66 25 11 +27 +6742 +2 13 88 3 38 30 77 19 21 60 +28 +1878 +60 7 19 17 26 69 31 41 44 23 +29 +3222 +62 13 50 55 2 17 10 71 40 87 +30 +2189 +83 93 25 59 90 34 57 60 20 50 +31 +9874 +73 93 88 18 79 95 21 72 83 18 +32 +1849 +55 56 1 31 17 3 56 62 76 23 +33 +10057 +3 72 6 84 61 24 36 17 26 24 +34 +7309 +71 71 45 61 81 51 26 25 50 82 +35 +9509 +34 28 29 55 67 55 11 59 98 16 +36 +10403 +40 95 2 46 18 60 6 95 6 96 +37 +4515 +13 96 54 77 1 61 86 47 83 37 +38 +1586 +62 55 71 59 36 15 2 10 51 29 +39 +638 +56 58 81 98 31 38 89 94 46 19 +40 +7434 +28 66 22 23 85 83 28 39 99 26 +41 +9737 +53 3 57 18 92 62 62 53 65 56 +42 +5477 +71 77 16 17 6 84 63 50 46 33 +43 +5976 +5 80 88 70 78 44 52 99 24 53 +44 +3293 +73 2 5 73 83 80 12 63 47 6 +45 +5869 +95 82 52 38 39 48 13 59 24 95 +46 +10358 +23 86 23 13 74 45 43 30 32 63 +47 +4698 +49 16 21 77 77 54 99 67 66 84 +48 +9855 +17 29 21 74 85 71 11 18 48 13 +49 +5305 +81 24 58 79 88 10 70 12 83 6 +50 +8401 +88 89 96 51 25 96 82 9 3 19 +51 +6004 +62 96 37 48 33 23 14 41 74 16 +52 +3369 +35 99 46 16 36 8 39 67 97 80 +53 +10335 +78 15 78 93 32 56 83 52 39 37 +54 +2868 +90 49 87 29 82 35 4 39 80 20 +55 +5297 +36 78 91 28 98 72 86 90 27 62 +56 +3744 +46 48 9 6 3 53 93 25 70 81 +57 +9148 +98 64 96 82 46 13 87 13 65 52 +58 +3270 +75 3 93 40 68 72 82 81 1 14 +59 +7616 +36 63 98 9 11 38 78 3 26 67 +60 +5131 +74 14 31 88 30 1 32 8 46 19 +61 +9674 +86 95 78 51 75 69 82 66 8 86 +62 +940 +67 88 20 48 42 85 24 67 74 1 +63 +6286 +87 9 75 1 93 2 88 51 47 53 +64 +1159 +68 61 18 4 36 28 45 54 19 21 +65 +10410 +1 24 34 77 97 18 48 85 85 33 +66 +3268 +87 38 48 48 1 10 67 10 62 68 +67 +6533 +87 50 49 6 63 70 14 95 33 28 +68 +1984 +7 47 69 1 86 67 34 59 96 25 +69 +2658 +34 42 88 32 54 95 76 64 33 69 +70 +7518 +1 30 30 79 33 72 1 90 5 71 +71 +3280 +91 97 34 40 71 64 51 28 23 60 +72 +8989 +7 49 22 14 1 19 15 48 43 69 +73 +4877 +6 79 81 20 18 60 67 57 63 99 +74 +7608 +46 19 50 86 75 31 57 85 10 53 +75 +4775 +3 80 40 40 55 29 3 78 47 77 +76 +4441 +45 30 73 25 62 43 37 18 73 27 +77 +689 +55 24 91 94 21 17 15 59 1 29 +78 +8408 +92 58 7 73 71 78 50 11 19 83 +79 +2103 +67 43 1 44 80 28 75 67 92 22 +80 +6500 +13 6 71 98 5 47 80 36 31 10 +81 +3906 +30 95 72 94 48 78 3 24 29 42 +82 +4713 +27 43 8 61 87 77 9 59 68 64 +83 +9905 +19 99 68 65 22 92 28 24 31 80 +84 +3660 +51 22 49 44 5 42 44 39 92 73 +85 +2405 +86 99 7 75 71 86 2 1 48 91 +86 +7436 +20 11 47 4 69 6 71 80 87 38 +87 +5400 +95 99 90 17 75 19 89 58 8 60 +88 +8689 +79 60 59 1 72 28 24 76 90 53 +89 +5805 +48 42 39 12 36 18 73 59 57 38 +90 +685 +83 33 49 78 54 4 28 90 40 19 +91 +9892 +91 68 28 51 24 24 98 92 25 14 +92 +9000 +78 78 22 55 55 57 17 3 49 35 +93 +2827 +41 26 10 53 5 82 27 51 26 10 +94 +1779 +61 77 96 96 40 7 90 1 35 44 +95 +2539 +90 1 2 92 56 4 4 55 90 97 +96 +5797 +57 13 88 82 8 94 13 50 99 17 +97 +6740 +4 67 90 20 19 9 83 15 30 50 +98 +5913 +21 87 69 22 7 57 43 31 5 22 +99 +1778 +68 31 44 13 12 82 63 99 52 19 +100 +9256 +87 49 74 40 44 98 68 8 12 70 +101 +1943 +62 90 16 43 66 54 74 44 11 88 +102 +2314 +69 6 90 23 39 2 12 91 72 31 +103 +5964 +79 76 7 30 41 71 69 83 32 7 +104 +2160 +69 94 14 16 60 94 38 75 81 81 +105 +5000 +35 76 47 76 11 69 74 66 21 58 +106 +753 +25 79 48 30 31 51 98 98 81 2 +107 +8317 +68 66 36 59 65 80 86 77 64 89 +108 +9608 +14 51 62 64 16 79 72 8 45 1 +109 +5659 +9 14 1 72 67 85 76 6 4 80 +110 +3727 +74 89 63 61 19 56 53 26 10 52 +111 +878 +61 87 86 13 69 79 94 47 90 15 +112 +5610 +58 1 49 81 56 46 45 55 11 25 +113 +8024 +81 65 48 25 96 71 30 39 88 11 +114 +7993 +52 53 3 90 78 85 39 91 52 97 +115 +7345 +93 19 51 67 36 52 60 78 96 90 +116 +5943 +44 21 80 21 56 42 69 49 92 62 +117 +5637 +57 98 86 70 12 66 12 23 44 69 +118 +3377 +89 90 97 96 37 82 83 92 54 34 +119 +10135 +81 45 4 99 1 91 21 68 28 66 +120 +2394 +69 77 58 64 50 48 25 88 85 54 +121 +6036 +98 54 79 68 43 70 50 9 51 84 +122 +6761 +78 86 28 61 58 21 47 38 21 62 +123 +7860 +70 2 19 36 13 82 43 60 4 71 +124 +8007 +3 3 93 57 55 12 58 2 42 70 +125 +7718 +70 88 88 86 87 94 11 8 43 60 +126 +7598 +62 39 44 10 20 17 63 86 55 54 +127 +3245 +81 56 74 57 84 45 74 62 89 52 +128 +4953 +61 24 18 88 28 68 6 41 4 71 +129 +8163 +65 91 95 59 59 60 23 66 1 9 +130 +8429 +65 86 2 73 65 93 94 94 97 99 +131 +8623 +33 80 22 43 56 30 93 54 65 41 +132 +1742 +62 58 7 25 2 5 26 9 38 30 +133 +1409 +19 54 82 37 36 31 49 75 87 23 +134 +5249 +57 57 52 70 41 30 30 43 58 60 +135 +9063 +82 42 17 97 7 71 50 9 47 1 +136 +7293 +78 32 59 29 23 29 47 10 53 67 +137 +1353 +94 5 42 33 25 82 89 79 51 55 +138 +6480 +65 43 51 99 81 20 43 10 40 64 +139 +8191 +14 80 79 34 6 13 32 97 80 21 +140 +7595 +9 86 93 96 67 94 45 39 20 16 +141 +739 +29 47 65 65 5 47 47 30 24 94 +142 +7977 +70 95 27 90 89 57 68 74 77 11 +143 +8304 +90 86 25 52 71 95 13 52 37 90 +144 +6930 +86 40 60 95 86 8 86 90 13 48 +145 +5996 +12 31 72 3 48 46 97 12 29 85 +146 +2438 +40 61 29 64 50 80 2 61 28 34 +147 +2339 +12 12 55 21 54 32 16 34 18 7 +148 +5848 +64 64 58 16 21 7 27 88 22 79 +149 +4982 +32 17 22 70 83 34 38 27 75 95 +150 +7604 +18 52 58 67 27 33 53 68 24 50 +151 +10491 +11 56 61 13 38 33 37 14 79 78 +152 +8007 +40 35 89 96 79 18 94 88 99 39 +153 +6393 +14 60 67 57 71 29 78 74 35 79 +154 +1948 +22 75 14 7 53 19 84 71 45 69 +155 +8138 +49 10 10 30 2 74 49 14 95 27 +156 +3757 +95 50 40 96 9 58 25 16 46 42 +157 +4120 +82 66 11 98 49 52 59 46 15 15 +158 +4850 +7 53 99 72 79 10 36 47 7 51 +159 +4564 +19 58 7 31 39 70 33 54 24 44 +160 +4171 +95 12 20 11 28 78 15 91 45 71 +161 +669 +39 66 78 36 39 59 36 89 20 32 +162 +4803 +71 81 6 10 70 32 47 59 35 66 +163 +5464 +34 51 71 20 72 20 83 39 61 49 +164 +6219 +89 75 48 26 70 12 24 52 97 8 +165 +2726 +63 71 39 67 38 98 71 91 69 7 +166 +6507 +85 46 58 13 48 18 7 21 78 44 +167 +6446 +60 88 7 60 57 12 6 90 13 1 +168 +3416 +91 58 17 50 11 57 55 58 53 15 +169 +918 +49 73 63 28 38 73 43 74 16 6 +170 +3139 +46 27 73 32 37 91 82 30 94 51 +171 +9351 +10 26 43 49 56 46 40 63 59 91 +172 +7171 +19 38 14 54 64 64 78 19 64 33 +173 +2127 +50 48 66 46 64 92 64 18 72 77 +174 +4461 +65 8 59 15 68 45 96 88 13 69 +175 +799 +41 14 75 49 27 86 27 22 47 28 +176 +6861 +58 58 96 94 36 84 99 43 22 8 +177 +9690 +62 89 28 63 94 15 11 60 9 8 +178 +3180 +45 44 12 96 65 99 91 20 68 48 +179 +2449 +67 16 99 43 89 8 78 32 4 7 +180 +8742 +64 20 63 73 23 87 97 67 67 55 +181 +4503 +6 69 19 19 93 61 23 1 92 51 +182 +10135 +77 67 26 19 14 42 48 42 49 89 +183 +8757 +94 80 8 81 57 25 20 95 23 61 +184 +1192 +24 81 72 82 93 35 99 84 37 82 +185 +8334 +38 82 55 69 60 64 39 37 16 39 +186 +9610 +73 27 67 13 82 74 53 30 39 89 +187 +8681 +59 5 1 85 16 40 3 12 47 47 +188 +8465 +61 44 23 32 69 89 65 87 94 24 +189 +8425 +14 38 35 34 57 4 81 13 71 79 +190 +3227 +59 53 6 57 8 43 47 60 36 86 +191 +4628 +83 16 89 69 52 12 25 92 72 60 +192 +1319 +3 48 93 63 98 28 36 52 67 67 +193 +9629 +46 16 88 49 67 68 44 51 78 10 +194 +4236 +16 31 86 56 19 46 29 91 13 61 +195 +5509 +56 79 37 37 56 23 85 76 68 60 +196 +9597 +40 75 53 54 38 3 26 32 36 68 +197 +8513 +7 14 45 60 75 70 4 81 69 72 +198 +2882 +79 67 32 97 69 81 9 57 28 9 +199 +7268 +55 70 69 44 14 14 59 71 69 47 diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/README b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/README new file mode 100644 index 000000000..7f3c69274 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/benchs/README @@ -0,0 +1 @@ +Further benchmarks for the bi-objective flow-shop scheduling problem are available at http://www.lifl.fr/~liefooga/benchmarks/ \ No newline at end of file diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_eval_FlowShop.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_eval_FlowShop.h new file mode 100644 index 000000000..3ab516109 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_eval_FlowShop.h @@ -0,0 +1,55 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_eval_FlowShop.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MAKE_EVAL_FLOWSHOP_H_ +#define MAKE_EVAL_FLOWSHOP_H_ + + +#include +#include +#include +#include +#include +#include + +/* + * This function creates an eoEvalFuncCounter that can later be used to evaluate an individual. + * @param eoParser& _parser to get user parameters + * @param eoState& _state to store the memory + */ +eoEvalFuncCounter & do_make_eval(eoParser& _parser, eoState& _state) +{ + // benchmark file name + std::string benchmarkFileName = _parser.getORcreateParam(std::string(), "BenchmarkFile", "Benchmark file name (benchmarks are available at www.lifl.fr/~liefooga/benchmarks)", 'B',"Representation", true).value(); + if (benchmarkFileName == "") { + std::string stmp = "*** Missing name of the benchmark file\n"; + stmp += " Type '-B=the_benchmark_file_name' or '--BenchmarkFile=the_benchmark_file_name'\n"; + stmp += " Benchmarks files are available at www.lifl.fr/~liefooga/benchmarks"; + throw std::runtime_error(stmp.c_str()); + } + // reading of the parameters contained in the benchmark file + FlowShopBenchmarkParser fParser(benchmarkFileName); + unsigned int M = fParser.getM(); + unsigned int N = fParser.getN(); + std::vector< std::vector > p = fParser.getP(); + std::vector d = fParser.getD(); + // build of the initializer (a pointer, stored in the eoState) + FlowShopEval* plainEval = new FlowShopEval(M, N, p, d); + // turn that object into an evaluation counter + eoEvalFuncCounter* eval = new eoEvalFuncCounter (* plainEval); + // store in state + _state.storeFunctor(eval); + // and return a reference + return *eval; +} + +#endif /*MAKE_EVAL_FLOWSHOP_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_genotype_FlowShop.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_genotype_FlowShop.h new file mode 100644 index 000000000..e59cb2206 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_genotype_FlowShop.h @@ -0,0 +1,48 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_genotype_FlowShop.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MAKE_GENOTYPE_FLOWSHOP_H_ +#define MAKE_GENOTYPE_FLOWSHOP_H_ + +#include +#include +#include +#include +#include + +/* + * This function creates an eoInit that can later be used to initialize the population (see make_pop.h). + * @param eoParser& _parser to get user parameters + * @param eoState& _state to store the memory + */ +eoInit & do_make_genotype(eoParser& _parser, eoState& _state) +{ + // benchmark file name + std::string benchmarkFileName = _parser.getORcreateParam(std::string(), "BenchmarkFile", "Benchmark file name (benchmarks are available at www.lifl.fr/~liefooga/benchmarks/)", 'B',"Representation", true).value(); + if (benchmarkFileName == "") { + std::string stmp = "*** Missing name of the benchmark file\n"; + stmp += " Type '-B=the_benchmark_file_name' or '--BenchmarkFile=the_benchmark_file_name'\n"; + stmp += " Benchmarks files are available at www.lifl.fr/~liefooga/benchmarks"; + throw std::runtime_error(stmp.c_str()); + } + // reading of number of jobs to schedule contained in the benchmark file + FlowShopBenchmarkParser fParser(benchmarkFileName); + unsigned int N = fParser.getN(); + // build of the initializer (a pointer, stored in the eoState) + eoInit* init = new FlowShopInit(N); + // store in state + _state.storeFunctor(init); + // and return a reference + return *init; +} + +#endif /*MAKE_GENOTYPE_FLOWSHOP_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_op_FlowShop.h b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_op_FlowShop.h new file mode 100644 index 000000000..7abadd9e4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta/paradiseo-moeo/tutorial/examples/flowshop/make_op_FlowShop.h @@ -0,0 +1,107 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_op_FlowShop.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MAKE_OP_FLOWSHOP_H_ +#define MAKE_OP_FLOWSHOP_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * This function builds the operators that will be applied to the eoFlowShop + * @param eoParameterLoader& _parser to get user parameters + * @param eoState& _state to store the memory + */ +eoGenOp & do_make_op(eoParameterLoader& _parser, eoState& _state) +{ + + ///////////////////////////// + // Variation operators + //////////////////////////// + + // the crossover + //////////////// + + // a first crossover + eoQuadOp *cross = new FlowShopOpCrossoverQuad; + // store in the state + _state.storeFunctor(cross); + + // relative rate in the combination + double cross1Rate = _parser.createParam(1.0, "crossRate", "Relative rate for the only crossover", 0, "Variation Operators").value(); + // creation of the combined operator with this one + eoPropCombinedQuadOp *propXover = new eoPropCombinedQuadOp(*cross, cross1Rate); + // store in the state + _state.storeFunctor(propXover); + + + // the mutation + /////////////// + + // a first mutation : the shift mutation + eoMonOp *mut = new FlowShopOpMutationShift; + _state.storeFunctor(mut); + // its relative rate in the combination + double mut1Rate = _parser.createParam(0.5, "shiftMutRate", "Relative rate for shift mutation", 0, "Variation Operators").value(); + // creation of the combined operator with this one + eoPropCombinedMonOp *propMutation = new eoPropCombinedMonOp(*mut, mut1Rate); + _state.storeFunctor(propMutation); + + // a second mutation : the exchange mutation + mut = new FlowShopOpMutationExchange; + _state.storeFunctor(mut); + // its relative rate in the combination + double mut2Rate = _parser.createParam(0.5, "exchangeMutRate", "Relative rate for exchange mutation", 0, "Variation Operators").value(); + // addition of this one to the combined operator + propMutation -> add(*mut, mut2Rate); + + // end of crossover and mutation definitions + //////////////////////////////////////////// + + // First read the individual level parameters + eoValueParam& pCrossParam = _parser.createParam(0.25, "pCross", "Probability of Crossover", 'c', "Variation Operators" ); + // minimum check + if ( (pCrossParam.value() < 0) || (pCrossParam.value() > 1) ) + throw std::runtime_error("Invalid pCross"); + + eoValueParam& pMutParam = _parser.createParam(0.35, "pMut", "Probability of Mutation", 'm', "Variation Operators" ); + // minimum check + if ( (pMutParam.value() < 0) || (pMutParam.value() > 1) ) + throw std::runtime_error("Invalid pMut"); + + // the crossover - with probability pCross + eoProportionalOp * propOp = new eoProportionalOp ; + _state.storeFunctor(propOp); + eoQuadOp *ptQuad = new eoQuadCloneOp; + _state.storeFunctor(ptQuad); + propOp -> add(*propXover, pCrossParam.value()); // crossover, with proba pcross + propOp -> add(*ptQuad, 1-pCrossParam.value()); // nothing, with proba 1-pcross + + // now the sequential + eoSequentialOp *op = new eoSequentialOp; + _state.storeFunctor(op); + op -> add(*propOp, 1.0); // always do combined crossover + op -> add(*propMutation, pMutParam.value()); // then mutation, with proba pmut + + // return a reference + return *op; +} + +#endif /*MAKE_OP_FLOWSHOP_H_*/