From a4c45b6295399db8d61339e65a34bd9f33e01a1a Mon Sep 17 00:00:00 2001 From: Fabian Becker Date: Fri, 19 Jul 2013 15:46:52 +0200 Subject: [PATCH] Renamed eva2.populations package to eva2.population --- src/eva2/OptimizerFactory.java | 48 +- src/eva2/OptimizerRunnable.java | 8 +- src/eva2/examples/TerminatorExample.java | 14 +- src/eva2/examples/TestingCbnPostProc.java | 4 +- src/eva2/examples/TestingGAB1.java | 6 +- src/eva2/examples/TestingPlusCmaEs.java | 6 +- src/eva2/gui/BeanInspector.java | 3 +- src/eva2/gui/Plot.java | 2 +- .../optimization/go/GOStandaloneVersion.java | 14 +- .../go/InterfaceOptimizationParameters.java | 2 +- .../optimization/go/InterfaceTerminator.java | 3 +- src/eva2/optimization/go/MOCCOStandalone.java | 8 +- .../individuals/AbstractEAIndividual.java | 16 +- .../individuals/ESIndividualBinaryData.java | 6 +- .../individuals/ESIndividualDoubleData.java | 6 +- .../individuals/ESIndividualIntegerData.java | 6 +- .../ESIndividualPermutationData.java | 6 +- .../GAESIndividualBinaryDoubleData.java | 4 +- .../individuals/GAIndividualBinaryData.java | 8 +- .../individuals/GAIndividualDoubleData.java | 8 +- .../individuals/GAIndividualIntegerData.java | 6 +- .../individuals/GAPIndividualProgramData.java | 4 +- .../individuals/GEIndividualProgramData.java | 6 +- .../individuals/GIIndividualIntegerData.java | 6 +- ...IOBGAIndividualIntegerPermutationData.java | 4 +- .../individuals/GPIndividualProgramData.java | 6 +- .../IndividualDistanceComparator.java | 2 +- .../OBGAIndividualPermutationData.java | 6 +- .../mocco/MOCCOChooseReferenceSolution.java | 2 +- .../mocco/MOCCOParameterizeGDF.java | 2 +- .../mocco/MOCCOParameterizeMO.java | 2 +- .../mocco/MOCCOParameterizeRefPoint.java | 4 +- .../mocco/MOCCOParameterizeSTEP.java | 2 +- .../mocco/MOCCOParameterizeTchebycheff.java | 4 +- src/eva2/optimization/mocco/MOCCOState.java | 6 +- .../mocco/paretofrontviewer/MOCCOViewer.java | 2 +- .../paretofrontviewer/ParetoFrontView2D.java | 2 +- .../ParetoFrontViewScatterPlot.java | 2 +- .../AbstractOptimizationParameters.java | 4 +- .../optimization/modules/DEParameters.java | 4 +- .../optimization/modules/EPParameters.java | 6 +- .../optimization/modules/GAParameters.java | 6 +- .../optimization/modules/HCParameters.java | 4 +- .../optimization/modules/MCParameters.java | 4 +- .../optimization/modules/MOEAParameters.java | 8 +- .../modules/OptimizationParameters.java | 2 +- .../optimization/modules/PBILParameters.java | 6 +- .../optimization/modules/PSOParameters.java | 4 +- src/eva2/optimization/modules/Processor.java | 17 +- .../optimization/modules/SAParameters.java | 4 +- .../optimization/modules/SSGAParameters.java | 8 +- .../archiving/AbstractArchiving.java | 18 +- .../archiving/ArchivingAllDominating.java | 10 +- .../archiving/ArchivingMaxiMin.java | 10 +- .../archiving/ArchivingNSGA.java | 4 +- .../archiving/ArchivingNSGAII.java | 4 +- .../archiving/ArchivingNSGAIISMeasure.java | 218 ++++---- .../archiving/ArchivingPESAII.java | 4 +- .../archiving/ArchivingSPEAII.java | 8 +- .../InformationRetrievalInserting.java | 4 +- .../archiving/InformationRetrievalNone.java | 4 +- .../InformationRetrievalReplacing.java | 4 +- .../archiving/InterfaceArchiving.java | 4 +- .../InterfaceInformationRetrieval.java | 4 +- .../InterfaceRemoveSurplusIndividuals.java | 4 +- ...oveSurplusIndividualsDynamicHyperCube.java | 4 +- .../RemoveSurplusIndividualsSMetric.java | 370 +++++++------- ...moveSurplusIndividualsStaticHyperCube.java | 4 +- .../ClassificationSelfOrganizingMaps.java | 2 +- .../InterfaceClassification.java | 2 +- .../cluster/ClusterAll.java | 4 +- .../cluster/ClusteringDensityBased.java | 8 +- .../cluster/ClusteringDynPeakIdent.java | 10 +- .../cluster/ClusteringKMeans.java | 8 +- .../cluster/ClusteringNearestBetter.java | 12 +- .../cluster/ClusteringXMeans.java | 4 +- .../cluster/InterfaceClustering.java | 4 +- .../InterfaceClusteringDistanceParam.java | 2 +- .../InterfaceClusteringMetricBased.java | 4 +- .../constraint/AbstractConstraint.java | 12 +- .../ConstBelongsToDifferentClass.java | 2 +- ...tObjectivesInEqualityBiggerThanLinear.java | 2 +- ...ObjectivesInEqualityBiggerThanSurface.java | 2 +- ...tObjectivesInEqualityLesserThanLinear.java | 2 +- ...bjectivesInEqualitySmallerThanSurface.java | 2 +- .../constraint/ConstraintCollection.java | 2 +- .../constraint/ConstraintHandlingEnum.java | 2 +- .../constraint/ConstraintRelationEnum.java | 2 +- .../constraint/DummyConstraint.java | 2 +- .../constraint/GenericConstraint.java | 2 +- .../constraint/ImplicitConstraint.java | 2 +- .../constraint/InterfaceConstraint.java | 2 +- .../constraint/InterfaceDoubleConstraint.java | 2 +- .../constraint/IntervalConstraint.java | 2 +- .../crossover/AdaptiveCrossoverEAMixer.java | 220 ++++---- .../crossover/CM1.java | 162 +++--- .../crossover/CM2.java | 160 +++--- .../crossover/CM3.java | 184 +++---- .../crossover/CM4.java | 188 +++---- .../crossover/CM5.java | 154 +++--- .../crossover/CM6.java | 166 +++--- .../crossover/CM7.java | 218 ++++---- .../crossover/CrossoverEAMixer.java | 4 +- .../crossover/CrossoverESArithmetical.java | 4 +- .../crossover/CrossoverESBLXAlpha.java | 4 +- .../crossover/CrossoverESDefault.java | 4 +- .../crossover/CrossoverESFlat.java | 4 +- .../crossover/CrossoverESIntermediate.java | 4 +- .../crossover/CrossoverESNPointDiscrete.java | 4 +- .../CrossoverESNPointDiscreteDislocation.java | 4 +- .../crossover/CrossoverESPCX.java | 4 +- .../crossover/CrossoverESSBX.java | 4 +- .../crossover/CrossoverESSPX.java | 4 +- .../crossover/CrossoverESUNDX.java | 4 +- .../crossover/CrossoverESUniformDiscrete.java | 4 +- .../crossover/CrossoverGABitSimulated.java | 4 +- .../crossover/CrossoverGADefault.java | 4 +- .../crossover/CrossoverGAGINPoint.java | 4 +- .../CrossoverGAGINPointSegmentwise.java | 148 +++--- .../crossover/CrossoverGAUniform.java | 4 +- .../crossover/CrossoverGIDefault.java | 4 +- .../crossover/CrossoverGINPoint.java | 4 +- .../crossover/CrossoverGINPointVL.java | 4 +- .../crossover/CrossoverGIUniform.java | 4 +- .../crossover/CrossoverGPDefault.java | 4 +- .../crossover/CrossoverOBGAPMX.java | 4 +- .../crossover/CrossoverOBGAPMXUniform.java | 4 +- .../crossover/InterfaceCrossover.java | 4 +- .../InterfaceEvaluatingCrossoverOperator.java | 26 +- .../crossover/NoCrossover.java | 4 +- .../crossover/PropertyCrossoverMixer.java | 2 +- .../PropertyCrossoverMixerEditor.java | 2 +- .../crossover/TestESCrossover.java | 4 +- .../distancemetric/DoubleIntegralMetric.java | 2 +- .../distancemetric/EuclideanMetric.java | 2 +- .../distancemetric/GenotypeMetricBitSet.java | 2 +- .../distancemetric/IndividualDataMetric.java | 2 +- .../InterfaceDistanceMetric.java | 2 +- .../distancemetric/ObjectiveSpaceMetric.java | 2 +- .../distancemetric/PhenotypeMetric.java | 2 +- .../SigmaSingleMetricGlobalMutation.java | 4 +- .../FitnessAdaptiveClustering.java | 8 +- .../fitnessmodifier/FitnessModifierNone.java | 4 +- .../fitnessmodifier/FitnessSharing.java | 8 +- .../InterfaceFitnessModifier.java | 4 +- .../initialization/DefaultInitialization.java | 2 +- .../GAGIInitializeSegmentwise.java | 2 +- .../InterfaceInitialization.java | 2 +- .../migration/InterfaceMigration.java | 2 +- .../migration/MOBestMigration.java | 8 +- .../migration/MOClusteringSeparation.java | 14 +- .../migration/MOConeSeparation.java | 20 +- .../migration/MOXMeansSeparation.java | 14 +- .../migration/SOBestMigration.java | 8 +- .../migration/SOMONoMigration.java | 2 +- .../moso/InterfaceMOSOConverter.java | 4 +- .../moso/MOSODynamicallyWeightedFitness.java | 4 +- .../moso/MOSOEpsilonConstraint.java | 4 +- .../moso/MOSOEpsilonThreshold.java | 4 +- .../moso/MOSOGoalProgramming.java | 4 +- .../moso/MOSOLpMetric.java | 4 +- .../moso/MOSOMOGARankBased.java | 4 +- .../moso/MOSOMaxiMin.java | 4 +- .../moso/MOSONoConvert.java | 4 +- .../moso/MOSORandomChoice.java | 4 +- .../moso/MOSORandomWeight.java | 4 +- .../moso/MOSORankbased.java | 6 +- .../moso/MOSOUtilityFunction.java | 4 +- .../moso/MOSOWeightedFitness.java | 4 +- .../moso/MOSOWeightedLPTchebycheff.java | 4 +- .../mutation/CMAParamSet.java | 4 +- .../InterfaceAdaptOperatorGenerational.java | 4 +- .../mutation/InterfaceMutation.java | 4 +- .../mutation/MutateDefault.java | 4 +- .../mutation/MutateEAMixer.java | 4 +- .../mutation/MutateESCorrVector.java | 4 +- .../mutation/MutateESCorrolated.java | 4 +- .../MutateESCovarianceMatrixAdaption.java | 4 +- .../MutateESCovarianceMatrixAdaptionPlus.java | 476 +++++++++--------- .../mutation/MutateESFixedStepSize.java | 4 +- .../mutation/MutateESGlobal.java | 6 +- .../mutation/MutateESLocal.java | 6 +- .../mutation/MutateESMainVectorAdaption.java | 4 +- .../MutateESMutativeStepSizeControl.java | 4 +- .../mutation/MutateESPathLengthAdaption.java | 4 +- .../mutation/MutateESPolynomial.java | 300 +++++------ .../mutation/MutateESRankMuCMA.java | 6 +- .../mutation/MutateESStandard.java | 2 +- .../mutation/MutateESSuccessRule.java | 4 +- .../mutation/MutateGAAdaptive.java | 4 +- .../mutation/MutateGAGISwapBits.java | 4 +- .../MutateGAGISwapBitsSegmentwise.java | 152 +++--- .../mutation/MutateGAInvertBits.java | 4 +- .../mutation/MutateGANBit.java | 4 +- .../mutation/MutateGAShiftSubstring.java | 4 +- .../mutation/MutateGASwapBitsSegmentwise.java | 4 +- .../mutation/MutateGAUniform.java | 4 +- .../mutation/MutateGIInsertDelete.java | 4 +- .../mutation/MutateGIInvert.java | 4 +- .../mutation/MutateGINominal.java | 4 +- .../mutation/MutateGIOrdinal.java | 4 +- .../mutation/MutateGISubset.java | 344 ++++++------- .../mutation/MutateGITranslocate.java | 4 +- .../mutation/MutateGPAdaptive.java | 4 +- .../mutation/MutateGPSingleNode.java | 4 +- .../mutation/MutateOBGAFlip.java | 4 +- .../mutation/MutateOBGAInversion.java | 4 +- .../mutation/NoMutation.java | 4 +- .../mutation/PropertyMutationMixer.java | 2 +- .../mutation/PropertyMutationMixerEditor.java | 2 +- .../ConsiderPBestAbsorptionStrategy.java | 90 ++-- .../EuclideanDiversityAbsorptionStrategy.java | 160 +++--- .../InterfaceAbsorptionStrategy.java | 72 +-- .../StandardAbsorptionStrategy.java | 166 +++--- .../DummyDeactivationStrategy.java | 56 +-- .../ImprovementDeactivationStrategy.java | 318 ++++++------ .../InterfaceDeactivationStrategy.java | 56 +-- .../StandardDeactivationStrategy.java | 314 ++++++------ .../merging/InterfaceMergingStrategy.java | 78 +-- .../merging/ScatterMergingStrategy.java | 194 +++---- .../merging/StandardMergingStrategy.java | 316 ++++++------ .../DummySubswarmCreationStrategy.java | 54 +- ...erateNeighborSubswarmCreationStrategy.java | 196 ++++---- .../InterfaceSubswarmCreationStrategy.java | 70 +-- .../StandardSubswarmCreationStrategy.java | 244 ++++----- .../AbstractAdaptiveParameters.java | 2 +- .../AbstractLinearParamAdaption.java | 4 +- .../AbstractParameterControl.java | 4 +- .../paramcontrol/AdaptivityEnum.java | 2 +- .../CbpsoFitnessThresholdBasedAdaption.java | 4 +- .../paramcontrol/ConstantParameters.java | 4 +- .../paramcontrol/ConstraintBasedAdaption.java | 6 +- .../ExponentialDecayAdaption.java | 4 +- .../paramcontrol/GenericParamAdaption.java | 2 +- .../InterfaceHasUpperDoubleBound.java | 2 +- .../InterfaceParamControllable.java | 2 +- .../InterfaceParameterControl.java | 4 +- .../paramcontrol/LinearParamAdaption.java | 2 +- .../paramcontrol/NoParamAdaption.java | 4 +- .../PSOActivityFeedbackControl.java | 4 +- .../paramcontrol/PSOInertnessAdaption.java | 2 +- .../paramcontrol/ParamAdaption.java | 4 +- .../paramcontrol/ParamChangeListener.java | 2 +- .../paramcontrol/ParameterControlManager.java | 4 +- .../paramcontrol/SingleParamAdaption.java | 2 +- .../paramcontrol/SinusoidalParamAdaption.java | 4 +- .../paramcontrol/SuccessBasedAdaption.java | 6 +- .../InterfaceParetoFrontMetric.java | 4 +- .../MetricD1ApproxParetoFront.java | 8 +- .../MetricD1TrueParetoFront.java | 8 +- .../paretofrontmetrics/MetricErrorRatio.java | 8 +- .../MetricMaximumParetoFrontError.java | 8 +- .../MetricOverallNonDominatedVectors.java | 6 +- .../paretofrontmetrics/MetricS.java | 6 +- .../MetricSWithReference.java | 6 +- .../InterfacePostProcessParams.java | 2 +- .../postprocess/PostProcess.java | 28 +- .../postprocess/PostProcessParams.java | 2 +- .../postprocess/SolutionHistogram.java | 4 +- .../selection/InterfaceSelection.java | 4 +- .../selection/MOMultipleSolutions.java | 2 +- .../selection/MOSolution.java | 2 +- .../selection/SelectAll.java | 4 +- .../selection/SelectBestIndividuals.java | 4 +- .../selection/SelectBestSingle.java | 4 +- .../selection/SelectEPTournaments.java | 4 +- .../selection/SelectHomologousMate.java | 8 +- .../SelectMOMAIIDominanceCounter.java | 4 +- .../selection/SelectMOMaxiMin.java | 6 +- .../SelectMONSGAIICrowedTournament.java | 6 +- .../selection/SelectMONonDominated.java | 4 +- .../selection/SelectMOPESA.java | 6 +- .../selection/SelectMOPESAII.java | 6 +- .../selection/SelectMOSPEAII.java | 6 +- .../selection/SelectParticleWheel.java | 10 +- .../selection/SelectRandom.java | 4 +- .../selection/SelectTournament.java | 4 +- .../selection/SelectXProbRouletteWheel.java | 8 +- .../probability/AbstractSelProb.java | 4 +- .../InterfaceSelectionProbability.java | 4 +- .../probability/SelProbBoltzman.java | 4 +- .../probability/SelProbFitnessSharing.java | 8 +- .../probability/SelProbInvertByMax.java | 4 +- .../probability/SelProbLinearRanking.java | 4 +- .../probability/SelProbNonLinearRanking.java | 4 +- .../selection/probability/SelProbRanking.java | 4 +- .../probability/SelProbStandard.java | 4 +- .../probability/SelProbStandardScaling.java | 4 +- .../replacement/InterfaceReplacement.java | 4 +- .../ReplaceDeterministicCrowding.java | 6 +- .../replacement/ReplacePreselection.java | 4 +- .../selection/replacement/ReplaceRandom.java | 4 +- .../selection/replacement/ReplaceWorst.java | 4 +- .../replacement/ReplaceWorstParent.java | 4 +- .../replacement/ReplacementCrowding.java | 8 +- ...ntNondominatedSortingDistanceCrowding.java | 216 ++++---- .../terminators/CombinedTerminator.java | 6 +- .../terminators/DiversityTerminator.java | 10 +- .../terminators/EvaluationTerminator.java | 6 +- .../FitnessConvergenceTerminator.java | 4 +- .../terminators/FitnessValueTerminator.java | 6 +- .../terminators/GenerationTerminator.java | 6 +- .../HistoryConvergenceTerminator.java | 10 +- .../KnownOptimaFoundTerminator.java | 8 +- .../terminators/ParetoMetricTerminator.java | 10 +- .../PhenotypeConvergenceTerminator.java | 6 +- .../PopulationArchiveTerminator.java | 6 +- .../PopulationMeasureTerminator.java | 6 +- .../InterfaceSolutionSet.java | 2 +- .../PBILPopulation.java | 2 +- .../Population.java | 13 +- .../PopulationInitMethod.java | 2 +- .../PopulationInterface.java | 4 +- .../SolutionSet.java | 2 +- .../problems/AbstractDynTransProblem.java | 2 +- .../AbstractDynamicOptimizationProblem.java | 13 +- .../AbstractMultiModalProblemKnown.java | 10 +- ...ractMultiObjectiveOptimizationProblem.java | 16 +- .../problems/AbstractOptimizationProblem.java | 36 +- .../problems/AbstractProblemBinary.java | 2 +- .../problems/AbstractProblemDouble.java | 18 +- .../problems/AbstractProblemInteger.java | 2 +- ...bstractSynchronousOptimizationProblem.java | 2 +- src/eva2/optimization/problems/B1Problem.java | 6 +- .../problems/ConstrHimmelblauProblem.java | 6 +- .../problems/ConstrPressureVessel.java | 10 +- .../optimization/problems/ERPStarter.java | 16 +- .../problems/ExternalRuntimeProblem.java | 6 +- .../optimization/problems/F13Problem.java | 2 +- .../optimization/problems/F15Problem.java | 2 +- .../optimization/problems/F16Problem.java | 2 +- .../optimization/problems/F17Problem.java | 2 +- .../optimization/problems/F19Problem.java | 2 +- .../optimization/problems/F20Problem.java | 2 +- .../optimization/problems/F21Problem.java | 2 +- src/eva2/optimization/problems/F2Problem.java | 2 +- src/eva2/optimization/problems/F6Problem.java | 4 +- src/eva2/optimization/problems/F7Problem.java | 2 +- src/eva2/optimization/problems/F8Problem.java | 8 +- .../optimization/problems/FLensProblem.java | 2 +- ...InterfaceAdditionalPopulationInformer.java | 2 +- .../InterfaceInterestingHistogram.java | 2 +- .../problems/InterfaceLocalSearchable.java | 2 +- .../InterfaceMultimodalProblemKnown.java | 2 +- .../InterfaceOptimizationProblem.java | 2 +- .../problems/InterfaceSolutionViewer.java | 2 +- .../optimization/problems/MatlabProblem.java | 18 +- .../problems/PSymbolicRegression.java | 4 +- .../problems/SimpleProblemWrapper.java | 2 +- .../optimization/problems/TF1Problem.java | 8 +- .../optimization/stat/AbstractStatistics.java | 6 +- .../stat/InterfaceStatistics.java | 4 +- .../optimization/stat/StatisticsDummy.java | 4 +- .../stat/StatisticsStandalone.java | 2 +- .../optimization/stat/StatisticsWithGUI.java | 4 +- src/eva2/optimization/strategies/ANPSO.java | 12 +- src/eva2/optimization/strategies/BOA.java | 6 +- .../strategies/BinaryScatterSearch.java | 24 +- src/eva2/optimization/strategies/CBNPSO.java | 18 +- .../CHCAdaptiveSearchAlgorithm.java | 12 +- .../strategies/ClusterBasedNichingEA.java | 24 +- .../strategies/ClusteringHillClimbing.java | 12 +- .../strategies/DifferentialEvolution.java | 10 +- .../DynamicParticleSwarmOptimization.java | 2 +- .../optimization/strategies/EsDpiNiching.java | 36 +- .../strategies/EsDpiNichingCma.java | 2 +- .../strategies/EvolutionStrategies.java | 14 +- .../strategies/EvolutionStrategyIPOP.java | 16 +- .../strategies/EvolutionaryProgramming.java | 10 +- .../strategies/FloodAlgorithm.java | 6 +- .../strategies/GeneticAlgorithm.java | 14 +- .../strategies/GradientDescentAlgorithm.java | 6 +- .../optimization/strategies/HillClimbing.java | 8 +- .../strategies/InterfaceOptimizer.java | 4 +- .../strategies/InterfaceSpeciesAware.java | 2 +- .../strategies/IslandModelEA.java | 16 +- src/eva2/optimization/strategies/LTGA.java | 6 +- src/eva2/optimization/strategies/MLTGA.java | 6 +- .../strategies/MemeticAlgorithm.java | 10 +- .../strategies/MonteCarloSearch.java | 6 +- .../strategies/MultiObjectiveCMAES.java | 12 +- .../strategies/MultiObjectiveEA.java | 16 +- .../strategies/NelderMeadSimplex.java | 6 +- .../optimization/strategies/NichePSO.java | 34 +- .../strategies/PDDifferentialEvolution.java | 10 +- .../ParticleFilterOptimization.java | 16 +- .../ParticleSubSwarmOptimization.java | 4 +- .../strategies/ParticleSwarmOptimization.java | 14 +- .../PopulationBasedIncrementalLearning.java | 12 +- .../strategies/ScatterSearch.java | 12 +- .../strategies/SimulatedAnnealing.java | 6 +- src/eva2/optimization/strategies/SqPSO.java | 6 +- .../optimization/strategies/StarANPSO.java | 4 +- .../strategies/SteadyStateGA.java | 14 +- .../strategies/ThresholdAlgorithm.java | 6 +- src/eva2/optimization/strategies/Tribes.java | 6 +- .../strategies/WingedMultiObjectiveEA.java | 8 +- .../strategies/tribes/TribesExplorer.java | 2 +- .../strategies/tribes/TribesSwarm.java | 2 +- src/eva2/optimization/tools/DeNovofilter.java | 4 +- .../tools/ImpactOfDimensionOnMOEAs.java | 4 +- src/eva2/tools/math/BayNet.java | 2 +- 402 files changed, 4101 insertions(+), 4102 deletions(-) rename src/eva2/optimization/{operators => operator}/archiving/AbstractArchiving.java (92%) rename src/eva2/optimization/{operators => operator}/archiving/ArchivingAllDominating.java (92%) rename src/eva2/optimization/{operators => operator}/archiving/ArchivingMaxiMin.java (96%) rename src/eva2/optimization/{operators => operator}/archiving/ArchivingNSGA.java (96%) rename src/eva2/optimization/{operators => operator}/archiving/ArchivingNSGAII.java (98%) rename src/eva2/optimization/{operators => operator}/archiving/ArchivingNSGAIISMeasure.java (93%) rename src/eva2/optimization/{operators => operator}/archiving/ArchivingPESAII.java (99%) rename src/eva2/optimization/{operators => operator}/archiving/ArchivingSPEAII.java (99%) rename src/eva2/optimization/{operators => operator}/archiving/InformationRetrievalInserting.java (95%) rename src/eva2/optimization/{operators => operator}/archiving/InformationRetrievalNone.java (93%) rename src/eva2/optimization/{operators => operator}/archiving/InformationRetrievalReplacing.java (94%) rename src/eva2/optimization/{operators => operator}/archiving/InterfaceArchiving.java (88%) rename src/eva2/optimization/{operators => operator}/archiving/InterfaceInformationRetrieval.java (87%) rename src/eva2/optimization/{operators => operator}/archiving/InterfaceRemoveSurplusIndividuals.java (87%) rename src/eva2/optimization/{operators => operator}/archiving/RemoveSurplusIndividualsDynamicHyperCube.java (97%) rename src/eva2/optimization/{operators => operator}/archiving/RemoveSurplusIndividualsSMetric.java (95%) rename src/eva2/optimization/{operators => operator}/archiving/RemoveSurplusIndividualsStaticHyperCube.java (96%) rename src/eva2/optimization/{operators => operator}/classification/ClassificationSelfOrganizingMaps.java (99%) rename src/eva2/optimization/{operators => operator}/classification/InterfaceClassification.java (95%) rename src/eva2/optimization/{operators => operator}/cluster/ClusterAll.java (96%) rename src/eva2/optimization/{operators => operator}/cluster/ClusteringDensityBased.java (98%) rename src/eva2/optimization/{operators => operator}/cluster/ClusteringDynPeakIdent.java (96%) rename src/eva2/optimization/{operators => operator}/cluster/ClusteringKMeans.java (98%) rename src/eva2/optimization/{operators => operator}/cluster/ClusteringNearestBetter.java (98%) rename src/eva2/optimization/{operators => operator}/cluster/ClusteringXMeans.java (99%) rename src/eva2/optimization/{operators => operator}/cluster/InterfaceClustering.java (97%) rename src/eva2/optimization/{operators => operator}/cluster/InterfaceClusteringDistanceParam.java (86%) rename src/eva2/optimization/{operators => operator}/cluster/InterfaceClusteringMetricBased.java (67%) rename src/eva2/optimization/{operators => operator}/constraint/AbstractConstraint.java (95%) rename src/eva2/optimization/{operators => operator}/constraint/ConstBelongsToDifferentClass.java (98%) rename src/eva2/optimization/{operators => operator}/constraint/ConstObjectivesInEqualityBiggerThanLinear.java (96%) rename src/eva2/optimization/{operators => operator}/constraint/ConstObjectivesInEqualityBiggerThanSurface.java (98%) rename src/eva2/optimization/{operators => operator}/constraint/ConstObjectivesInEqualityLesserThanLinear.java (96%) rename src/eva2/optimization/{operators => operator}/constraint/ConstObjectivesInEqualitySmallerThanSurface.java (98%) rename src/eva2/optimization/{operators => operator}/constraint/ConstraintCollection.java (97%) rename src/eva2/optimization/{operators => operator}/constraint/ConstraintHandlingEnum.java (66%) rename src/eva2/optimization/{operators => operator}/constraint/ConstraintRelationEnum.java (66%) rename src/eva2/optimization/{operators => operator}/constraint/DummyConstraint.java (91%) rename src/eva2/optimization/{operators => operator}/constraint/GenericConstraint.java (98%) rename src/eva2/optimization/{operators => operator}/constraint/ImplicitConstraint.java (96%) rename src/eva2/optimization/{operators => operator}/constraint/InterfaceConstraint.java (94%) rename src/eva2/optimization/{operators => operator}/constraint/InterfaceDoubleConstraint.java (94%) rename src/eva2/optimization/{operators => operator}/constraint/IntervalConstraint.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/AdaptiveCrossoverEAMixer.java (92%) rename src/eva2/optimization/{operators => operator}/crossover/CM1.java (92%) rename src/eva2/optimization/{operators => operator}/crossover/CM2.java (91%) rename src/eva2/optimization/{operators => operator}/crossover/CM3.java (92%) rename src/eva2/optimization/{operators => operator}/crossover/CM4.java (92%) rename src/eva2/optimization/{operators => operator}/crossover/CM5.java (91%) rename src/eva2/optimization/{operators => operator}/crossover/CM6.java (92%) rename src/eva2/optimization/{operators => operator}/crossover/CM7.java (93%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverEAMixer.java (99%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESArithmetical.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESBLXAlpha.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESDefault.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESFlat.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESIntermediate.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESNPointDiscrete.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESNPointDiscreteDislocation.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESPCX.java (99%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESSBX.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESSPX.java (99%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESUNDX.java (99%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverESUniformDiscrete.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverGABitSimulated.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverGADefault.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverGAGINPoint.java (99%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverGAGINPointSegmentwise.java (94%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverGAUniform.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverGIDefault.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverGINPoint.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverGINPointVL.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverGIUniform.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverGPDefault.java (98%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverOBGAPMX.java (97%) rename src/eva2/optimization/{operators => operator}/crossover/CrossoverOBGAPMXUniform.java (97%) rename src/eva2/optimization/{operators => operator}/crossover/InterfaceCrossover.java (94%) rename src/eva2/optimization/{operators => operator}/crossover/InterfaceEvaluatingCrossoverOperator.java (80%) rename src/eva2/optimization/{operators => operator}/crossover/NoCrossover.java (97%) rename src/eva2/optimization/{operators => operator}/crossover/PropertyCrossoverMixer.java (99%) rename src/eva2/optimization/{operators => operator}/crossover/PropertyCrossoverMixerEditor.java (99%) rename src/eva2/optimization/{operators => operator}/crossover/TestESCrossover.java (99%) rename src/eva2/optimization/{operators => operator}/distancemetric/DoubleIntegralMetric.java (98%) rename src/eva2/optimization/{operators => operator}/distancemetric/EuclideanMetric.java (98%) rename src/eva2/optimization/{operators => operator}/distancemetric/GenotypeMetricBitSet.java (98%) rename src/eva2/optimization/{operators => operator}/distancemetric/IndividualDataMetric.java (98%) rename src/eva2/optimization/{operators => operator}/distancemetric/InterfaceDistanceMetric.java (94%) rename src/eva2/optimization/{operators => operator}/distancemetric/ObjectiveSpaceMetric.java (97%) rename src/eva2/optimization/{operators => operator}/distancemetric/PhenotypeMetric.java (99%) rename src/eva2/optimization/{operators => operator}/distancemetric/SigmaSingleMetricGlobalMutation.java (96%) rename src/eva2/optimization/{operators => operator}/fitnessmodifier/FitnessAdaptiveClustering.java (93%) rename src/eva2/optimization/{operators => operator}/fitnessmodifier/FitnessModifierNone.java (92%) rename src/eva2/optimization/{operators => operator}/fitnessmodifier/FitnessSharing.java (94%) rename src/eva2/optimization/{operators => operator}/fitnessmodifier/InterfaceFitnessModifier.java (85%) rename src/eva2/optimization/{operators => operator}/initialization/DefaultInitialization.java (94%) rename src/eva2/optimization/{operators => operator}/initialization/GAGIInitializeSegmentwise.java (99%) rename src/eva2/optimization/{operators => operator}/initialization/InterfaceInitialization.java (94%) rename src/eva2/optimization/{operators => operator}/migration/InterfaceMigration.java (96%) rename src/eva2/optimization/{operators => operator}/migration/MOBestMigration.java (94%) rename src/eva2/optimization/{operators => operator}/migration/MOClusteringSeparation.java (97%) rename src/eva2/optimization/{operators => operator}/migration/MOConeSeparation.java (97%) rename src/eva2/optimization/{operators => operator}/migration/MOXMeansSeparation.java (97%) rename src/eva2/optimization/{operators => operator}/migration/SOBestMigration.java (94%) rename src/eva2/optimization/{operators => operator}/migration/SOMONoMigration.java (97%) rename src/eva2/optimization/{operators => operator}/moso/InterfaceMOSOConverter.java (95%) rename src/eva2/optimization/{operators => operator}/moso/MOSODynamicallyWeightedFitness.java (97%) rename src/eva2/optimization/{operators => operator}/moso/MOSOEpsilonConstraint.java (98%) rename src/eva2/optimization/{operators => operator}/moso/MOSOEpsilonThreshold.java (98%) rename src/eva2/optimization/{operators => operator}/moso/MOSOGoalProgramming.java (97%) rename src/eva2/optimization/{operators => operator}/moso/MOSOLpMetric.java (98%) rename src/eva2/optimization/{operators => operator}/moso/MOSOMOGARankBased.java (97%) rename src/eva2/optimization/{operators => operator}/moso/MOSOMaxiMin.java (98%) rename src/eva2/optimization/{operators => operator}/moso/MOSONoConvert.java (96%) rename src/eva2/optimization/{operators => operator}/moso/MOSORandomChoice.java (97%) rename src/eva2/optimization/{operators => operator}/moso/MOSORandomWeight.java (97%) rename src/eva2/optimization/{operators => operator}/moso/MOSORankbased.java (94%) rename src/eva2/optimization/{operators => operator}/moso/MOSOUtilityFunction.java (97%) rename src/eva2/optimization/{operators => operator}/moso/MOSOWeightedFitness.java (98%) rename src/eva2/optimization/{operators => operator}/moso/MOSOWeightedLPTchebycheff.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/CMAParamSet.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/InterfaceAdaptOperatorGenerational.java (94%) rename src/eva2/optimization/{operators => operator}/mutation/InterfaceMutation.java (94%) rename src/eva2/optimization/{operators => operator}/mutation/MutateDefault.java (96%) rename src/eva2/optimization/{operators => operator}/mutation/MutateEAMixer.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESCorrVector.java (99%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESCorrolated.java (99%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESCovarianceMatrixAdaption.java (99%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESCovarianceMatrixAdaptionPlus.java (95%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESFixedStepSize.java (97%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESGlobal.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESLocal.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESMainVectorAdaption.java (99%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESMutativeStepSizeControl.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESPathLengthAdaption.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESPolynomial.java (95%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESRankMuCMA.java (99%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESStandard.java (99%) rename src/eva2/optimization/{operators => operator}/mutation/MutateESSuccessRule.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGAAdaptive.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGAGISwapBits.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGAGISwapBitsSegmentwise.java (94%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGAInvertBits.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGANBit.java (97%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGAShiftSubstring.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGASwapBitsSegmentwise.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGAUniform.java (97%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGIInsertDelete.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGIInvert.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGINominal.java (97%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGIOrdinal.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGISubset.java (95%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGITranslocate.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGPAdaptive.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateGPSingleNode.java (98%) rename src/eva2/optimization/{operators => operator}/mutation/MutateOBGAFlip.java (96%) rename src/eva2/optimization/{operators => operator}/mutation/MutateOBGAInversion.java (97%) rename src/eva2/optimization/{operators => operator}/mutation/NoMutation.java (96%) rename src/eva2/optimization/{operators => operator}/mutation/PropertyMutationMixer.java (99%) rename src/eva2/optimization/{operators => operator}/mutation/PropertyMutationMixerEditor.java (99%) rename src/eva2/optimization/{operators => operator}/nichepso/absorption/ConsiderPBestAbsorptionStrategy.java (94%) rename src/eva2/optimization/{operators => operator}/nichepso/absorption/EuclideanDiversityAbsorptionStrategy.java (95%) rename src/eva2/optimization/{operators => operator}/nichepso/absorption/InterfaceAbsorptionStrategy.java (92%) rename src/eva2/optimization/{operators => operator}/nichepso/absorption/StandardAbsorptionStrategy.java (95%) rename src/eva2/optimization/{operators => operator}/nichepso/deactivation/DummyDeactivationStrategy.java (87%) rename src/eva2/optimization/{operators => operator}/nichepso/deactivation/ImprovementDeactivationStrategy.java (95%) rename src/eva2/optimization/{operators => operator}/nichepso/deactivation/InterfaceDeactivationStrategy.java (90%) rename src/eva2/optimization/{operators => operator}/nichepso/deactivation/StandardDeactivationStrategy.java (95%) rename src/eva2/optimization/{operators => operator}/nichepso/merging/InterfaceMergingStrategy.java (91%) rename src/eva2/optimization/{operators => operator}/nichepso/merging/ScatterMergingStrategy.java (95%) rename src/eva2/optimization/{operators => operator}/nichepso/merging/StandardMergingStrategy.java (93%) rename src/eva2/optimization/{operators => operator}/nichepso/subswarmcreation/DummySubswarmCreationStrategy.java (88%) rename src/eva2/optimization/{operators => operator}/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java (93%) rename src/eva2/optimization/{operators => operator}/nichepso/subswarmcreation/InterfaceSubswarmCreationStrategy.java (92%) rename src/eva2/optimization/{operators => operator}/nichepso/subswarmcreation/StandardSubswarmCreationStrategy.java (94%) rename src/eva2/optimization/{operators => operator}/paramcontrol/AbstractAdaptiveParameters.java (98%) rename src/eva2/optimization/{operators => operator}/paramcontrol/AbstractLinearParamAdaption.java (94%) rename src/eva2/optimization/{operators => operator}/paramcontrol/AbstractParameterControl.java (97%) rename src/eva2/optimization/{operators => operator}/paramcontrol/AdaptivityEnum.java (80%) rename src/eva2/optimization/{operators => operator}/paramcontrol/CbpsoFitnessThresholdBasedAdaption.java (98%) rename src/eva2/optimization/{operators => operator}/paramcontrol/ConstantParameters.java (88%) rename src/eva2/optimization/{operators => operator}/paramcontrol/ConstraintBasedAdaption.java (97%) rename src/eva2/optimization/{operators => operator}/paramcontrol/ExponentialDecayAdaption.java (96%) rename src/eva2/optimization/{operators => operator}/paramcontrol/GenericParamAdaption.java (86%) rename src/eva2/optimization/{operators => operator}/paramcontrol/InterfaceHasUpperDoubleBound.java (83%) rename src/eva2/optimization/{operators => operator}/paramcontrol/InterfaceParamControllable.java (88%) rename src/eva2/optimization/{operators => operator}/paramcontrol/InterfaceParameterControl.java (94%) rename src/eva2/optimization/{operators => operator}/paramcontrol/LinearParamAdaption.java (97%) rename src/eva2/optimization/{operators => operator}/paramcontrol/NoParamAdaption.java (88%) rename src/eva2/optimization/{operators => operator}/paramcontrol/PSOActivityFeedbackControl.java (98%) rename src/eva2/optimization/{operators => operator}/paramcontrol/PSOInertnessAdaption.java (94%) rename src/eva2/optimization/{operators => operator}/paramcontrol/ParamAdaption.java (85%) rename src/eva2/optimization/{operators => operator}/paramcontrol/ParamChangeListener.java (75%) rename src/eva2/optimization/{operators => operator}/paramcontrol/ParameterControlManager.java (98%) rename src/eva2/optimization/{operators => operator}/paramcontrol/SingleParamAdaption.java (97%) rename src/eva2/optimization/{operators => operator}/paramcontrol/SinusoidalParamAdaption.java (98%) rename src/eva2/optimization/{operators => operator}/paramcontrol/SuccessBasedAdaption.java (94%) rename src/eva2/optimization/{operators => operator}/paretofrontmetrics/InterfaceParetoFrontMetric.java (85%) rename src/eva2/optimization/{operators => operator}/paretofrontmetrics/MetricD1ApproxParetoFront.java (95%) rename src/eva2/optimization/{operators => operator}/paretofrontmetrics/MetricD1TrueParetoFront.java (95%) rename src/eva2/optimization/{operators => operator}/paretofrontmetrics/MetricErrorRatio.java (96%) rename src/eva2/optimization/{operators => operator}/paretofrontmetrics/MetricMaximumParetoFrontError.java (95%) rename src/eva2/optimization/{operators => operator}/paretofrontmetrics/MetricOverallNonDominatedVectors.java (93%) rename src/eva2/optimization/{operators => operator}/paretofrontmetrics/MetricS.java (98%) rename src/eva2/optimization/{operators => operator}/paretofrontmetrics/MetricSWithReference.java (98%) rename src/eva2/optimization/{operators => operator}/postprocess/InterfacePostProcessParams.java (95%) rename src/eva2/optimization/{operators => operator}/postprocess/PostProcess.java (98%) rename src/eva2/optimization/{operators => operator}/postprocess/PostProcessParams.java (99%) rename src/eva2/optimization/{operators => operator}/postprocess/SolutionHistogram.java (98%) rename src/eva2/optimization/{operators => operator}/selection/InterfaceSelection.java (95%) rename src/eva2/optimization/{operators => operator}/selection/MOMultipleSolutions.java (96%) rename src/eva2/optimization/{operators => operator}/selection/MOSolution.java (93%) rename src/eva2/optimization/{operators => operator}/selection/SelectAll.java (97%) rename src/eva2/optimization/{operators => operator}/selection/SelectBestIndividuals.java (98%) rename src/eva2/optimization/{operators => operator}/selection/SelectBestSingle.java (98%) rename src/eva2/optimization/{operators => operator}/selection/SelectEPTournaments.java (98%) rename src/eva2/optimization/{operators => operator}/selection/SelectHomologousMate.java (94%) rename src/eva2/optimization/{operators => operator}/selection/SelectMOMAIIDominanceCounter.java (98%) rename src/eva2/optimization/{operators => operator}/selection/SelectMOMaxiMin.java (96%) rename src/eva2/optimization/{operators => operator}/selection/SelectMONSGAIICrowedTournament.java (98%) rename src/eva2/optimization/{operators => operator}/selection/SelectMONonDominated.java (98%) rename src/eva2/optimization/{operators => operator}/selection/SelectMOPESA.java (96%) rename src/eva2/optimization/{operators => operator}/selection/SelectMOPESAII.java (97%) rename src/eva2/optimization/{operators => operator}/selection/SelectMOSPEAII.java (97%) rename src/eva2/optimization/{operators => operator}/selection/SelectParticleWheel.java (95%) rename src/eva2/optimization/{operators => operator}/selection/SelectRandom.java (98%) rename src/eva2/optimization/{operators => operator}/selection/SelectTournament.java (98%) rename src/eva2/optimization/{operators => operator}/selection/SelectXProbRouletteWheel.java (97%) rename src/eva2/optimization/{operators => operator}/selection/probability/AbstractSelProb.java (98%) rename src/eva2/optimization/{operators => operator}/selection/probability/InterfaceSelectionProbability.java (94%) rename src/eva2/optimization/{operators => operator}/selection/probability/SelProbBoltzman.java (98%) rename src/eva2/optimization/{operators => operator}/selection/probability/SelProbFitnessSharing.java (95%) rename src/eva2/optimization/{operators => operator}/selection/probability/SelProbInvertByMax.java (97%) rename src/eva2/optimization/{operators => operator}/selection/probability/SelProbLinearRanking.java (98%) rename src/eva2/optimization/{operators => operator}/selection/probability/SelProbNonLinearRanking.java (98%) rename src/eva2/optimization/{operators => operator}/selection/probability/SelProbRanking.java (97%) rename src/eva2/optimization/{operators => operator}/selection/probability/SelProbStandard.java (97%) rename src/eva2/optimization/{operators => operator}/selection/probability/SelProbStandardScaling.java (98%) rename src/eva2/optimization/{operators => operator}/selection/replacement/InterfaceReplacement.java (87%) rename src/eva2/optimization/{operators => operator}/selection/replacement/ReplaceDeterministicCrowding.java (92%) rename src/eva2/optimization/{operators => operator}/selection/replacement/ReplacePreselection.java (93%) rename src/eva2/optimization/{operators => operator}/selection/replacement/ReplaceRandom.java (93%) rename src/eva2/optimization/{operators => operator}/selection/replacement/ReplaceWorst.java (93%) rename src/eva2/optimization/{operators => operator}/selection/replacement/ReplaceWorstParent.java (94%) rename src/eva2/optimization/{operators => operator}/selection/replacement/ReplacementCrowding.java (92%) rename src/eva2/optimization/{operators => operator}/selection/replacement/ReplacementNondominatedSortingDistanceCrowding.java (90%) rename src/eva2/optimization/{operators => operator}/terminators/CombinedTerminator.java (96%) rename src/eva2/optimization/{operators => operator}/terminators/DiversityTerminator.java (89%) rename src/eva2/optimization/{operators => operator}/terminators/EvaluationTerminator.java (93%) rename src/eva2/optimization/{operators => operator}/terminators/FitnessConvergenceTerminator.java (92%) rename src/eva2/optimization/{operators => operator}/terminators/FitnessValueTerminator.java (93%) rename src/eva2/optimization/{operators => operator}/terminators/GenerationTerminator.java (92%) rename src/eva2/optimization/{operators => operator}/terminators/HistoryConvergenceTerminator.java (95%) rename src/eva2/optimization/{operators => operator}/terminators/KnownOptimaFoundTerminator.java (92%) rename src/eva2/optimization/{operators => operator}/terminators/ParetoMetricTerminator.java (92%) rename src/eva2/optimization/{operators => operator}/terminators/PhenotypeConvergenceTerminator.java (92%) rename src/eva2/optimization/{operators => operator}/terminators/PopulationArchiveTerminator.java (91%) rename src/eva2/optimization/{operators => operator}/terminators/PopulationMeasureTerminator.java (98%) rename src/eva2/optimization/{populations => population}/InterfaceSolutionSet.java (92%) rename src/eva2/optimization/{populations => population}/PBILPopulation.java (99%) rename src/eva2/optimization/{populations => population}/Population.java (99%) rename src/eva2/optimization/{populations => population}/PopulationInitMethod.java (76%) rename src/eva2/optimization/{go => population}/PopulationInterface.java (95%) rename src/eva2/optimization/{populations => population}/SolutionSet.java (95%) diff --git a/src/eva2/OptimizerFactory.java b/src/eva2/OptimizerFactory.java index c4495628..1a571feb 100644 --- a/src/eva2/OptimizerFactory.java +++ b/src/eva2/OptimizerFactory.java @@ -1,12 +1,12 @@ package eva2; import eva2.optimization.modules.OptimizationParameters; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.NoMutation; -import eva2.optimization.operators.mutation.MutateESFixedStepSize; -import eva2.optimization.operators.mutation.MutateESCovarianceMatrixAdaption; -import eva2.optimization.operators.mutation.MutateESGlobal; -import eva2.optimization.operators.mutation.MutateESRankMuCMA; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.NoMutation; +import eva2.optimization.operator.mutation.MutateESFixedStepSize; +import eva2.optimization.operator.mutation.MutateESCovarianceMatrixAdaption; +import eva2.optimization.operator.mutation.MutateESGlobal; +import eva2.optimization.operator.mutation.MutateESRankMuCMA; import eva2.optimization.strategies.ParticleSwarmOptimization; import eva2.optimization.strategies.EvolutionStrategyIPOP; import eva2.optimization.strategies.GradientDescentAlgorithm; @@ -36,24 +36,24 @@ import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.operators.archiving.ArchivingNSGAII; -import eva2.optimization.operators.archiving.InformationRetrievalInserting; -import eva2.optimization.operators.archiving.InterfaceArchiving; -import eva2.optimization.operators.archiving.InterfaceInformationRetrieval; -import eva2.optimization.operators.cluster.ClusteringDensityBased; -import eva2.optimization.operators.cluster.InterfaceClustering; -import eva2.optimization.operators.crossover.CrossoverESDefault; -import eva2.optimization.operators.crossover.InterfaceCrossover; -import eva2.optimization.operators.crossover.NoCrossover; -import eva2.optimization.operators.distancemetric.IndividualDataMetric; -import eva2.optimization.operators.postprocess.InterfacePostProcessParams; -import eva2.optimization.operators.postprocess.PostProcessParams; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.SelectBestIndividuals; -import eva2.optimization.operators.terminators.CombinedTerminator; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.PBILPopulation; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingNSGAII; +import eva2.optimization.operator.archiving.InformationRetrievalInserting; +import eva2.optimization.operator.archiving.InterfaceArchiving; +import eva2.optimization.operator.archiving.InterfaceInformationRetrieval; +import eva2.optimization.operator.cluster.ClusteringDensityBased; +import eva2.optimization.operator.cluster.InterfaceClustering; +import eva2.optimization.operator.crossover.CrossoverESDefault; +import eva2.optimization.operator.crossover.InterfaceCrossover; +import eva2.optimization.operator.crossover.NoCrossover; +import eva2.optimization.operator.distancemetric.IndividualDataMetric; +import eva2.optimization.operator.postprocess.InterfacePostProcessParams; +import eva2.optimization.operator.postprocess.PostProcessParams; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.SelectBestIndividuals; +import eva2.optimization.operator.terminators.CombinedTerminator; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.PBILPopulation; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.stat.InterfaceStatistics; import eva2.tools.math.RNG; diff --git a/src/eva2/OptimizerRunnable.java b/src/eva2/OptimizerRunnable.java index 43a14833..dd926bc8 100644 --- a/src/eva2/OptimizerRunnable.java +++ b/src/eva2/OptimizerRunnable.java @@ -13,10 +13,10 @@ import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceDataTypeInteger; -import eva2.optimization.operators.postprocess.InterfacePostProcessParams; -import eva2.optimization.operators.postprocess.PostProcessParams; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.postprocess.InterfacePostProcessParams; +import eva2.optimization.operator.postprocess.PostProcessParams; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.modules.OptimizationParameters; import eva2.optimization.modules.Processor; import java.io.PrintWriter; diff --git a/src/eva2/examples/TerminatorExample.java b/src/eva2/examples/TerminatorExample.java index 3e530742..f7ef7e6a 100644 --- a/src/eva2/examples/TerminatorExample.java +++ b/src/eva2/examples/TerminatorExample.java @@ -1,13 +1,13 @@ package eva2.examples; import eva2.OptimizerFactory; -import eva2.optimization.operators.terminators.CombinedTerminator; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.operators.terminators.FitnessConvergenceTerminator; -import eva2.optimization.operators.terminators.PhenotypeConvergenceTerminator; -import eva2.optimization.operators.terminators.PopulationMeasureTerminator.ChangeTypeEnum; -import eva2.optimization.operators.terminators.PopulationMeasureTerminator.DirectionTypeEnum; -import eva2.optimization.operators.terminators.PopulationMeasureTerminator.StagnationTypeEnum; +import eva2.optimization.operator.terminators.CombinedTerminator; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.operator.terminators.FitnessConvergenceTerminator; +import eva2.optimization.operator.terminators.PhenotypeConvergenceTerminator; +import eva2.optimization.operator.terminators.PopulationMeasureTerminator.ChangeTypeEnum; +import eva2.optimization.operator.terminators.PopulationMeasureTerminator.DirectionTypeEnum; +import eva2.optimization.operator.terminators.PopulationMeasureTerminator.StagnationTypeEnum; import eva2.optimization.problems.F1Problem; public class TerminatorExample { diff --git a/src/eva2/examples/TestingCbnPostProc.java b/src/eva2/examples/TestingCbnPostProc.java index 168520d9..178b2027 100644 --- a/src/eva2/examples/TestingCbnPostProc.java +++ b/src/eva2/examples/TestingCbnPostProc.java @@ -1,8 +1,8 @@ package eva2.examples; import eva2.OptimizerFactory; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.postprocess.PostProcessParams; -import eva2.optimization.operators.terminators.EvaluationTerminator; +import eva2.optimization.operator.postprocess.PostProcessParams; +import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.problems.FM0Problem; import eva2.optimization.modules.OptimizationParameters; import java.util.List; diff --git a/src/eva2/examples/TestingGAB1.java b/src/eva2/examples/TestingGAB1.java index 8ba33abb..73ba1a22 100644 --- a/src/eva2/examples/TestingGAB1.java +++ b/src/eva2/examples/TestingGAB1.java @@ -1,8 +1,8 @@ package eva2.examples; import eva2.OptimizerFactory; -import eva2.optimization.operators.selection.SelectXProbRouletteWheel; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.selection.SelectXProbRouletteWheel; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.B1Problem; import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.modules.OptimizationParameters; diff --git a/src/eva2/examples/TestingPlusCmaEs.java b/src/eva2/examples/TestingPlusCmaEs.java index b931739e..a3c26b67 100644 --- a/src/eva2/examples/TestingPlusCmaEs.java +++ b/src/eva2/examples/TestingPlusCmaEs.java @@ -3,9 +3,9 @@ package eva2.examples; import eva2.OptimizerFactory; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.modules.OptimizationParameters; -import eva2.optimization.operators.crossover.CrossoverESDefault; -import eva2.optimization.operators.mutation.MutateESCovarianceMatrixAdaption; -import eva2.optimization.operators.terminators.EvaluationTerminator; +import eva2.optimization.operator.crossover.CrossoverESDefault; +import eva2.optimization.operator.mutation.MutateESCovarianceMatrixAdaption; +import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.problems.FM0Problem; import eva2.optimization.strategies.EvolutionStrategies; diff --git a/src/eva2/gui/BeanInspector.java b/src/eva2/gui/BeanInspector.java index 87bbbb84..32bfadc6 100644 --- a/src/eva2/gui/BeanInspector.java +++ b/src/eva2/gui/BeanInspector.java @@ -1,7 +1,6 @@ package eva2.gui; -import eva2.client.EvAClient; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.strategies.GeneticAlgorithm; import eva2.tools.Pair; import eva2.tools.SelectedTag; diff --git a/src/eva2/gui/Plot.java b/src/eva2/gui/Plot.java index 25ef7d65..c6fe214f 100644 --- a/src/eva2/gui/Plot.java +++ b/src/eva2/gui/Plot.java @@ -8,7 +8,7 @@ package eva2.gui; */ import eva2.EvAInfo; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.BasicResourceLoader; import eva2.tools.chart2d.DPointSet; import java.awt.*; diff --git a/src/eva2/optimization/go/GOStandaloneVersion.java b/src/eva2/optimization/go/GOStandaloneVersion.java index dba657cc..cfaccd65 100644 --- a/src/eva2/optimization/go/GOStandaloneVersion.java +++ b/src/eva2/optimization/go/GOStandaloneVersion.java @@ -7,13 +7,13 @@ import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.GAIndividualDoubleData; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.modules.OptimizationParameters; -import eva2.optimization.operators.crossover.CrossoverGAGINPoint; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateESFixedStepSize; -import eva2.optimization.operators.mutation.MutateESLocal; -import eva2.optimization.operators.selection.SelectTournament; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.crossover.CrossoverGAGINPoint; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateESFixedStepSize; +import eva2.optimization.operator.mutation.MutateESLocal; +import eva2.optimization.operator.selection.SelectTournament; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; import eva2.optimization.strategies.EvolutionStrategies; import eva2.optimization.strategies.GeneticAlgorithm; diff --git a/src/eva2/optimization/go/InterfaceOptimizationParameters.java b/src/eva2/optimization/go/InterfaceOptimizationParameters.java index c5fb2c23..217082ec 100644 --- a/src/eva2/optimization/go/InterfaceOptimizationParameters.java +++ b/src/eva2/optimization/go/InterfaceOptimizationParameters.java @@ -1,6 +1,6 @@ package eva2.optimization.go; -import eva2.optimization.operators.postprocess.InterfacePostProcessParams; +import eva2.optimization.operator.postprocess.InterfacePostProcessParams; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/go/InterfaceTerminator.java b/src/eva2/optimization/go/InterfaceTerminator.java index 2fa3ed05..5897d33a 100644 --- a/src/eva2/optimization/go/InterfaceTerminator.java +++ b/src/eva2/optimization/go/InterfaceTerminator.java @@ -1,6 +1,7 @@ package eva2.optimization.go; -import eva2.optimization.populations.InterfaceSolutionSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceOptimizationProblem; /** diff --git a/src/eva2/optimization/go/MOCCOStandalone.java b/src/eva2/optimization/go/MOCCOStandalone.java index 828117c3..9c3b9197 100644 --- a/src/eva2/optimization/go/MOCCOStandalone.java +++ b/src/eva2/optimization/go/MOCCOStandalone.java @@ -23,10 +23,10 @@ import eva2.gui.JParaPanel; import eva2.gui.PropertyDoubleArray; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.mocco.paretofrontviewer.MOCCOViewer; -import eva2.optimization.operators.moso.InterfaceMOSOConverter; -import eva2.optimization.operators.moso.MOSOWeightedFitness; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.moso.InterfaceMOSOConverter; +import eva2.optimization.operator.moso.MOSOWeightedFitness; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.IslandModelEA; import java.awt.BorderLayout; diff --git a/src/eva2/optimization/individuals/AbstractEAIndividual.java b/src/eva2/optimization/individuals/AbstractEAIndividual.java index 4908e812..a84cb40e 100644 --- a/src/eva2/optimization/individuals/AbstractEAIndividual.java +++ b/src/eva2/optimization/individuals/AbstractEAIndividual.java @@ -3,14 +3,14 @@ package eva2.optimization.individuals; import eva2.gui.BeanInspector; import eva2.optimization.go.IndividualInterface; import eva2.optimization.individuals.codings.gp.InterfaceProgram; -import eva2.optimization.operators.constraint.InterfaceConstraint; -import eva2.optimization.operators.crossover.InterfaceCrossover; -import eva2.optimization.operators.crossover.NoCrossover; -import eva2.optimization.operators.initialization.DefaultInitialization; -import eva2.optimization.operators.initialization.InterfaceInitialization; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.NoMutation; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.constraint.InterfaceConstraint; +import eva2.optimization.operator.crossover.InterfaceCrossover; +import eva2.optimization.operator.crossover.NoCrossover; +import eva2.optimization.operator.initialization.DefaultInitialization; +import eva2.optimization.operator.initialization.InterfaceInitialization; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.NoMutation; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.EVAERROR; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/individuals/ESIndividualBinaryData.java b/src/eva2/optimization/individuals/ESIndividualBinaryData.java index 489b5696..040992d9 100644 --- a/src/eva2/optimization/individuals/ESIndividualBinaryData.java +++ b/src/eva2/optimization/individuals/ESIndividualBinaryData.java @@ -1,8 +1,8 @@ package eva2.optimization.individuals; -import eva2.optimization.operators.crossover.CrossoverESDefault; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateESGlobal; +import eva2.optimization.operator.crossover.CrossoverESDefault; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateESGlobal; import eva2.optimization.problems.InterfaceHasInitRange; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/individuals/ESIndividualDoubleData.java b/src/eva2/optimization/individuals/ESIndividualDoubleData.java index 733dd1ee..ca11bf39 100644 --- a/src/eva2/optimization/individuals/ESIndividualDoubleData.java +++ b/src/eva2/optimization/individuals/ESIndividualDoubleData.java @@ -2,9 +2,9 @@ package eva2.optimization.individuals; import eva2.optimization.enums.MutateESCrossoverTypeEnum; -import eva2.optimization.operators.crossover.CrossoverESDefault; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateESGlobal; +import eva2.optimization.operator.crossover.CrossoverESDefault; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateESGlobal; import eva2.optimization.problems.InterfaceHasInitRange; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.EVAERROR; diff --git a/src/eva2/optimization/individuals/ESIndividualIntegerData.java b/src/eva2/optimization/individuals/ESIndividualIntegerData.java index f1c989b1..7211d70a 100644 --- a/src/eva2/optimization/individuals/ESIndividualIntegerData.java +++ b/src/eva2/optimization/individuals/ESIndividualIntegerData.java @@ -1,8 +1,8 @@ package eva2.optimization.individuals; -import eva2.optimization.operators.crossover.CrossoverESDefault; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateESGlobal; +import eva2.optimization.operator.crossover.CrossoverESDefault; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateESGlobal; import eva2.optimization.problems.InterfaceHasInitRange; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/individuals/ESIndividualPermutationData.java b/src/eva2/optimization/individuals/ESIndividualPermutationData.java index 5e67121b..f22a75a3 100644 --- a/src/eva2/optimization/individuals/ESIndividualPermutationData.java +++ b/src/eva2/optimization/individuals/ESIndividualPermutationData.java @@ -1,8 +1,8 @@ package eva2.optimization.individuals; -import eva2.optimization.operators.crossover.CrossoverESDefault; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateESGlobal; +import eva2.optimization.operator.crossover.CrossoverESDefault; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateESGlobal; import eva2.optimization.problems.InterfaceHasInitRange; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java b/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java index f72e21dd..6acd6052 100644 --- a/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java +++ b/src/eva2/optimization/individuals/GAESIndividualBinaryDoubleData.java @@ -1,8 +1,8 @@ package eva2.optimization.individuals; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/individuals/GAIndividualBinaryData.java b/src/eva2/optimization/individuals/GAIndividualBinaryData.java index 05f5c2ae..d6bf016b 100644 --- a/src/eva2/optimization/individuals/GAIndividualBinaryData.java +++ b/src/eva2/optimization/individuals/GAIndividualBinaryData.java @@ -1,10 +1,10 @@ package eva2.optimization.individuals; -import eva2.optimization.operators.crossover.CrossoverGAGINPoint; -import eva2.optimization.operators.crossover.InterfaceCrossover; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateGANBit; +import eva2.optimization.operator.crossover.CrossoverGAGINPoint; +import eva2.optimization.operator.crossover.InterfaceCrossover; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateGANBit; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/individuals/GAIndividualDoubleData.java b/src/eva2/optimization/individuals/GAIndividualDoubleData.java index 1805c37b..7b697a28 100644 --- a/src/eva2/optimization/individuals/GAIndividualDoubleData.java +++ b/src/eva2/optimization/individuals/GAIndividualDoubleData.java @@ -3,10 +3,10 @@ package eva2.optimization.individuals; import eva2.optimization.individuals.codings.ga.GAStandardCodingDouble; import eva2.optimization.individuals.codings.ga.InterfaceGADoubleCoding; -import eva2.optimization.operators.crossover.CrossoverGAGINPoint; -import eva2.optimization.operators.crossover.InterfaceCrossover; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateGAUniform; +import eva2.optimization.operator.crossover.CrossoverGAGINPoint; +import eva2.optimization.operator.crossover.InterfaceCrossover; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateGAUniform; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/individuals/GAIndividualIntegerData.java b/src/eva2/optimization/individuals/GAIndividualIntegerData.java index 75a7dc72..a371f0b0 100644 --- a/src/eva2/optimization/individuals/GAIndividualIntegerData.java +++ b/src/eva2/optimization/individuals/GAIndividualIntegerData.java @@ -3,9 +3,9 @@ package eva2.optimization.individuals; import eva2.optimization.individuals.codings.ga.GAStandardCodingInteger; import eva2.optimization.individuals.codings.ga.InterfaceGAIntegerCoding; -import eva2.optimization.operators.crossover.CrossoverGAGINPoint; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateGANBit; +import eva2.optimization.operator.crossover.CrossoverGAGINPoint; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateGANBit; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/individuals/GAPIndividualProgramData.java b/src/eva2/optimization/individuals/GAPIndividualProgramData.java index 33693189..20ae6561 100644 --- a/src/eva2/optimization/individuals/GAPIndividualProgramData.java +++ b/src/eva2/optimization/individuals/GAPIndividualProgramData.java @@ -2,8 +2,8 @@ package eva2.optimization.individuals; import eva2.optimization.individuals.codings.gp.InterfaceProgram; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/individuals/GEIndividualProgramData.java b/src/eva2/optimization/individuals/GEIndividualProgramData.java index bcc95b01..e5ff40c5 100644 --- a/src/eva2/optimization/individuals/GEIndividualProgramData.java +++ b/src/eva2/optimization/individuals/GEIndividualProgramData.java @@ -4,9 +4,9 @@ package eva2.optimization.individuals; import eva2.optimization.individuals.codings.gp.AbstractGPNode; import eva2.optimization.individuals.codings.gp.GPArea; import eva2.optimization.individuals.codings.gp.InterfaceProgram; -import eva2.optimization.operators.crossover.CrossoverGADefault; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateDefault; +import eva2.optimization.operator.crossover.CrossoverGADefault; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateDefault; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.ArrayList; diff --git a/src/eva2/optimization/individuals/GIIndividualIntegerData.java b/src/eva2/optimization/individuals/GIIndividualIntegerData.java index da3e7e3d..3228bd7a 100644 --- a/src/eva2/optimization/individuals/GIIndividualIntegerData.java +++ b/src/eva2/optimization/individuals/GIIndividualIntegerData.java @@ -1,8 +1,8 @@ package eva2.optimization.individuals; -import eva2.optimization.operators.crossover.CrossoverGIDefault; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateDefault; +import eva2.optimization.operator.crossover.CrossoverGIDefault; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateDefault; import eva2.optimization.problems.InterfaceHasInitRange; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java b/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java index 10e692ec..60af0205 100644 --- a/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java +++ b/src/eva2/optimization/individuals/GIOBGAIndividualIntegerPermutationData.java @@ -1,7 +1,7 @@ package eva2.optimization.individuals; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/individuals/GPIndividualProgramData.java b/src/eva2/optimization/individuals/GPIndividualProgramData.java index bfbe978f..cf075146 100644 --- a/src/eva2/optimization/individuals/GPIndividualProgramData.java +++ b/src/eva2/optimization/individuals/GPIndividualProgramData.java @@ -5,9 +5,9 @@ package eva2.optimization.individuals; import eva2.optimization.individuals.codings.gp.AbstractGPNode; import eva2.optimization.individuals.codings.gp.GPArea; import eva2.optimization.individuals.codings.gp.InterfaceProgram; -import eva2.optimization.operators.crossover.CrossoverGPDefault; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateDefault; +import eva2.optimization.operator.crossover.CrossoverGPDefault; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateDefault; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.EVAERROR; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/individuals/IndividualDistanceComparator.java b/src/eva2/optimization/individuals/IndividualDistanceComparator.java index 24ad91a0..311081c4 100644 --- a/src/eva2/optimization/individuals/IndividualDistanceComparator.java +++ b/src/eva2/optimization/individuals/IndividualDistanceComparator.java @@ -1,6 +1,6 @@ package eva2.optimization.individuals; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; import java.io.Serializable; import java.util.Comparator; diff --git a/src/eva2/optimization/individuals/OBGAIndividualPermutationData.java b/src/eva2/optimization/individuals/OBGAIndividualPermutationData.java index 44d9bee1..bd79634d 100644 --- a/src/eva2/optimization/individuals/OBGAIndividualPermutationData.java +++ b/src/eva2/optimization/individuals/OBGAIndividualPermutationData.java @@ -1,9 +1,9 @@ package eva2.optimization.individuals; -import eva2.optimization.operators.crossover.CrossoverOBGAPMX; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateOBGAFlip; +import eva2.optimization.operator.crossover.CrossoverOBGAPMX; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateOBGAFlip; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.ArrayList; diff --git a/src/eva2/optimization/mocco/MOCCOChooseReferenceSolution.java b/src/eva2/optimization/mocco/MOCCOChooseReferenceSolution.java index 72d38ff3..cd857c61 100644 --- a/src/eva2/optimization/mocco/MOCCOChooseReferenceSolution.java +++ b/src/eva2/optimization/mocco/MOCCOChooseReferenceSolution.java @@ -4,7 +4,7 @@ package eva2.optimization.mocco; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.mocco.paretofrontviewer.InterfaceRefSolutionListener; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; import java.awt.*; diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java b/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java index 4cd75387..dc0c018a 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeGDF.java @@ -7,7 +7,7 @@ import eva2.gui.PropertyEditorProvider; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.moso.MOSOWeightedFitness; +import eva2.optimization.operator.moso.MOSOWeightedFitness; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeMO.java b/src/eva2/optimization/mocco/MOCCOParameterizeMO.java index 66b41b67..fb28999b 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeMO.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeMO.java @@ -5,7 +5,7 @@ import eva2.gui.GenericObjectEditor; import eva2.gui.PropertyEditorProvider; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.MultiObjectiveEA; diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java b/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java index 2ef8a89b..69ced2fc 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeRefPoint.java @@ -5,8 +5,8 @@ import eva2.gui.GenericObjectEditor; import eva2.gui.PropertyEditorProvider; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; -import eva2.optimization.operators.migration.SOBestMigration; -import eva2.optimization.operators.moso.MOSOLpMetric; +import eva2.optimization.operator.migration.SOBestMigration; +import eva2.optimization.operator.moso.MOSOLpMetric; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.strategies.IslandModelEA; import eva2.optimization.tools.AbstractObjectEditor; diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java b/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java index 787dbdff..cff2cd2c 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeSTEP.java @@ -7,7 +7,7 @@ import eva2.gui.PropertyEditorProvider; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.moso.MOSOWeightedFitness; +import eva2.optimization.operator.moso.MOSOWeightedFitness; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; diff --git a/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java b/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java index c4b0d815..baaf2b83 100644 --- a/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java +++ b/src/eva2/optimization/mocco/MOCCOParameterizeTchebycheff.java @@ -5,8 +5,8 @@ import eva2.gui.GenericObjectEditor; import eva2.gui.PropertyEditorProvider; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.go.MOCCOStandalone; -import eva2.optimization.operators.migration.SOBestMigration; -import eva2.optimization.operators.moso.MOSOWeightedLPTchebycheff; +import eva2.optimization.operator.migration.SOBestMigration; +import eva2.optimization.operator.moso.MOSOWeightedLPTchebycheff; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.strategies.IslandModelEA; import eva2.optimization.tools.AbstractObjectEditor; diff --git a/src/eva2/optimization/mocco/MOCCOState.java b/src/eva2/optimization/mocco/MOCCOState.java index c4ed8da8..65c38641 100644 --- a/src/eva2/optimization/mocco/MOCCOState.java +++ b/src/eva2/optimization/mocco/MOCCOState.java @@ -2,9 +2,9 @@ package eva2.optimization.mocco; import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingAllDominating; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingAllDominating; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; diff --git a/src/eva2/optimization/mocco/paretofrontviewer/MOCCOViewer.java b/src/eva2/optimization/mocco/paretofrontviewer/MOCCOViewer.java index f1d98ab3..c0c8463d 100644 --- a/src/eva2/optimization/mocco/paretofrontviewer/MOCCOViewer.java +++ b/src/eva2/optimization/mocco/paretofrontviewer/MOCCOViewer.java @@ -6,7 +6,7 @@ import eva2.gui.GraphPointSet; import eva2.gui.InterfaceDPointWithContent; import eva2.optimization.go.MOCCOStandalone; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; import eva2.tools.chart2d.Chart2DDPointContentSelectable; diff --git a/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontView2D.java b/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontView2D.java index 384146f8..4aa44b52 100644 --- a/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontView2D.java +++ b/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontView2D.java @@ -3,7 +3,7 @@ package eva2.optimization.mocco.paretofrontviewer; import eva2.gui.*; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; import eva2.tools.chart2d.Chart2DDPointContentSelectable; diff --git a/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontViewScatterPlot.java b/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontViewScatterPlot.java index 1a87e8a9..67cfb179 100644 --- a/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontViewScatterPlot.java +++ b/src/eva2/optimization/mocco/paretofrontviewer/ParetoFrontViewScatterPlot.java @@ -3,7 +3,7 @@ package eva2.optimization.mocco.paretofrontviewer; import eva2.gui.*; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceMultiObjectiveDeNovoProblem; import eva2.optimization.problems.InterfaceOptimizationObjective; import eva2.tools.chart2d.Chart2DDPointContentSelectable; diff --git a/src/eva2/optimization/modules/AbstractOptimizationParameters.java b/src/eva2/optimization/modules/AbstractOptimizationParameters.java index 33c2ea6c..6e42ee85 100644 --- a/src/eva2/optimization/modules/AbstractOptimizationParameters.java +++ b/src/eva2/optimization/modules/AbstractOptimizationParameters.java @@ -5,8 +5,8 @@ import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceNotifyOnInformers; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.operators.postprocess.InterfacePostProcessParams; -import eva2.optimization.operators.postprocess.PostProcessParams; +import eva2.optimization.operator.postprocess.InterfacePostProcessParams; +import eva2.optimization.operator.postprocess.PostProcessParams; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/modules/DEParameters.java b/src/eva2/optimization/modules/DEParameters.java index f57f72a3..f57188be 100644 --- a/src/eva2/optimization/modules/DEParameters.java +++ b/src/eva2/optimization/modules/DEParameters.java @@ -3,8 +3,8 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.enums.DETypeEnum; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; import eva2.optimization.strategies.DifferentialEvolution; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/modules/EPParameters.java b/src/eva2/optimization/modules/EPParameters.java index c9561e2f..244a6ed5 100644 --- a/src/eva2/optimization/modules/EPParameters.java +++ b/src/eva2/optimization/modules/EPParameters.java @@ -2,9 +2,9 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; import eva2.optimization.strategies.EvolutionaryProgramming; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/modules/GAParameters.java b/src/eva2/optimization/modules/GAParameters.java index 0db3c01a..930e7cc1 100644 --- a/src/eva2/optimization/modules/GAParameters.java +++ b/src/eva2/optimization/modules/GAParameters.java @@ -1,9 +1,9 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.B1Problem; import eva2.optimization.strategies.GeneticAlgorithm; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/modules/HCParameters.java b/src/eva2/optimization/modules/HCParameters.java index c8a342ea..633b152a 100644 --- a/src/eva2/optimization/modules/HCParameters.java +++ b/src/eva2/optimization/modules/HCParameters.java @@ -1,8 +1,8 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.B1Problem; import eva2.optimization.strategies.HillClimbing; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/modules/MCParameters.java b/src/eva2/optimization/modules/MCParameters.java index 80da22fb..74f5100d 100644 --- a/src/eva2/optimization/modules/MCParameters.java +++ b/src/eva2/optimization/modules/MCParameters.java @@ -1,8 +1,8 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.B1Problem; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.MonteCarloSearch; diff --git a/src/eva2/optimization/modules/MOEAParameters.java b/src/eva2/optimization/modules/MOEAParameters.java index 20c3f867..6a1abf59 100644 --- a/src/eva2/optimization/modules/MOEAParameters.java +++ b/src/eva2/optimization/modules/MOEAParameters.java @@ -1,10 +1,10 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; -import eva2.optimization.operators.archiving.InterfaceArchiving; -import eva2.optimization.operators.archiving.InterfaceInformationRetrieval; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.InterfaceArchiving; +import eva2.optimization.operator.archiving.InterfaceInformationRetrieval; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.TF1Problem; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.MultiObjectiveEA; diff --git a/src/eva2/optimization/modules/OptimizationParameters.java b/src/eva2/optimization/modules/OptimizationParameters.java index 64b00cb6..cd047021 100644 --- a/src/eva2/optimization/modules/OptimizationParameters.java +++ b/src/eva2/optimization/modules/OptimizationParameters.java @@ -2,7 +2,7 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.operators.terminators.EvaluationTerminator; +import eva2.optimization.operator.terminators.EvaluationTerminator; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.strategies.GeneticAlgorithm; diff --git a/src/eva2/optimization/modules/PBILParameters.java b/src/eva2/optimization/modules/PBILParameters.java index 5131e307..c7642033 100644 --- a/src/eva2/optimization/modules/PBILParameters.java +++ b/src/eva2/optimization/modules/PBILParameters.java @@ -1,9 +1,9 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.B1Problem; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.PopulationBasedIncrementalLearning; diff --git a/src/eva2/optimization/modules/PSOParameters.java b/src/eva2/optimization/modules/PSOParameters.java index 952dd18a..0863e51d 100644 --- a/src/eva2/optimization/modules/PSOParameters.java +++ b/src/eva2/optimization/modules/PSOParameters.java @@ -4,8 +4,8 @@ package eva2.optimization.modules; import eva2.gui.GenericObjectEditor; import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.enums.PSOTopologyEnum; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.ParticleSwarmOptimization; diff --git a/src/eva2/optimization/modules/Processor.java b/src/eva2/optimization/modules/Processor.java index a5b514fe..ecc07fc0 100644 --- a/src/eva2/optimization/modules/Processor.java +++ b/src/eva2/optimization/modules/Processor.java @@ -4,14 +4,15 @@ import eva2.optimization.go.*; import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.gui.BeanInspector; import eva2.optimization.OptimizationStateListener; -import eva2.optimization.operators.paramcontrol.ConstantParameters; -import eva2.optimization.operators.paramcontrol.InterfaceParameterControl; -import eva2.optimization.operators.postprocess.PostProcess; -import eva2.optimization.operators.postprocess.PostProcessParams; -import eva2.optimization.operators.postprocess.SolutionHistogram; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.operators.terminators.GenerationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.paramcontrol.ConstantParameters; +import eva2.optimization.operator.paramcontrol.InterfaceParameterControl; +import eva2.optimization.operator.postprocess.PostProcess; +import eva2.optimization.operator.postprocess.PostProcessParams; +import eva2.optimization.operator.postprocess.SolutionHistogram; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.operator.terminators.GenerationTerminator; +import eva2.optimization.population.Population; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/modules/SAParameters.java b/src/eva2/optimization/modules/SAParameters.java index f7197c3b..48cac06e 100644 --- a/src/eva2/optimization/modules/SAParameters.java +++ b/src/eva2/optimization/modules/SAParameters.java @@ -3,8 +3,8 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/modules/SSGAParameters.java b/src/eva2/optimization/modules/SSGAParameters.java index f96d199f..777ed97a 100644 --- a/src/eva2/optimization/modules/SSGAParameters.java +++ b/src/eva2/optimization/modules/SSGAParameters.java @@ -1,10 +1,10 @@ package eva2.optimization.modules; import eva2.optimization.go.InterfaceOptimizationParameters; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.replacement.InterfaceReplacement; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.replacement.InterfaceReplacement; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.B1Problem; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.strategies.SteadyStateGA; diff --git a/src/eva2/optimization/operators/archiving/AbstractArchiving.java b/src/eva2/optimization/operator/archiving/AbstractArchiving.java similarity index 92% rename from src/eva2/optimization/operators/archiving/AbstractArchiving.java rename to src/eva2/optimization/operator/archiving/AbstractArchiving.java index a711d214..e7b32898 100644 --- a/src/eva2/optimization/operators/archiving/AbstractArchiving.java +++ b/src/eva2/optimization/operator/archiving/AbstractArchiving.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; import eva2.gui.*; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.chart2d.Chart2DDPointIconCross; import eva2.tools.chart2d.DPoint; import eva2.tools.chart2d.DPointIcon; @@ -17,11 +17,9 @@ import eva2.tools.chart2d.DPointIcon; * To change this template use Options | File Templates. */ public abstract class AbstractArchiving implements InterfaceArchiving, java.io.Serializable { - - protected boolean m_Debug = false; transient protected eva2.gui.Plot m_Plot = null; protected int p = 0; - public boolean m_ObeyDebsConstViolationPrinciple = true; + public boolean obeyDebsConstViolationPrinciple = true; /** This method allows you to make a deep clone of * the object @@ -30,14 +28,14 @@ public abstract class AbstractArchiving implements InterfaceArchiving, java.io.S @Override public abstract Object clone(); - /** This mehtod will test if a given individual is dominant within + /** This method will test if a given individual is dominant within * a given population * @param indy The individual that is to be tested. * @param pop The population that the individual is to be tested against. * @return True if the individual is dominating */ public boolean isDominant(AbstractEAIndividual indy, Population pop) { - if (this.m_ObeyDebsConstViolationPrinciple) { + if (this.obeyDebsConstViolationPrinciple) { for (int i = 0; i < pop.size(); i++) { if (!(indy.equals(pop.get(i))) && (((AbstractEAIndividual)pop.get(i)).isDominatingDebConstraints(indy))) { return false; @@ -180,12 +178,12 @@ public abstract class AbstractArchiving implements InterfaceArchiving, java.io.S * @param b The new state */ public void setObeyDebsConstViolationPrinciple(boolean b) { - this.m_ObeyDebsConstViolationPrinciple = b; + this.obeyDebsConstViolationPrinciple = b; } public boolean getObeyDebsConstViolationPrinciple() { - return this.m_ObeyDebsConstViolationPrinciple; + return this.obeyDebsConstViolationPrinciple; } public String obeyDebsConstViolationPrincipleToolTip() { - return "Toggle the use of Deb's coonstraint violation principle."; + return "Toggle the use of Deb's constraint violation principle."; } } diff --git a/src/eva2/optimization/operators/archiving/ArchivingAllDominating.java b/src/eva2/optimization/operator/archiving/ArchivingAllDominating.java similarity index 92% rename from src/eva2/optimization/operators/archiving/ArchivingAllDominating.java rename to src/eva2/optimization/operator/archiving/ArchivingAllDominating.java index edc5d9d9..17edba38 100644 --- a/src/eva2/optimization/operators/archiving/ArchivingAllDominating.java +++ b/src/eva2/optimization/operator/archiving/ArchivingAllDominating.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.selection.SelectBestIndividuals; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.selection.SelectBestIndividuals; +import eva2.optimization.population.Population; /** This simple strategy simply archives all Pareto optimal solutions. This method is * very prone to OutOfMemory errors! @@ -19,7 +19,7 @@ public class ArchivingAllDominating extends AbstractArchiving implements java.io } public ArchivingAllDominating(ArchivingAllDominating a) { - this.m_ObeyDebsConstViolationPrinciple = a.m_ObeyDebsConstViolationPrinciple; + this.obeyDebsConstViolationPrinciple = a.obeyDebsConstViolationPrinciple; } @Override @@ -39,7 +39,7 @@ public class ArchivingAllDominating extends AbstractArchiving implements java.io pop.SetArchive(new Population()); } // System.out.println("addElementsToArchive"); - if (this.m_ObeyDebsConstViolationPrinciple) { + if (this.obeyDebsConstViolationPrinciple) { for (int i = 0; i < pop.size(); i++) { //System.out.println("i:"+ i+" "+pop.size()+"_"+((AbstractEAIndividual)pop.get(0)).getFitness().length); if ((((AbstractEAIndividual)pop.get(i)).getConstraintViolation() == 0) && (this.isDominant((AbstractEAIndividual)pop.get(i), pop.getArchive()))) { diff --git a/src/eva2/optimization/operators/archiving/ArchivingMaxiMin.java b/src/eva2/optimization/operator/archiving/ArchivingMaxiMin.java similarity index 96% rename from src/eva2/optimization/operators/archiving/ArchivingMaxiMin.java rename to src/eva2/optimization/operator/archiving/ArchivingMaxiMin.java index 6d863e23..e6cee397 100644 --- a/src/eva2/optimization/operators/archiving/ArchivingMaxiMin.java +++ b/src/eva2/optimization/operator/archiving/ArchivingMaxiMin.java @@ -1,10 +1,10 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.moso.MOSOMaxiMin; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.SelectBestIndividuals; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.moso.MOSOMaxiMin; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.SelectBestIndividuals; +import eva2.optimization.population.Population; import eva2.tools.chart2d.Chart2DDPointIconCross; import eva2.tools.chart2d.DPointIcon; diff --git a/src/eva2/optimization/operators/archiving/ArchivingNSGA.java b/src/eva2/optimization/operator/archiving/ArchivingNSGA.java similarity index 96% rename from src/eva2/optimization/operators/archiving/ArchivingNSGA.java rename to src/eva2/optimization/operator/archiving/ArchivingNSGA.java index d8b9dac9..bbefaa7f 100644 --- a/src/eva2/optimization/operators/archiving/ArchivingNSGA.java +++ b/src/eva2/optimization/operator/archiving/ArchivingNSGA.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** The non dominated sorting GA archiving method, based on dominace sorting. * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operators/archiving/ArchivingNSGAII.java b/src/eva2/optimization/operator/archiving/ArchivingNSGAII.java similarity index 98% rename from src/eva2/optimization/operators/archiving/ArchivingNSGAII.java rename to src/eva2/optimization/operator/archiving/ArchivingNSGAII.java index 35efc64b..9ec548de 100644 --- a/src/eva2/optimization/operators/archiving/ArchivingNSGAII.java +++ b/src/eva2/optimization/operator/archiving/ArchivingNSGAII.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.chart2d.Chart2DDPointIconCross; import eva2.tools.chart2d.DPointIcon; import java.util.ArrayList; diff --git a/src/eva2/optimization/operators/archiving/ArchivingNSGAIISMeasure.java b/src/eva2/optimization/operator/archiving/ArchivingNSGAIISMeasure.java similarity index 93% rename from src/eva2/optimization/operators/archiving/ArchivingNSGAIISMeasure.java rename to src/eva2/optimization/operator/archiving/ArchivingNSGAIISMeasure.java index 5304f5d7..b712fd15 100644 --- a/src/eva2/optimization/operators/archiving/ArchivingNSGAIISMeasure.java +++ b/src/eva2/optimization/operator/archiving/ArchivingNSGAIISMeasure.java @@ -1,109 +1,109 @@ -package eva2.optimization.operators.archiving; - -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.individuals.AbstractEAIndividualComparator; -import eva2.optimization.populations.Population; -import java.util.Arrays; - -public class ArchivingNSGAIISMeasure extends ArchivingNSGAII { - - /** This method will cacluated the NSGAII crowding distance - * for all individuals - * @param fronts The pareto fronts - */ - @Override - public void calculateCrowdingDistance(Population[] fronts) { - //TODO Dimension der Zielfunktion checken - - for (int rank = 0; rank < fronts.length; rank++) - { - calculateCrowdingDistance(fronts[rank]); - } - } - - - /** This mehtod will test if a given individual is dominant within - * a given population - * @param indy The individual that is to be tested. - * @param pop The population that the individual is to be tested against. - * @return True if the individual is dominating - */ - @Override - public boolean isDominant(AbstractEAIndividual indy, Population pop) { - if (this.m_ObeyDebsConstViolationPrinciple) { - for (int i = 0; i < pop.size(); i++) { - if (!(indy.equals(pop.get(i))||indy.equalFitness((AbstractEAIndividual) pop.get(i))) && (((AbstractEAIndividual)pop.get(i)).isDominatingDebConstraints(indy))) { - return false; - } - } - } else { - for (int i = 0; i < pop.size(); i++) { - if (!(indy.equals(pop.get(i))||indy.equalFitness((AbstractEAIndividual) pop.get(i))) && (((AbstractEAIndividual)pop.get(i)).isDominating(indy))) { - return false; - } - } - } - return true; - } - - public void calculateCrowdingDistance(Population front) { - - Object[] frontArray= front.toArray(); - boolean[] assigned=new boolean[frontArray.length]; - - double[] v=new double[frontArray.length]; - int i, left, right; - - // initialization of assignment vector - for (i = 0; i < frontArray.length; i++) - { - assigned[ i ] = false; - - } - - - Arrays.sort(frontArray,new AbstractEAIndividualComparator(0)); - - - ((AbstractEAIndividual)frontArray[0]).putData("HyperCube",Double.MAX_VALUE); //die beiden aussen bekommen maximal wert als smeasure - ((AbstractEAIndividual)frontArray[frontArray.length-1]).putData("HyperCube",Double.MAX_VALUE); - v[0]=Double.MAX_VALUE; - v[frontArray.length-1]=Double.MAX_VALUE; - - - for (int e = 1; e < frontArray.length - 1; e++) - { // loop over all non-border elements - for (i = 1; (assigned[ i ]); i++); // determine 1st not assigned, non-border element - - for (left = 0; i < frontArray.length - 1;) - { // loop over all not assigned elements - // determine right not assigned neighbor - for (right = i + 1; (assigned[ right]); right++); - - v[i] = (((AbstractEAIndividual)frontArray[right]).getFitness(0) - ((AbstractEAIndividual)frontArray[i]).getFitness(0)) * - (((AbstractEAIndividual)frontArray[left]).getFitness(1) - ((AbstractEAIndividual)frontArray[i]).getFitness(1)); - - left = i; - i = right; - } - - int minIndex = 0; - double min=v[minIndex]; - for (int f = 1; f < frontArray.length - 1; f++) - { - if (!assigned[ f ]) { - if (v[f] < min) - { - min = v[f]; - minIndex = f; - } - } - } - assigned[ minIndex ] = true; - ((AbstractEAIndividual)frontArray[ minIndex]).putData("HyperCube",new Double(e)); - } - - - - } -} +package eva2.optimization.operator.archiving; + +import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.individuals.AbstractEAIndividualComparator; +import eva2.optimization.population.Population; +import java.util.Arrays; + +public class ArchivingNSGAIISMeasure extends ArchivingNSGAII { + + /** This method will cacluated the NSGAII crowding distance + * for all individuals + * @param fronts The pareto fronts + */ + @Override + public void calculateCrowdingDistance(Population[] fronts) { + //TODO Dimension der Zielfunktion checken + + for (int rank = 0; rank < fronts.length; rank++) + { + calculateCrowdingDistance(fronts[rank]); + } + } + + + /** This mehtod will test if a given individual is dominant within + * a given population + * @param indy The individual that is to be tested. + * @param pop The population that the individual is to be tested against. + * @return True if the individual is dominating + */ + @Override + public boolean isDominant(AbstractEAIndividual indy, Population pop) { + if (this.obeyDebsConstViolationPrinciple) { + for (int i = 0; i < pop.size(); i++) { + if (!(indy.equals(pop.get(i))||indy.equalFitness((AbstractEAIndividual) pop.get(i))) && (((AbstractEAIndividual)pop.get(i)).isDominatingDebConstraints(indy))) { + return false; + } + } + } else { + for (int i = 0; i < pop.size(); i++) { + if (!(indy.equals(pop.get(i))||indy.equalFitness((AbstractEAIndividual) pop.get(i))) && (((AbstractEAIndividual)pop.get(i)).isDominating(indy))) { + return false; + } + } + } + return true; + } + + public void calculateCrowdingDistance(Population front) { + + Object[] frontArray= front.toArray(); + boolean[] assigned=new boolean[frontArray.length]; + + double[] v=new double[frontArray.length]; + int i, left, right; + + // initialization of assignment vector + for (i = 0; i < frontArray.length; i++) + { + assigned[ i ] = false; + + } + + + Arrays.sort(frontArray,new AbstractEAIndividualComparator(0)); + + + ((AbstractEAIndividual)frontArray[0]).putData("HyperCube",Double.MAX_VALUE); //die beiden aussen bekommen maximal wert als smeasure + ((AbstractEAIndividual)frontArray[frontArray.length-1]).putData("HyperCube",Double.MAX_VALUE); + v[0]=Double.MAX_VALUE; + v[frontArray.length-1]=Double.MAX_VALUE; + + + for (int e = 1; e < frontArray.length - 1; e++) + { // loop over all non-border elements + for (i = 1; (assigned[ i ]); i++); // determine 1st not assigned, non-border element + + for (left = 0; i < frontArray.length - 1;) + { // loop over all not assigned elements + // determine right not assigned neighbor + for (right = i + 1; (assigned[ right]); right++); + + v[i] = (((AbstractEAIndividual)frontArray[right]).getFitness(0) - ((AbstractEAIndividual)frontArray[i]).getFitness(0)) * + (((AbstractEAIndividual)frontArray[left]).getFitness(1) - ((AbstractEAIndividual)frontArray[i]).getFitness(1)); + + left = i; + i = right; + } + + int minIndex = 0; + double min=v[minIndex]; + for (int f = 1; f < frontArray.length - 1; f++) + { + if (!assigned[ f ]) { + if (v[f] < min) + { + min = v[f]; + minIndex = f; + } + } + } + assigned[ minIndex ] = true; + ((AbstractEAIndividual)frontArray[ minIndex]).putData("HyperCube",new Double(e)); + } + + + + } +} diff --git a/src/eva2/optimization/operators/archiving/ArchivingPESAII.java b/src/eva2/optimization/operator/archiving/ArchivingPESAII.java similarity index 99% rename from src/eva2/optimization/operators/archiving/ArchivingPESAII.java rename to src/eva2/optimization/operator/archiving/ArchivingPESAII.java index e5aef87c..394f9fc9 100644 --- a/src/eva2/optimization/operators/archiving/ArchivingPESAII.java +++ b/src/eva2/optimization/operator/archiving/ArchivingPESAII.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; import eva2.gui.GraphPointSet; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.chart2d.Chart2DDPointIconCircle; import eva2.tools.chart2d.Chart2DDPointIconText; import eva2.tools.chart2d.DLine; diff --git a/src/eva2/optimization/operators/archiving/ArchivingSPEAII.java b/src/eva2/optimization/operator/archiving/ArchivingSPEAII.java similarity index 99% rename from src/eva2/optimization/operators/archiving/ArchivingSPEAII.java rename to src/eva2/optimization/operator/archiving/ArchivingSPEAII.java index 38978df1..84821ae8 100644 --- a/src/eva2/optimization/operators/archiving/ArchivingSPEAII.java +++ b/src/eva2/optimization/operator/archiving/ArchivingSPEAII.java @@ -1,11 +1,11 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; import eva2.gui.GraphPointSet; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; -import eva2.optimization.operators.distancemetric.ObjectiveSpaceMetric; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.operator.distancemetric.ObjectiveSpaceMetric; +import eva2.optimization.population.Population; import eva2.tools.chart2d.Chart2DDPointIconCircle; import eva2.tools.chart2d.Chart2DDPointIconText; import eva2.tools.chart2d.DPoint; diff --git a/src/eva2/optimization/operators/archiving/InformationRetrievalInserting.java b/src/eva2/optimization/operator/archiving/InformationRetrievalInserting.java similarity index 95% rename from src/eva2/optimization/operators/archiving/InformationRetrievalInserting.java rename to src/eva2/optimization/operator/archiving/InformationRetrievalInserting.java index e7265658..9278558c 100644 --- a/src/eva2/optimization/operators/archiving/InformationRetrievalInserting.java +++ b/src/eva2/optimization/operator/archiving/InformationRetrievalInserting.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** This information retrieval inserts the retrieved * solutions, by removing random individuals from the diff --git a/src/eva2/optimization/operators/archiving/InformationRetrievalNone.java b/src/eva2/optimization/operator/archiving/InformationRetrievalNone.java similarity index 93% rename from src/eva2/optimization/operators/archiving/InformationRetrievalNone.java rename to src/eva2/optimization/operator/archiving/InformationRetrievalNone.java index 50f29975..1ff02505 100644 --- a/src/eva2/optimization/operators/archiving/InformationRetrievalNone.java +++ b/src/eva2/optimization/operator/archiving/InformationRetrievalNone.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** This class allows no information retrieval and thus no elitism * for MOEAs. diff --git a/src/eva2/optimization/operators/archiving/InformationRetrievalReplacing.java b/src/eva2/optimization/operator/archiving/InformationRetrievalReplacing.java similarity index 94% rename from src/eva2/optimization/operators/archiving/InformationRetrievalReplacing.java rename to src/eva2/optimization/operator/archiving/InformationRetrievalReplacing.java index 69f2593f..73ced066 100644 --- a/src/eva2/optimization/operators/archiving/InformationRetrievalReplacing.java +++ b/src/eva2/optimization/operator/archiving/InformationRetrievalReplacing.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; /** This information retrieval method simply add the retrieved solutions diff --git a/src/eva2/optimization/operators/archiving/InterfaceArchiving.java b/src/eva2/optimization/operator/archiving/InterfaceArchiving.java similarity index 88% rename from src/eva2/optimization/operators/archiving/InterfaceArchiving.java rename to src/eva2/optimization/operator/archiving/InterfaceArchiving.java index 47e1b53d..bdee1719 100644 --- a/src/eva2/optimization/operators/archiving/InterfaceArchiving.java +++ b/src/eva2/optimization/operator/archiving/InterfaceArchiving.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** This Interface give the general methods required for a archiving method. * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operators/archiving/InterfaceInformationRetrieval.java b/src/eva2/optimization/operator/archiving/InterfaceInformationRetrieval.java similarity index 87% rename from src/eva2/optimization/operators/archiving/InterfaceInformationRetrieval.java rename to src/eva2/optimization/operator/archiving/InterfaceInformationRetrieval.java index f5d316c4..ba74479d 100644 --- a/src/eva2/optimization/operators/archiving/InterfaceInformationRetrieval.java +++ b/src/eva2/optimization/operator/archiving/InterfaceInformationRetrieval.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** This interface gives the necessary methods for an information * retrieval algorithm. diff --git a/src/eva2/optimization/operators/archiving/InterfaceRemoveSurplusIndividuals.java b/src/eva2/optimization/operator/archiving/InterfaceRemoveSurplusIndividuals.java similarity index 87% rename from src/eva2/optimization/operators/archiving/InterfaceRemoveSurplusIndividuals.java rename to src/eva2/optimization/operator/archiving/InterfaceRemoveSurplusIndividuals.java index 081c505a..9d16b7cd 100644 --- a/src/eva2/optimization/operators/archiving/InterfaceRemoveSurplusIndividuals.java +++ b/src/eva2/optimization/operator/archiving/InterfaceRemoveSurplusIndividuals.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** This interface gives the method necessary for an aglorithm * which is use to reduce the size of an archive. diff --git a/src/eva2/optimization/operators/archiving/RemoveSurplusIndividualsDynamicHyperCube.java b/src/eva2/optimization/operator/archiving/RemoveSurplusIndividualsDynamicHyperCube.java similarity index 97% rename from src/eva2/optimization/operators/archiving/RemoveSurplusIndividualsDynamicHyperCube.java rename to src/eva2/optimization/operator/archiving/RemoveSurplusIndividualsDynamicHyperCube.java index 58313da2..08bb2c60 100644 --- a/src/eva2/optimization/operators/archiving/RemoveSurplusIndividualsDynamicHyperCube.java +++ b/src/eva2/optimization/operator/archiving/RemoveSurplusIndividualsDynamicHyperCube.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; /** This class removes surplus individuals based on bounding diff --git a/src/eva2/optimization/operators/archiving/RemoveSurplusIndividualsSMetric.java b/src/eva2/optimization/operator/archiving/RemoveSurplusIndividualsSMetric.java similarity index 95% rename from src/eva2/optimization/operators/archiving/RemoveSurplusIndividualsSMetric.java rename to src/eva2/optimization/operator/archiving/RemoveSurplusIndividualsSMetric.java index 609791a4..14541200 100644 --- a/src/eva2/optimization/operators/archiving/RemoveSurplusIndividualsSMetric.java +++ b/src/eva2/optimization/operator/archiving/RemoveSurplusIndividualsSMetric.java @@ -1,186 +1,186 @@ -package eva2.optimization.operators.archiving; - -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; -import eva2.tools.math.RNG; - -/** This class removes surplus individuals based on bounding - * hybercube, which can be calculated in objective or decision - * space. But i guess currently you can't toggel that. But here - * the hybercubes are dynamic, e.g. theey are recalculated after - * an individual is removed. - * Created by IntelliJ IDEA. - * User: streiche - * Date: 13.05.2004 - * Time: 14:36:54 - * To change this template use File | Settings | File Templates. - */ -public class RemoveSurplusIndividualsSMetric implements InterfaceRemoveSurplusIndividuals, java.io.Serializable { - - public RemoveSurplusIndividualsSMetric() { - } - - public RemoveSurplusIndividualsSMetric(RemoveSurplusIndividualsSMetric a) { - } - - @Override - public Object clone() { - return (Object) new RemoveSurplusIndividualsSMetric(this); - } - - /** This method will remove surplus individuals - * from a given archive. Note archive will be altered! - * @param archive - */ - @Override - public void removeSurplusIndividuals(Population archive) { - double[][] fitness; - double[] space; - int indexSmallHyperCube; - while(archive.targetSizeExceeded()) { - // select the individual with the least space around him - // to do this i got to find the next smaller and the next bigger one - fitness = new double[archive.size()][]; - space = new double[archive.size()]; - for (int i = 0; i < archive.size(); i++) { - fitness[i] = ((AbstractEAIndividual)archive.get(i)).getFitness(); - } - space = this.calculateContributingHypervolume(fitness); - // now find the individual with the smallest hypervolume - indexSmallHyperCube = 0; - for (int i = 1; i < archive.size(); i++) { - if (space[i] < space[indexSmallHyperCube]) { - indexSmallHyperCube = i; - } - else { - // if they are equal give them a fair chance to exchange between them - if ((space[i] == space[indexSmallHyperCube]) && (RNG.flipCoin(0.5))) { - indexSmallHyperCube = i; - } - } - } - archive.remove(indexSmallHyperCube); - } - } - - public double[] calculateContributingHypervolume(double[][] fitness) { - - - int counter; - // Vector< Integer > sort=new Vector(); - // Vector< Integer > global=new Vector(); - // Vector< Boolean > assigned=new Vector(); - int size=fitness.length;//TODO size bestimmen (anzahl individuen?) - double result[]=new double[size]; - int[] sort=new int[size]; - int[] global=new int[size]; - boolean[] assigned=new boolean[size]; - double temp1; - double temp2; - double v; - int i, left, right; - - - - // Initialize sharing values - // setMOOShare(0.0); - - - - - // gather individuals with the same rank into a sub population - // PopulationMOO subpop( numberOfMOORank( rank ) ); - counter = 0; - for (i = 0; i < fitness.length; i++) - { - global[ counter ] = i; - counter++; - } - - // sort according to 1st objective - int obj = 0; - // initialization of index vector - for (i = 0; i < size; i++) - { - sort[ i ] = i; assigned[ i ] = false; - } - // sort - boolean changed; - - - changed = false; - for (i = 0; i < counter - 1; i++) - { - - temp1=fitness[ global[ sort[ i ] ]][obj]; - temp2=fitness[ global[ sort[ i+1 ] ]][obj]; - - if (temp1 > temp2) - { - int temp = sort[ i ]; - sort[ i ] = sort[ i + 1 ]; - sort[ i + 1 ] = temp; - changed = true ; - } - } - - while(changed){ - changed = false; - for (i = 0; i < counter - 1; i++) - { - - temp1=fitness[ global[ sort[ i ] ]][obj]; - temp2=fitness[ global[ sort[ i+1 ] ]][obj]; - - if (temp1 > temp2) - { - int temp = sort[ i ]; - sort[ i ] = sort[ i + 1 ]; - sort[ i + 1 ] = temp; - changed = true ; - } - } - } - - - result[global[ sort[ 0 ] ]]=Double.MAX_VALUE; //die beiden aussen bekommen maximal wert als smeasure - result[global[ sort[ counter - 1 ] ]]=Double.MAX_VALUE; - - for (int e = 1; e < counter - 1; e++) - { // loop over all non-border elements - for (i = 1; (assigned[ sort[ i ] ]); i++); // determine 1st not assigned, non-border element - for (left = 0; i < counter - 1;) - { // loop over all not assigned elements - // determine right not assigned neighbor - for (right = i + 1; (assigned[ sort[ right ] ]); right++); - - - v = (fitness[ global[ sort[ right ] ] ][0] - - fitness[global[ sort[ i ] ] ][0]) * - (fitness[global[ sort[ left ] ] ][1] - - fitness[global[ sort[ i ] ] ][1]); - - result[ global[ sort[ i ] ]]=v; - - left = i; - i = right; - } - int minIndex = 0; - double min = result[ global[ sort[ minIndex ] ]]; - for (int f = 1; f < counter - 1; f++) - { - if (!assigned[ sort[ f ] ]) { - if (result[global[ sort[ f ] ]] < min) - { - min = result[global[ sort[ f ] ]]; - minIndex = f; - } - } - } - assigned[ sort[ minIndex ] ] = true; - result[ global[ sort[ minIndex ] ]]=e; - } - return result; - } - +package eva2.optimization.operator.archiving; + +import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.population.Population; +import eva2.tools.math.RNG; + +/** This class removes surplus individuals based on bounding + * hybercube, which can be calculated in objective or decision + * space. But i guess currently you can't toggel that. But here + * the hybercubes are dynamic, e.g. theey are recalculated after + * an individual is removed. + * Created by IntelliJ IDEA. + * User: streiche + * Date: 13.05.2004 + * Time: 14:36:54 + * To change this template use File | Settings | File Templates. + */ +public class RemoveSurplusIndividualsSMetric implements InterfaceRemoveSurplusIndividuals, java.io.Serializable { + + public RemoveSurplusIndividualsSMetric() { + } + + public RemoveSurplusIndividualsSMetric(RemoveSurplusIndividualsSMetric a) { + } + + @Override + public Object clone() { + return (Object) new RemoveSurplusIndividualsSMetric(this); + } + + /** This method will remove surplus individuals + * from a given archive. Note archive will be altered! + * @param archive + */ + @Override + public void removeSurplusIndividuals(Population archive) { + double[][] fitness; + double[] space; + int indexSmallHyperCube; + while(archive.targetSizeExceeded()) { + // select the individual with the least space around him + // to do this i got to find the next smaller and the next bigger one + fitness = new double[archive.size()][]; + space = new double[archive.size()]; + for (int i = 0; i < archive.size(); i++) { + fitness[i] = ((AbstractEAIndividual)archive.get(i)).getFitness(); + } + space = this.calculateContributingHypervolume(fitness); + // now find the individual with the smallest hypervolume + indexSmallHyperCube = 0; + for (int i = 1; i < archive.size(); i++) { + if (space[i] < space[indexSmallHyperCube]) { + indexSmallHyperCube = i; + } + else { + // if they are equal give them a fair chance to exchange between them + if ((space[i] == space[indexSmallHyperCube]) && (RNG.flipCoin(0.5))) { + indexSmallHyperCube = i; + } + } + } + archive.remove(indexSmallHyperCube); + } + } + + public double[] calculateContributingHypervolume(double[][] fitness) { + + + int counter; + // Vector< Integer > sort=new Vector(); + // Vector< Integer > global=new Vector(); + // Vector< Boolean > assigned=new Vector(); + int size=fitness.length;//TODO size bestimmen (anzahl individuen?) + double result[]=new double[size]; + int[] sort=new int[size]; + int[] global=new int[size]; + boolean[] assigned=new boolean[size]; + double temp1; + double temp2; + double v; + int i, left, right; + + + + // Initialize sharing values + // setMOOShare(0.0); + + + + + // gather individuals with the same rank into a sub population + // PopulationMOO subpop( numberOfMOORank( rank ) ); + counter = 0; + for (i = 0; i < fitness.length; i++) + { + global[ counter ] = i; + counter++; + } + + // sort according to 1st objective + int obj = 0; + // initialization of index vector + for (i = 0; i < size; i++) + { + sort[ i ] = i; assigned[ i ] = false; + } + // sort + boolean changed; + + + changed = false; + for (i = 0; i < counter - 1; i++) + { + + temp1=fitness[ global[ sort[ i ] ]][obj]; + temp2=fitness[ global[ sort[ i+1 ] ]][obj]; + + if (temp1 > temp2) + { + int temp = sort[ i ]; + sort[ i ] = sort[ i + 1 ]; + sort[ i + 1 ] = temp; + changed = true ; + } + } + + while(changed){ + changed = false; + for (i = 0; i < counter - 1; i++) + { + + temp1=fitness[ global[ sort[ i ] ]][obj]; + temp2=fitness[ global[ sort[ i+1 ] ]][obj]; + + if (temp1 > temp2) + { + int temp = sort[ i ]; + sort[ i ] = sort[ i + 1 ]; + sort[ i + 1 ] = temp; + changed = true ; + } + } + } + + + result[global[ sort[ 0 ] ]]=Double.MAX_VALUE; //die beiden aussen bekommen maximal wert als smeasure + result[global[ sort[ counter - 1 ] ]]=Double.MAX_VALUE; + + for (int e = 1; e < counter - 1; e++) + { // loop over all non-border elements + for (i = 1; (assigned[ sort[ i ] ]); i++); // determine 1st not assigned, non-border element + for (left = 0; i < counter - 1;) + { // loop over all not assigned elements + // determine right not assigned neighbor + for (right = i + 1; (assigned[ sort[ right ] ]); right++); + + + v = (fitness[ global[ sort[ right ] ] ][0] - + fitness[global[ sort[ i ] ] ][0]) * + (fitness[global[ sort[ left ] ] ][1] - + fitness[global[ sort[ i ] ] ][1]); + + result[ global[ sort[ i ] ]]=v; + + left = i; + i = right; + } + int minIndex = 0; + double min = result[ global[ sort[ minIndex ] ]]; + for (int f = 1; f < counter - 1; f++) + { + if (!assigned[ sort[ f ] ]) { + if (result[global[ sort[ f ] ]] < min) + { + min = result[global[ sort[ f ] ]]; + minIndex = f; + } + } + } + assigned[ sort[ minIndex ] ] = true; + result[ global[ sort[ minIndex ] ]]=e; + } + return result; + } + } \ No newline at end of file diff --git a/src/eva2/optimization/operators/archiving/RemoveSurplusIndividualsStaticHyperCube.java b/src/eva2/optimization/operator/archiving/RemoveSurplusIndividualsStaticHyperCube.java similarity index 96% rename from src/eva2/optimization/operators/archiving/RemoveSurplusIndividualsStaticHyperCube.java rename to src/eva2/optimization/operator/archiving/RemoveSurplusIndividualsStaticHyperCube.java index 92744f7a..b11271bf 100644 --- a/src/eva2/optimization/operators/archiving/RemoveSurplusIndividualsStaticHyperCube.java +++ b/src/eva2/optimization/operator/archiving/RemoveSurplusIndividualsStaticHyperCube.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.archiving; +package eva2.optimization.operator.archiving; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; /** This class removes surplus individuals based on bounding diff --git a/src/eva2/optimization/operators/classification/ClassificationSelfOrganizingMaps.java b/src/eva2/optimization/operator/classification/ClassificationSelfOrganizingMaps.java similarity index 99% rename from src/eva2/optimization/operators/classification/ClassificationSelfOrganizingMaps.java rename to src/eva2/optimization/operator/classification/ClassificationSelfOrganizingMaps.java index 47859346..3e7ee291 100644 --- a/src/eva2/optimization/operators/classification/ClassificationSelfOrganizingMaps.java +++ b/src/eva2/optimization/operator/classification/ClassificationSelfOrganizingMaps.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.classification; +package eva2.optimization.operator.classification; import eva2.tools.chart2d.*; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/classification/InterfaceClassification.java b/src/eva2/optimization/operator/classification/InterfaceClassification.java similarity index 95% rename from src/eva2/optimization/operators/classification/InterfaceClassification.java rename to src/eva2/optimization/operator/classification/InterfaceClassification.java index d8b531df..75426b13 100644 --- a/src/eva2/optimization/operators/classification/InterfaceClassification.java +++ b/src/eva2/optimization/operator/classification/InterfaceClassification.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.classification; +package eva2.optimization.operator.classification; /** An interface for classification methods, currently under construction. * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operators/cluster/ClusterAll.java b/src/eva2/optimization/operator/cluster/ClusterAll.java similarity index 96% rename from src/eva2/optimization/operators/cluster/ClusterAll.java rename to src/eva2/optimization/operator/cluster/ClusterAll.java index e942d516..972adc23 100644 --- a/src/eva2/optimization/operators/cluster/ClusterAll.java +++ b/src/eva2/optimization/operator/cluster/ClusterAll.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.cluster; +package eva2.optimization.operator.cluster; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import java.io.Serializable; import java.util.Arrays; diff --git a/src/eva2/optimization/operators/cluster/ClusteringDensityBased.java b/src/eva2/optimization/operator/cluster/ClusteringDensityBased.java similarity index 98% rename from src/eva2/optimization/operators/cluster/ClusteringDensityBased.java rename to src/eva2/optimization/operator/cluster/ClusteringDensityBased.java index d73594fd..e50e3f84 100644 --- a/src/eva2/optimization/operators/cluster/ClusteringDensityBased.java +++ b/src/eva2/optimization/operator/cluster/ClusteringDensityBased.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.cluster; +package eva2.optimization.operator.cluster; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; -import eva2.optimization.operators.distancemetric.PhenotypeMetric; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.population.Population; import eva2.tools.Pair; import java.util.ArrayList; diff --git a/src/eva2/optimization/operators/cluster/ClusteringDynPeakIdent.java b/src/eva2/optimization/operator/cluster/ClusteringDynPeakIdent.java similarity index 96% rename from src/eva2/optimization/operators/cluster/ClusteringDynPeakIdent.java rename to src/eva2/optimization/operator/cluster/ClusteringDynPeakIdent.java index a1c535b8..54b55db9 100644 --- a/src/eva2/optimization/operators/cluster/ClusteringDynPeakIdent.java +++ b/src/eva2/optimization/operator/cluster/ClusteringDynPeakIdent.java @@ -1,13 +1,13 @@ -package eva2.optimization.operators.cluster; +package eva2.optimization.operator.cluster; import eva2.gui.BeanInspector; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividualComparator; import eva2.optimization.individuals.IndividualDistanceComparator; -import eva2.optimization.operators.distancemetric.EuclideanMetric; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; -import eva2.optimization.operators.distancemetric.PhenotypeMetric; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.EuclideanMetric; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.population.Population; import eva2.tools.Pair; import java.util.ArrayList; diff --git a/src/eva2/optimization/operators/cluster/ClusteringKMeans.java b/src/eva2/optimization/operator/cluster/ClusteringKMeans.java similarity index 98% rename from src/eva2/optimization/operators/cluster/ClusteringKMeans.java rename to src/eva2/optimization/operator/cluster/ClusteringKMeans.java index dd1661ff..eda9b29b 100644 --- a/src/eva2/optimization/operators/cluster/ClusteringKMeans.java +++ b/src/eva2/optimization/operator/cluster/ClusteringKMeans.java @@ -1,13 +1,13 @@ -package eva2.optimization.operators.cluster; +package eva2.optimization.operator.cluster; import eva2.gui.GraphPointSet; import eva2.gui.Plot; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.distancemetric.EuclideanMetric; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.EuclideanMetric; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; import eva2.tools.chart2d.Chart2DDPointIconCircle; import eva2.tools.chart2d.Chart2DDPointIconText; diff --git a/src/eva2/optimization/operators/cluster/ClusteringNearestBetter.java b/src/eva2/optimization/operator/cluster/ClusteringNearestBetter.java similarity index 98% rename from src/eva2/optimization/operators/cluster/ClusteringNearestBetter.java rename to src/eva2/optimization/operator/cluster/ClusteringNearestBetter.java index 794476a8..602d0743 100644 --- a/src/eva2/optimization/operators/cluster/ClusteringNearestBetter.java +++ b/src/eva2/optimization/operator/cluster/ClusteringNearestBetter.java @@ -1,14 +1,14 @@ -package eva2.optimization.operators.cluster; +package eva2.optimization.operator.cluster; import eva2.gui.BeanInspector; import eva2.gui.GenericObjectEditor; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividualComparator; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; -import eva2.optimization.operators.distancemetric.PhenotypeMetric; -import eva2.optimization.operators.paramcontrol.ParamAdaption; -import eva2.optimization.operators.paramcontrol.ParameterControlManager; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.operator.paramcontrol.ParamAdaption; +import eva2.optimization.operator.paramcontrol.ParameterControlManager; +import eva2.optimization.population.Population; import java.io.Serializable; import java.util.ArrayList; import java.util.LinkedList; diff --git a/src/eva2/optimization/operators/cluster/ClusteringXMeans.java b/src/eva2/optimization/operator/cluster/ClusteringXMeans.java similarity index 99% rename from src/eva2/optimization/operators/cluster/ClusteringXMeans.java rename to src/eva2/optimization/operator/cluster/ClusteringXMeans.java index abdb0da1..7b34a441 100644 --- a/src/eva2/optimization/operators/cluster/ClusteringXMeans.java +++ b/src/eva2/optimization/operator/cluster/ClusteringXMeans.java @@ -1,11 +1,11 @@ -package eva2.optimization.operators.cluster; +package eva2.optimization.operator.cluster; import eva2.gui.GraphPointSet; import eva2.gui.Plot; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; import eva2.tools.chart2d.Chart2DDPointIconCircle; import eva2.tools.chart2d.Chart2DDPointIconText; diff --git a/src/eva2/optimization/operators/cluster/InterfaceClustering.java b/src/eva2/optimization/operator/cluster/InterfaceClustering.java similarity index 97% rename from src/eva2/optimization/operators/cluster/InterfaceClustering.java rename to src/eva2/optimization/operator/cluster/InterfaceClustering.java index 97679927..9cbf86e3 100644 --- a/src/eva2/optimization/operators/cluster/InterfaceClustering.java +++ b/src/eva2/optimization/operator/cluster/InterfaceClustering.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.cluster; +package eva2.optimization.operator.cluster; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** * This the interface to clustering algorithms, but since there diff --git a/src/eva2/optimization/operators/cluster/InterfaceClusteringDistanceParam.java b/src/eva2/optimization/operator/cluster/InterfaceClusteringDistanceParam.java similarity index 86% rename from src/eva2/optimization/operators/cluster/InterfaceClusteringDistanceParam.java rename to src/eva2/optimization/operator/cluster/InterfaceClusteringDistanceParam.java index bc50c56e..82925e3f 100644 --- a/src/eva2/optimization/operators/cluster/InterfaceClusteringDistanceParam.java +++ b/src/eva2/optimization/operator/cluster/InterfaceClusteringDistanceParam.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.cluster; +package eva2.optimization.operator.cluster; /** * A clustering method which has a cluster parameter - the niche radius for example. diff --git a/src/eva2/optimization/operators/cluster/InterfaceClusteringMetricBased.java b/src/eva2/optimization/operator/cluster/InterfaceClusteringMetricBased.java similarity index 67% rename from src/eva2/optimization/operators/cluster/InterfaceClusteringMetricBased.java rename to src/eva2/optimization/operator/cluster/InterfaceClusteringMetricBased.java index 77e6e652..b1f8105a 100644 --- a/src/eva2/optimization/operators/cluster/InterfaceClusteringMetricBased.java +++ b/src/eva2/optimization/operator/cluster/InterfaceClusteringMetricBased.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.cluster; +package eva2.optimization.operator.cluster; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; /** * A clustering method which is associated with a metric. diff --git a/src/eva2/optimization/operators/constraint/AbstractConstraint.java b/src/eva2/optimization/operator/constraint/AbstractConstraint.java similarity index 95% rename from src/eva2/optimization/operators/constraint/AbstractConstraint.java rename to src/eva2/optimization/operator/constraint/AbstractConstraint.java index ba4a5732..9565671f 100644 --- a/src/eva2/optimization/operators/constraint/AbstractConstraint.java +++ b/src/eva2/optimization/operator/constraint/AbstractConstraint.java @@ -1,10 +1,10 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; -import eva2.optimization.operators.paramcontrol.InterfaceParameterControl; -import eva2.optimization.operators.paramcontrol.ParamAdaption; -import eva2.optimization.operators.paramcontrol.ParameterControlManager; -import eva2.optimization.operators.paramcontrol.GenericParamAdaption; -import eva2.optimization.operators.paramcontrol.NoParamAdaption; +import eva2.optimization.operator.paramcontrol.InterfaceParameterControl; +import eva2.optimization.operator.paramcontrol.ParamAdaption; +import eva2.optimization.operator.paramcontrol.ParameterControlManager; +import eva2.optimization.operator.paramcontrol.GenericParamAdaption; +import eva2.optimization.operator.paramcontrol.NoParamAdaption; import eva2.gui.GenericObjectEditor; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.problems.AbstractProblemDouble; diff --git a/src/eva2/optimization/operators/constraint/ConstBelongsToDifferentClass.java b/src/eva2/optimization/operator/constraint/ConstBelongsToDifferentClass.java similarity index 98% rename from src/eva2/optimization/operators/constraint/ConstBelongsToDifferentClass.java rename to src/eva2/optimization/operator/constraint/ConstBelongsToDifferentClass.java index a03be984..5b2f4998 100644 --- a/src/eva2/optimization/operators/constraint/ConstBelongsToDifferentClass.java +++ b/src/eva2/optimization/operator/constraint/ConstBelongsToDifferentClass.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; diff --git a/src/eva2/optimization/operators/constraint/ConstObjectivesInEqualityBiggerThanLinear.java b/src/eva2/optimization/operator/constraint/ConstObjectivesInEqualityBiggerThanLinear.java similarity index 96% rename from src/eva2/optimization/operators/constraint/ConstObjectivesInEqualityBiggerThanLinear.java rename to src/eva2/optimization/operator/constraint/ConstObjectivesInEqualityBiggerThanLinear.java index 7accbee3..3164edaa 100644 --- a/src/eva2/optimization/operators/constraint/ConstObjectivesInEqualityBiggerThanLinear.java +++ b/src/eva2/optimization/operator/constraint/ConstObjectivesInEqualityBiggerThanLinear.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; import eva2.optimization.individuals.AbstractEAIndividual; diff --git a/src/eva2/optimization/operators/constraint/ConstObjectivesInEqualityBiggerThanSurface.java b/src/eva2/optimization/operator/constraint/ConstObjectivesInEqualityBiggerThanSurface.java similarity index 98% rename from src/eva2/optimization/operators/constraint/ConstObjectivesInEqualityBiggerThanSurface.java rename to src/eva2/optimization/operator/constraint/ConstObjectivesInEqualityBiggerThanSurface.java index 48c378b5..ef87a50e 100644 --- a/src/eva2/optimization/operators/constraint/ConstObjectivesInEqualityBiggerThanSurface.java +++ b/src/eva2/optimization/operator/constraint/ConstObjectivesInEqualityBiggerThanSurface.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; import eva2.optimization.individuals.AbstractEAIndividual; diff --git a/src/eva2/optimization/operators/constraint/ConstObjectivesInEqualityLesserThanLinear.java b/src/eva2/optimization/operator/constraint/ConstObjectivesInEqualityLesserThanLinear.java similarity index 96% rename from src/eva2/optimization/operators/constraint/ConstObjectivesInEqualityLesserThanLinear.java rename to src/eva2/optimization/operator/constraint/ConstObjectivesInEqualityLesserThanLinear.java index 0e9e5e95..f203fd32 100644 --- a/src/eva2/optimization/operators/constraint/ConstObjectivesInEqualityLesserThanLinear.java +++ b/src/eva2/optimization/operator/constraint/ConstObjectivesInEqualityLesserThanLinear.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; import eva2.optimization.individuals.AbstractEAIndividual; diff --git a/src/eva2/optimization/operators/constraint/ConstObjectivesInEqualitySmallerThanSurface.java b/src/eva2/optimization/operator/constraint/ConstObjectivesInEqualitySmallerThanSurface.java similarity index 98% rename from src/eva2/optimization/operators/constraint/ConstObjectivesInEqualitySmallerThanSurface.java rename to src/eva2/optimization/operator/constraint/ConstObjectivesInEqualitySmallerThanSurface.java index 74171b7b..fb1bd422 100644 --- a/src/eva2/optimization/operators/constraint/ConstObjectivesInEqualitySmallerThanSurface.java +++ b/src/eva2/optimization/operator/constraint/ConstObjectivesInEqualitySmallerThanSurface.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; import eva2.optimization.individuals.AbstractEAIndividual; diff --git a/src/eva2/optimization/operators/constraint/ConstraintCollection.java b/src/eva2/optimization/operator/constraint/ConstraintCollection.java similarity index 97% rename from src/eva2/optimization/operators/constraint/ConstraintCollection.java rename to src/eva2/optimization/operator/constraint/ConstraintCollection.java index 1f3205ca..1ba6fd34 100644 --- a/src/eva2/optimization/operators/constraint/ConstraintCollection.java +++ b/src/eva2/optimization/operator/constraint/ConstraintCollection.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; /** * To handle a set of constraints with a single parameter adaption mechanism. diff --git a/src/eva2/optimization/operators/constraint/ConstraintHandlingEnum.java b/src/eva2/optimization/operator/constraint/ConstraintHandlingEnum.java similarity index 66% rename from src/eva2/optimization/operators/constraint/ConstraintHandlingEnum.java rename to src/eva2/optimization/operator/constraint/ConstraintHandlingEnum.java index d4fb8de4..1585272a 100644 --- a/src/eva2/optimization/operators/constraint/ConstraintHandlingEnum.java +++ b/src/eva2/optimization/operator/constraint/ConstraintHandlingEnum.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; public enum ConstraintHandlingEnum { specificTag, penaltyAdditive, penaltyMultiplicative; diff --git a/src/eva2/optimization/operators/constraint/ConstraintRelationEnum.java b/src/eva2/optimization/operator/constraint/ConstraintRelationEnum.java similarity index 66% rename from src/eva2/optimization/operators/constraint/ConstraintRelationEnum.java rename to src/eva2/optimization/operator/constraint/ConstraintRelationEnum.java index ee6ce6a6..9719e7ab 100644 --- a/src/eva2/optimization/operators/constraint/ConstraintRelationEnum.java +++ b/src/eva2/optimization/operator/constraint/ConstraintRelationEnum.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; public enum ConstraintRelationEnum { lessEqZero, eqZero, greaterEqZero;//, linearLessEqZero; diff --git a/src/eva2/optimization/operators/constraint/DummyConstraint.java b/src/eva2/optimization/operator/constraint/DummyConstraint.java similarity index 91% rename from src/eva2/optimization/operators/constraint/DummyConstraint.java rename to src/eva2/optimization/operator/constraint/DummyConstraint.java index 6a896c50..41fdb73b 100644 --- a/src/eva2/optimization/operators/constraint/DummyConstraint.java +++ b/src/eva2/optimization/operator/constraint/DummyConstraint.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; import eva2.gui.GenericObjectEditor; diff --git a/src/eva2/optimization/operators/constraint/GenericConstraint.java b/src/eva2/optimization/operator/constraint/GenericConstraint.java similarity index 98% rename from src/eva2/optimization/operators/constraint/GenericConstraint.java rename to src/eva2/optimization/operator/constraint/GenericConstraint.java index 48882ee8..44bbb325 100644 --- a/src/eva2/optimization/operators/constraint/GenericConstraint.java +++ b/src/eva2/optimization/operator/constraint/GenericConstraint.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; import eva2.optimization.individuals.codings.gp.AbstractGPNode; import eva2.optimization.problems.GPFunctionProblem; diff --git a/src/eva2/optimization/operators/constraint/ImplicitConstraint.java b/src/eva2/optimization/operator/constraint/ImplicitConstraint.java similarity index 96% rename from src/eva2/optimization/operators/constraint/ImplicitConstraint.java rename to src/eva2/optimization/operator/constraint/ImplicitConstraint.java index 11fab42f..805bc344 100644 --- a/src/eva2/optimization/operators/constraint/ImplicitConstraint.java +++ b/src/eva2/optimization/operator/constraint/ImplicitConstraint.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; /** * A constraint that is already calculated by the fitness function as an diff --git a/src/eva2/optimization/operators/constraint/InterfaceConstraint.java b/src/eva2/optimization/operator/constraint/InterfaceConstraint.java similarity index 94% rename from src/eva2/optimization/operators/constraint/InterfaceConstraint.java rename to src/eva2/optimization/operator/constraint/InterfaceConstraint.java index a4dcbff1..199d7ccb 100644 --- a/src/eva2/optimization/operators/constraint/InterfaceConstraint.java +++ b/src/eva2/optimization/operator/constraint/InterfaceConstraint.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; import eva2.optimization.individuals.AbstractEAIndividual; diff --git a/src/eva2/optimization/operators/constraint/InterfaceDoubleConstraint.java b/src/eva2/optimization/operator/constraint/InterfaceDoubleConstraint.java similarity index 94% rename from src/eva2/optimization/operators/constraint/InterfaceDoubleConstraint.java rename to src/eva2/optimization/operator/constraint/InterfaceDoubleConstraint.java index e80985d0..8578e3b9 100644 --- a/src/eva2/optimization/operators/constraint/InterfaceDoubleConstraint.java +++ b/src/eva2/optimization/operator/constraint/InterfaceDoubleConstraint.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; /** * A constraint delivering a double valued degree of violation. diff --git a/src/eva2/optimization/operators/constraint/IntervalConstraint.java b/src/eva2/optimization/operator/constraint/IntervalConstraint.java similarity index 98% rename from src/eva2/optimization/operators/constraint/IntervalConstraint.java rename to src/eva2/optimization/operator/constraint/IntervalConstraint.java index 2618b022..a8ae7ed5 100644 --- a/src/eva2/optimization/operators/constraint/IntervalConstraint.java +++ b/src/eva2/optimization/operator/constraint/IntervalConstraint.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.constraint; +package eva2.optimization.operator.constraint; import eva2.gui.GenericObjectEditor; import eva2.tools.EVAERROR; diff --git a/src/eva2/optimization/operators/crossover/AdaptiveCrossoverEAMixer.java b/src/eva2/optimization/operator/crossover/AdaptiveCrossoverEAMixer.java similarity index 92% rename from src/eva2/optimization/operators/crossover/AdaptiveCrossoverEAMixer.java rename to src/eva2/optimization/operator/crossover/AdaptiveCrossoverEAMixer.java index f7a15281..27394425 100644 --- a/src/eva2/optimization/operators/crossover/AdaptiveCrossoverEAMixer.java +++ b/src/eva2/optimization/operator/crossover/AdaptiveCrossoverEAMixer.java @@ -1,110 +1,110 @@ -package eva2.optimization.operators.crossover; - -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.mutation.InterfaceAdaptOperatorGenerational; -import eva2.optimization.populations.Population; -import eva2.optimization.problems.InterfaceOptimizationProblem; - -/** - * A modified version of the CrossoverEAMixer that adapts the weights with which the crossover-methods are chosen - * - * @author Alex - * - */ -public class AdaptiveCrossoverEAMixer extends CrossoverEAMixer implements InterfaceAdaptOperatorGenerational { - - private Population pop = new Population(); - private boolean initialized = false; - private double lastFitness = Double.MAX_VALUE; - private int[] used; - private InterfaceOptimizationProblem opt; - - public AdaptiveCrossoverEAMixer(){ - super(); - } - - public AdaptiveCrossoverEAMixer(AdaptiveCrossoverEAMixer mutator) { - super(mutator); - this.pop = (Population) mutator.pop.clone(); // TODO !Make a deep copy!? - this.initialized = mutator.initialized; - this.lastFitness = mutator.lastFitness; - this.used = mutator.used; - this.opt = mutator.opt; - } - - /** - * Create a mutation mixer with equal weights of the given mutation operators. - * @param mutators - */ - public AdaptiveCrossoverEAMixer(InterfaceCrossover ... crossovers) { - this.m_Crossers = new PropertyCrossoverMixer(crossovers); - this.m_Crossers.m_SelectedTargets = m_Crossers.m_AvailableTargets.clone(); - } - - @Override - protected void maybeAdaptWeights(AbstractEAIndividual[] indies) { - if(initialized){ - AbstractEAIndividual indy = indies[0]; - this.opt.evaluate(indy); - this.pop.incrFunctionCalls(); - if(indy.getFitness(0)0); - if(indy1 instanceof InterfaceDataTypeBinary && partners.getEAIndividual(0) instanceof InterfaceDataTypeBinary){ - BitSet data = ((InterfaceDataTypeBinary) indy1).getBinaryData(); - BitSet dataSave = (BitSet) data.clone(); - BitSet data2 = ((InterfaceDataTypeBinary) partners.getEAIndividual(0)).getBinaryData(); - double f1 = indy1.getFitness(0); - double f2 = partners.getEAIndividual(0).getFitness(0); - double min = Math.min(f1, f2); - int different = 0; - boolean foundBetter = false; - for(int i=0; i 0){ - dataSave.flip(i); - } - } - } - ((InterfaceDataTypeBinary) indy1).SetBinaryGenotype(data); - } - result[0] = indy1; - return result; - } - - @Override - public void init(AbstractEAIndividual individual, - InterfaceOptimizationProblem opt) { - this.m_OptimizationProblem = opt; - } - - @Override - public String getStringRepresentation() { - return getName(); - } - - @Override - public int getEvaluations(){ - return this.evaluations; - } - - /***************************************************** - * GUI - */ - - public String getName(){ - return "Combination Method 7"; - } - - public static String globalInfo() { - //TODO - return ""; - } - - @Override - public void resetEvaluations() { - this.evaluations = 0; - } - -} +package eva2.optimization.operator.crossover; + +import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.individuals.InterfaceDataTypeBinary; +import eva2.optimization.population.Population; +import eva2.optimization.problems.InterfaceOptimizationProblem; +import java.util.BitSet; + +/** + * This crossover-Method tries to convert the first individual into the second. If a better Individual is found on the way, this individual is chosen. + * If no better individual is found, one with the greatest distance from the both is chosen + * + * @author Alex + * + */ +public class CM7 implements InterfaceCrossover, java.io.Serializable, InterfaceEvaluatingCrossoverOperator { + private InterfaceOptimizationProblem m_OptimizationProblem; + private int evaluations = 0; + + public CM7(){ + + } + + public CM7(CM7 c){ + this.m_OptimizationProblem = c.m_OptimizationProblem; + this.evaluations = c.evaluations; + } + + @Override + public Object clone(){ + return new CM7(this); + } + + @Override + public AbstractEAIndividual[] mate(AbstractEAIndividual indy1, + Population partners) { + AbstractEAIndividual[] result = null; + result = new AbstractEAIndividual[1]; + if(partners.size()>0); + if(indy1 instanceof InterfaceDataTypeBinary && partners.getEAIndividual(0) instanceof InterfaceDataTypeBinary){ + BitSet data = ((InterfaceDataTypeBinary) indy1).getBinaryData(); + BitSet dataSave = (BitSet) data.clone(); + BitSet data2 = ((InterfaceDataTypeBinary) partners.getEAIndividual(0)).getBinaryData(); + double f1 = indy1.getFitness(0); + double f2 = partners.getEAIndividual(0).getFitness(0); + double min = Math.min(f1, f2); + int different = 0; + boolean foundBetter = false; + for(int i=0; i 0){ + dataSave.flip(i); + } + } + } + ((InterfaceDataTypeBinary) indy1).SetBinaryGenotype(data); + } + result[0] = indy1; + return result; + } + + @Override + public void init(AbstractEAIndividual individual, + InterfaceOptimizationProblem opt) { + this.m_OptimizationProblem = opt; + } + + @Override + public String getStringRepresentation() { + return getName(); + } + + @Override + public int getEvaluations(){ + return this.evaluations; + } + + /***************************************************** + * GUI + */ + + public String getName(){ + return "Combination Method 7"; + } + + public static String globalInfo() { + //TODO + return ""; + } + + @Override + public void resetEvaluations() { + this.evaluations = 0; + } + +} diff --git a/src/eva2/optimization/operators/crossover/CrossoverEAMixer.java b/src/eva2/optimization/operator/crossover/CrossoverEAMixer.java similarity index 99% rename from src/eva2/optimization/operators/crossover/CrossoverEAMixer.java rename to src/eva2/optimization/operator/crossover/CrossoverEAMixer.java index 3f718275..d663ae66 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverEAMixer.java +++ b/src/eva2/optimization/operator/crossover/CrossoverEAMixer.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.gui.GenericObjectEditor; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.ArrayList; diff --git a/src/eva2/optimization/operators/crossover/CrossoverESArithmetical.java b/src/eva2/optimization/operator/crossover/CrossoverESArithmetical.java similarity index 98% rename from src/eva2/optimization/operators/crossover/CrossoverESArithmetical.java rename to src/eva2/optimization/operator/crossover/CrossoverESArithmetical.java index c23beff0..4b2ae057 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESArithmetical.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESArithmetical.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/crossover/CrossoverESBLXAlpha.java b/src/eva2/optimization/operator/crossover/CrossoverESBLXAlpha.java similarity index 98% rename from src/eva2/optimization/operators/crossover/CrossoverESBLXAlpha.java rename to src/eva2/optimization/operator/crossover/CrossoverESBLXAlpha.java index f0a92106..d4df88b7 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESBLXAlpha.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESBLXAlpha.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/crossover/CrossoverESDefault.java b/src/eva2/optimization/operator/crossover/CrossoverESDefault.java similarity index 98% rename from src/eva2/optimization/operators/crossover/CrossoverESDefault.java rename to src/eva2/optimization/operator/crossover/CrossoverESDefault.java index 08b4304f..adb910ab 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESDefault.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESDefault.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/crossover/CrossoverESFlat.java b/src/eva2/optimization/operator/crossover/CrossoverESFlat.java similarity index 98% rename from src/eva2/optimization/operators/crossover/CrossoverESFlat.java rename to src/eva2/optimization/operator/crossover/CrossoverESFlat.java index 0785e0dc..a903ce86 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESFlat.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESFlat.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/crossover/CrossoverESIntermediate.java b/src/eva2/optimization/operator/crossover/CrossoverESIntermediate.java similarity index 98% rename from src/eva2/optimization/operators/crossover/CrossoverESIntermediate.java rename to src/eva2/optimization/operator/crossover/CrossoverESIntermediate.java index cf1407ef..4055a0c6 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESIntermediate.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESIntermediate.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; /** diff --git a/src/eva2/optimization/operators/crossover/CrossoverESNPointDiscrete.java b/src/eva2/optimization/operator/crossover/CrossoverESNPointDiscrete.java similarity index 98% rename from src/eva2/optimization/operators/crossover/CrossoverESNPointDiscrete.java rename to src/eva2/optimization/operator/crossover/CrossoverESNPointDiscrete.java index d32a6f79..0ca9c62b 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESNPointDiscrete.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESNPointDiscrete.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/crossover/CrossoverESNPointDiscreteDislocation.java b/src/eva2/optimization/operator/crossover/CrossoverESNPointDiscreteDislocation.java similarity index 98% rename from src/eva2/optimization/operators/crossover/CrossoverESNPointDiscreteDislocation.java rename to src/eva2/optimization/operator/crossover/CrossoverESNPointDiscreteDislocation.java index e9d1136f..f461bdd8 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESNPointDiscreteDislocation.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESNPointDiscreteDislocation.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/crossover/CrossoverESPCX.java b/src/eva2/optimization/operator/crossover/CrossoverESPCX.java similarity index 99% rename from src/eva2/optimization/operators/crossover/CrossoverESPCX.java rename to src/eva2/optimization/operator/crossover/CrossoverESPCX.java index 519e2802..50cf4016 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESPCX.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESPCX.java @@ -1,11 +1,11 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.gui.Plot; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.Mathematics; diff --git a/src/eva2/optimization/operators/crossover/CrossoverESSBX.java b/src/eva2/optimization/operator/crossover/CrossoverESSBX.java similarity index 98% rename from src/eva2/optimization/operators/crossover/CrossoverESSBX.java rename to src/eva2/optimization/operator/crossover/CrossoverESSBX.java index ece08cce..61c23131 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESSBX.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESSBX.java @@ -1,10 +1,10 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.gui.Plot; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/crossover/CrossoverESSPX.java b/src/eva2/optimization/operator/crossover/CrossoverESSPX.java similarity index 99% rename from src/eva2/optimization/operators/crossover/CrossoverESSPX.java rename to src/eva2/optimization/operator/crossover/CrossoverESSPX.java index 65fab4c1..85590eac 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESSPX.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESSPX.java @@ -1,10 +1,10 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.gui.Plot; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.Mathematics; diff --git a/src/eva2/optimization/operators/crossover/CrossoverESUNDX.java b/src/eva2/optimization/operator/crossover/CrossoverESUNDX.java similarity index 99% rename from src/eva2/optimization/operators/crossover/CrossoverESUNDX.java rename to src/eva2/optimization/operator/crossover/CrossoverESUNDX.java index ad8b19f5..64df72cc 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESUNDX.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESUNDX.java @@ -1,11 +1,11 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.gui.Plot; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.Mathematics; diff --git a/src/eva2/optimization/operators/crossover/CrossoverESUniformDiscrete.java b/src/eva2/optimization/operator/crossover/CrossoverESUniformDiscrete.java similarity index 98% rename from src/eva2/optimization/operators/crossover/CrossoverESUniformDiscrete.java rename to src/eva2/optimization/operator/crossover/CrossoverESUniformDiscrete.java index 57334f68..0b45227e 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverESUniformDiscrete.java +++ b/src/eva2/optimization/operator/crossover/CrossoverESUniformDiscrete.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/crossover/CrossoverGABitSimulated.java b/src/eva2/optimization/operator/crossover/CrossoverGABitSimulated.java similarity index 98% rename from src/eva2/optimization/operators/crossover/CrossoverGABitSimulated.java rename to src/eva2/optimization/operator/crossover/CrossoverGABitSimulated.java index b4254bcb..4db6f391 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverGABitSimulated.java +++ b/src/eva2/optimization/operator/crossover/CrossoverGABitSimulated.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/operators/crossover/CrossoverGADefault.java b/src/eva2/optimization/operator/crossover/CrossoverGADefault.java similarity index 98% rename from src/eva2/optimization/operators/crossover/CrossoverGADefault.java rename to src/eva2/optimization/operator/crossover/CrossoverGADefault.java index 01952ef1..7425be1d 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverGADefault.java +++ b/src/eva2/optimization/operator/crossover/CrossoverGADefault.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/operators/crossover/CrossoverGAGINPoint.java b/src/eva2/optimization/operator/crossover/CrossoverGAGINPoint.java similarity index 99% rename from src/eva2/optimization/operators/crossover/CrossoverGAGINPoint.java rename to src/eva2/optimization/operator/crossover/CrossoverGAGINPoint.java index b5bdfdd9..cb78117a 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverGAGINPoint.java +++ b/src/eva2/optimization/operator/crossover/CrossoverGAGINPoint.java @@ -1,11 +1,11 @@ -package eva2.optimization.operators.crossover; +package eva2.optimization.operator.crossover; import eva2.gui.BeanInspector; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; import eva2.optimization.individuals.InterfaceGIIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/operators/crossover/CrossoverGAGINPointSegmentwise.java b/src/eva2/optimization/operator/crossover/CrossoverGAGINPointSegmentwise.java similarity index 94% rename from src/eva2/optimization/operators/crossover/CrossoverGAGINPointSegmentwise.java rename to src/eva2/optimization/operator/crossover/CrossoverGAGINPointSegmentwise.java index f65ddb34..de93a98a 100644 --- a/src/eva2/optimization/operators/crossover/CrossoverGAGINPointSegmentwise.java +++ b/src/eva2/optimization/operator/crossover/CrossoverGAGINPointSegmentwise.java @@ -1,74 +1,74 @@ -package eva2.optimization.operators.crossover; - -import eva2.tools.math.RNG; - -/** - * A variation of the GA n-point crossover. Restricts crossover to segment bounds - * of fixed length, so crossings occur at multiples of the segment length only. Segments - * will not be destroyed. - * - * @author mkron - * - */ -public class CrossoverGAGINPointSegmentwise extends CrossoverGAGINPoint { - int segmentLength=8; - - public CrossoverGAGINPointSegmentwise() { - super(); - } - - public CrossoverGAGINPointSegmentwise(CrossoverGAGINPointSegmentwise o) { - super(o); - this.segmentLength=o.segmentLength; - } - - public CrossoverGAGINPointSegmentwise(int nPoints, int segmentLen) { - super(nPoints); - setSegmentLength(segmentLen); - } - - @Override - public Object clone() { - return new CrossoverGAGINPointSegmentwise(this); - } - - @Override - public boolean equals(Object crossover) { - if (super.equals(crossover) && (crossover instanceof CrossoverGAGINPointSegmentwise)) { - return ((CrossoverGAGINPointSegmentwise)crossover).segmentLength==this.segmentLength; - } else { - return false; - } - } - - @Override - protected int[] getCrossoverPoints(int length, int numberOfCrossovers) { - int[] cPoints = new int[numberOfCrossovers]; - int i=0; - while (i x[i]) { - x[i] = range[i][0]; - } - if (range[i][1] < x[i]) { - x[i] = range[i][1]; - } - } - ((InterfaceESIndividual)individual).SetDGenotype(x); - - } - //System.out.println("After Mutate: " +((GAIndividual)individual).getSolutionRepresentationFor()); - } - - /** This method allows you to perform either crossover on the strategy parameters - * or to deal in some other way with the crossover event. - * @param indy1 The original mother - * @param partners The original partners - */ - @Override - public void crossoverOnStrategyParameters(AbstractEAIndividual indy1, Population partners) { - // nothing to do here - } - - /** This method allows you to get a string representation of the mutation - * operator - * @return A descriptive string. - */ - @Override - public String getStringRepresentation() { - return "ES fixed step size mutation"; - } - -/********************************************************************************************************************** - * These are for GUI - */ - /** This method allows the CommonJavaObjectEditorPanel to read the - * name to the current object. - * @return The name. - */ - public String getName() { - return "ES polynomial mutation"; - } - /** This method returns a global info string - * @return description - */ - public String globalInfo() { - return "The polynomial mutation alters all elements according to a polynomial distribution"; - } - - /** This method allows you to set the number of crossovers that occur in the - * genotype. - * @param a The number of crossovers. - */ - public void setEta(double a) { - if (a < 0) { - a = 0; - } - this.m_Eta = a; - } - public double getEta() { - return this.m_Eta; - } - public String etaTipText() { - return "Set the Eta_c value (the larger the value, the more restricted the search)."; - } -} +package eva2.optimization.operator.mutation; + +import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.individuals.InterfaceESIndividual; +import eva2.optimization.population.Population; +import eva2.optimization.problems.InterfaceOptimizationProblem; +import eva2.tools.math.RNG; + +/** + * Created by IntelliJ IDEA. + * User: streiche + * Date: 08.09.2004 + * Time: 17:05:23 + * To change this template use File | Settings | File Templates. + */ +public class MutateESPolynomial implements InterfaceMutation, java.io.Serializable { + private double m_Eta = 0.2; + + public MutateESPolynomial() { + } + + public MutateESPolynomial(MutateESPolynomial mutator) { + this.m_Eta = mutator.m_Eta; + } + + public MutateESPolynomial(double eta) { + m_Eta = eta; + } + + /** This method will enable you to clone a given mutation operator + * @return The clone + */ + @Override + public Object clone() { + return new MutateESPolynomial(this); + } + + /** This method allows you to evaluate wether two mutation operators + * are actually the same. + * @param mutator The other mutation operator + */ + @Override + public boolean equals(Object mutator) { + if (mutator instanceof MutateESPolynomial) { + MutateESPolynomial mut = (MutateESPolynomial)mutator; + if (this.m_Eta != mut.m_Eta) { + return false; + } + return true; + } else { + return false; + } + } + + /** This method allows you to init the mutation operator + * @param individual The individual that will be mutated. + * @param opt The optimization problem. + */ + @Override + public void init(AbstractEAIndividual individual, InterfaceOptimizationProblem opt) { + + } + + /** This method will mutate a given AbstractEAIndividual. If the individual + * doesn't implement InterfaceGAIndividual nothing happens. + * @param individual The individual that is to be mutated + */ + @Override + public void mutate(AbstractEAIndividual individual) { + //System.out.println("Before Mutate: " +((GAIndividual)individual).getSolutionRepresentationFor()); + if (individual instanceof InterfaceESIndividual) { + double[] x = ((InterfaceESIndividual)individual).getDGenotype(); + double[][] range = ((InterfaceESIndividual)individual).getDoubleRange(); + for (int i = 0; i < x.length; i++) { + + double r = RNG.randomDouble(); + double delta=0; + if(r < 0.5){ + delta = Math.pow((2*r),(1/(m_Eta+1))) - 1; + }else{ + delta = 1 - Math.pow((2*(1 - r)),(1/(m_Eta+1))); + } + + x[i] += delta; + if (range[i][0] > x[i]) { + x[i] = range[i][0]; + } + if (range[i][1] < x[i]) { + x[i] = range[i][1]; + } + } + ((InterfaceESIndividual)individual).SetDGenotype(x); + + } + //System.out.println("After Mutate: " +((GAIndividual)individual).getSolutionRepresentationFor()); + } + + /** This method allows you to perform either crossover on the strategy parameters + * or to deal in some other way with the crossover event. + * @param indy1 The original mother + * @param partners The original partners + */ + @Override + public void crossoverOnStrategyParameters(AbstractEAIndividual indy1, Population partners) { + // nothing to do here + } + + /** This method allows you to get a string representation of the mutation + * operator + * @return A descriptive string. + */ + @Override + public String getStringRepresentation() { + return "ES fixed step size mutation"; + } + +/********************************************************************************************************************** + * These are for GUI + */ + /** This method allows the CommonJavaObjectEditorPanel to read the + * name to the current object. + * @return The name. + */ + public String getName() { + return "ES polynomial mutation"; + } + /** This method returns a global info string + * @return description + */ + public String globalInfo() { + return "The polynomial mutation alters all elements according to a polynomial distribution"; + } + + /** This method allows you to set the number of crossovers that occur in the + * genotype. + * @param a The number of crossovers. + */ + public void setEta(double a) { + if (a < 0) { + a = 0; + } + this.m_Eta = a; + } + public double getEta() { + return this.m_Eta; + } + public String etaTipText() { + return "Set the Eta_c value (the larger the value, the more restricted the search)."; + } +} diff --git a/src/eva2/optimization/operators/mutation/MutateESRankMuCMA.java b/src/eva2/optimization/operator/mutation/MutateESRankMuCMA.java similarity index 99% rename from src/eva2/optimization/operators/mutation/MutateESRankMuCMA.java rename to src/eva2/optimization/operator/mutation/MutateESRankMuCMA.java index dd9d60e5..5d08a6a0 100644 --- a/src/eva2/optimization/operators/mutation/MutateESRankMuCMA.java +++ b/src/eva2/optimization/operator/mutation/MutateESRankMuCMA.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.gui.BeanInspector; import eva2.gui.GenericObjectEditor; @@ -6,8 +6,8 @@ import eva2.optimization.enums.ESMutationInitialSigma; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividualComparator; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.distancemetric.EuclideanMetric; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.EuclideanMetric; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.strategies.EvolutionStrategies; import eva2.tools.EVAERROR; diff --git a/src/eva2/optimization/operators/mutation/MutateESStandard.java b/src/eva2/optimization/operator/mutation/MutateESStandard.java similarity index 99% rename from src/eva2/optimization/operators/mutation/MutateESStandard.java rename to src/eva2/optimization/operator/mutation/MutateESStandard.java index f859998d..fdbde249 100644 --- a/src/eva2/optimization/operators/mutation/MutateESStandard.java +++ b/src/eva2/optimization/operator/mutation/MutateESStandard.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; //package eva2.optimization.operators.mutation; // diff --git a/src/eva2/optimization/operators/mutation/MutateESSuccessRule.java b/src/eva2/optimization/operator/mutation/MutateESSuccessRule.java similarity index 98% rename from src/eva2/optimization/operators/mutation/MutateESSuccessRule.java rename to src/eva2/optimization/operator/mutation/MutateESSuccessRule.java index d3bc537a..c860be41 100644 --- a/src/eva2/optimization/operators/mutation/MutateESSuccessRule.java +++ b/src/eva2/optimization/operator/mutation/MutateESSuccessRule.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** * Success rule implementation. diff --git a/src/eva2/optimization/operators/mutation/MutateGAAdaptive.java b/src/eva2/optimization/operator/mutation/MutateGAAdaptive.java similarity index 98% rename from src/eva2/optimization/operators/mutation/MutateGAAdaptive.java rename to src/eva2/optimization/operator/mutation/MutateGAAdaptive.java index 1bd1b4c1..dfde3ea5 100644 --- a/src/eva2/optimization/operators/mutation/MutateGAAdaptive.java +++ b/src/eva2/optimization/operator/mutation/MutateGAAdaptive.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/operators/mutation/MutateGAGISwapBits.java b/src/eva2/optimization/operator/mutation/MutateGAGISwapBits.java similarity index 98% rename from src/eva2/optimization/operators/mutation/MutateGAGISwapBits.java rename to src/eva2/optimization/operator/mutation/MutateGAGISwapBits.java index 404b1885..ad6505fe 100644 --- a/src/eva2/optimization/operators/mutation/MutateGAGISwapBits.java +++ b/src/eva2/optimization/operator/mutation/MutateGAGISwapBits.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; import eva2.optimization.individuals.InterfaceGIIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/operators/mutation/MutateGAGISwapBitsSegmentwise.java b/src/eva2/optimization/operator/mutation/MutateGAGISwapBitsSegmentwise.java similarity index 94% rename from src/eva2/optimization/operators/mutation/MutateGAGISwapBitsSegmentwise.java rename to src/eva2/optimization/operator/mutation/MutateGAGISwapBitsSegmentwise.java index 32e1767b..2e8e9dc5 100644 --- a/src/eva2/optimization/operators/mutation/MutateGAGISwapBitsSegmentwise.java +++ b/src/eva2/optimization/operator/mutation/MutateGAGISwapBitsSegmentwise.java @@ -1,76 +1,76 @@ -package eva2.optimization.operators.mutation; - -import eva2.tools.EVAERROR; -import java.io.Serializable; - -/** - * This implementation restricts the swap positions of the standard swapping mutation - * to swaps within subsequences (segments) of the genotype. The segments have a fixed length. - * - * @author mkron - * - */ -public class MutateGAGISwapBitsSegmentwise extends MutateGAGISwapBits implements Serializable { - private int segmentLength = 8; - - public MutateGAGISwapBitsSegmentwise() { - super(); - } - - public MutateGAGISwapBitsSegmentwise(MutateGAGISwapBitsSegmentwise mutator) { - super(mutator); - segmentLength = mutator.segmentLength; - } - - public MutateGAGISwapBitsSegmentwise(int segmentLength) { - this(); - this.segmentLength = segmentLength; - } - - public MutateGAGISwapBitsSegmentwise(int segmentLen, int minMutations, int maxMutations, boolean preferTrueChange) { - super(minMutations, maxMutations, preferTrueChange); - this.segmentLength = segmentLen; - } - - @Override - public Object clone() { - return new MutateGAGISwapBitsSegmentwise(this); - } - - public static String globalInfo() { - return "Segment-wise swapping of elements - the mutation pairs are selected within the same" + - " subsequence of the genotype."; - } - - @Override - public String getName() { - return "GA-GI swap bits segment-wise mutation"; - } - - @Override - protected int getRandomIndex(int genoLen, Object genotype, int lastIndex) { - // restrict to the same segment of lastIndex if >= 0. - int iMin=0, iMax=genoLen-1; // default bounds - if (lastIndex>=0) { - // select same segment - iMin = segmentLength * ((int)(lastIndex/segmentLength)); - iMax = iMin+segmentLength-1; - if (iMax>=genoLen) { - EVAERROR.errorMsgOnce("Warning, the last segment exceeds the genotype length (so it is not a multiple of the genotype length"); - iMax=genoLen-1; - } - } - return super.getRandomIndex(segmentLength/2, genotype, (lastIndex>=0) ? (valueAt(genotype, lastIndex)) : null, - iMin, iMax); - } - - public int getSegmentLength() { - return segmentLength; - } - public void setSegmentLength(int segmentLength) { - this.segmentLength = segmentLength; - } - public String segmentLengthTipText() { - return "The length of subsequences to which mutations are restricted"; - } -} +package eva2.optimization.operator.mutation; + +import eva2.tools.EVAERROR; +import java.io.Serializable; + +/** + * This implementation restricts the swap positions of the standard swapping mutation + * to swaps within subsequences (segments) of the genotype. The segments have a fixed length. + * + * @author mkron + * + */ +public class MutateGAGISwapBitsSegmentwise extends MutateGAGISwapBits implements Serializable { + private int segmentLength = 8; + + public MutateGAGISwapBitsSegmentwise() { + super(); + } + + public MutateGAGISwapBitsSegmentwise(MutateGAGISwapBitsSegmentwise mutator) { + super(mutator); + segmentLength = mutator.segmentLength; + } + + public MutateGAGISwapBitsSegmentwise(int segmentLength) { + this(); + this.segmentLength = segmentLength; + } + + public MutateGAGISwapBitsSegmentwise(int segmentLen, int minMutations, int maxMutations, boolean preferTrueChange) { + super(minMutations, maxMutations, preferTrueChange); + this.segmentLength = segmentLen; + } + + @Override + public Object clone() { + return new MutateGAGISwapBitsSegmentwise(this); + } + + public static String globalInfo() { + return "Segment-wise swapping of elements - the mutation pairs are selected within the same" + + " subsequence of the genotype."; + } + + @Override + public String getName() { + return "GA-GI swap bits segment-wise mutation"; + } + + @Override + protected int getRandomIndex(int genoLen, Object genotype, int lastIndex) { + // restrict to the same segment of lastIndex if >= 0. + int iMin=0, iMax=genoLen-1; // default bounds + if (lastIndex>=0) { + // select same segment + iMin = segmentLength * ((int)(lastIndex/segmentLength)); + iMax = iMin+segmentLength-1; + if (iMax>=genoLen) { + EVAERROR.errorMsgOnce("Warning, the last segment exceeds the genotype length (so it is not a multiple of the genotype length"); + iMax=genoLen-1; + } + } + return super.getRandomIndex(segmentLength/2, genotype, (lastIndex>=0) ? (valueAt(genotype, lastIndex)) : null, + iMin, iMax); + } + + public int getSegmentLength() { + return segmentLength; + } + public void setSegmentLength(int segmentLength) { + this.segmentLength = segmentLength; + } + public String segmentLengthTipText() { + return "The length of subsequences to which mutations are restricted"; + } +} diff --git a/src/eva2/optimization/operators/mutation/MutateGAInvertBits.java b/src/eva2/optimization/operator/mutation/MutateGAInvertBits.java similarity index 98% rename from src/eva2/optimization/operators/mutation/MutateGAInvertBits.java rename to src/eva2/optimization/operator/mutation/MutateGAInvertBits.java index 67350780..07c8407d 100644 --- a/src/eva2/optimization/operators/mutation/MutateGAInvertBits.java +++ b/src/eva2/optimization/operator/mutation/MutateGAInvertBits.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/operators/mutation/MutateGANBit.java b/src/eva2/optimization/operator/mutation/MutateGANBit.java similarity index 97% rename from src/eva2/optimization/operators/mutation/MutateGANBit.java rename to src/eva2/optimization/operator/mutation/MutateGANBit.java index d027f226..2e052cce 100644 --- a/src/eva2/optimization/operators/mutation/MutateGANBit.java +++ b/src/eva2/optimization/operator/mutation/MutateGANBit.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/operators/mutation/MutateGAShiftSubstring.java b/src/eva2/optimization/operator/mutation/MutateGAShiftSubstring.java similarity index 98% rename from src/eva2/optimization/operators/mutation/MutateGAShiftSubstring.java rename to src/eva2/optimization/operator/mutation/MutateGAShiftSubstring.java index b25296ee..425571a9 100644 --- a/src/eva2/optimization/operators/mutation/MutateGAShiftSubstring.java +++ b/src/eva2/optimization/operator/mutation/MutateGAShiftSubstring.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/operators/mutation/MutateGASwapBitsSegmentwise.java b/src/eva2/optimization/operator/mutation/MutateGASwapBitsSegmentwise.java similarity index 98% rename from src/eva2/optimization/operators/mutation/MutateGASwapBitsSegmentwise.java rename to src/eva2/optimization/operator/mutation/MutateGASwapBitsSegmentwise.java index 784d4a25..aa64c8b4 100644 --- a/src/eva2/optimization/operators/mutation/MutateGASwapBitsSegmentwise.java +++ b/src/eva2/optimization/operator/mutation/MutateGASwapBitsSegmentwise.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.EVAERROR; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/mutation/MutateGAUniform.java b/src/eva2/optimization/operator/mutation/MutateGAUniform.java similarity index 97% rename from src/eva2/optimization/operators/mutation/MutateGAUniform.java rename to src/eva2/optimization/operator/mutation/MutateGAUniform.java index 681f0b95..60a71a08 100644 --- a/src/eva2/optimization/operators/mutation/MutateGAUniform.java +++ b/src/eva2/optimization/operator/mutation/MutateGAUniform.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.gui.GenericObjectEditor; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.EVAERROR; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/mutation/MutateGIInsertDelete.java b/src/eva2/optimization/operator/mutation/MutateGIInsertDelete.java similarity index 98% rename from src/eva2/optimization/operators/mutation/MutateGIInsertDelete.java rename to src/eva2/optimization/operator/mutation/MutateGIInsertDelete.java index e94a9a66..8b59a53f 100644 --- a/src/eva2/optimization/operators/mutation/MutateGIInsertDelete.java +++ b/src/eva2/optimization/operator/mutation/MutateGIInsertDelete.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGIIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/mutation/MutateGIInvert.java b/src/eva2/optimization/operator/mutation/MutateGIInvert.java similarity index 98% rename from src/eva2/optimization/operators/mutation/MutateGIInvert.java rename to src/eva2/optimization/operator/mutation/MutateGIInvert.java index 001134f6..71ccd5f5 100644 --- a/src/eva2/optimization/operators/mutation/MutateGIInvert.java +++ b/src/eva2/optimization/operator/mutation/MutateGIInvert.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGIIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/mutation/MutateGINominal.java b/src/eva2/optimization/operator/mutation/MutateGINominal.java similarity index 97% rename from src/eva2/optimization/operators/mutation/MutateGINominal.java rename to src/eva2/optimization/operator/mutation/MutateGINominal.java index 4dad197a..b0c9913b 100644 --- a/src/eva2/optimization/operators/mutation/MutateGINominal.java +++ b/src/eva2/optimization/operator/mutation/MutateGINominal.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGIIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/mutation/MutateGIOrdinal.java b/src/eva2/optimization/operator/mutation/MutateGIOrdinal.java similarity index 98% rename from src/eva2/optimization/operators/mutation/MutateGIOrdinal.java rename to src/eva2/optimization/operator/mutation/MutateGIOrdinal.java index 524b7a70..b01a4482 100644 --- a/src/eva2/optimization/operators/mutation/MutateGIOrdinal.java +++ b/src/eva2/optimization/operator/mutation/MutateGIOrdinal.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.mutation; +package eva2.optimization.operator.mutation; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGIIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/mutation/MutateGISubset.java b/src/eva2/optimization/operator/mutation/MutateGISubset.java similarity index 95% rename from src/eva2/optimization/operators/mutation/MutateGISubset.java rename to src/eva2/optimization/operator/mutation/MutateGISubset.java index 4e6b94e8..43a6c9ed 100644 --- a/src/eva2/optimization/operators/mutation/MutateGISubset.java +++ b/src/eva2/optimization/operator/mutation/MutateGISubset.java @@ -1,172 +1,172 @@ -package eva2.optimization.operators.mutation; - -import eva2.gui.BeanInspector; -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.individuals.InterfaceGIIndividual; -import eva2.optimization.populations.Population; -import eva2.optimization.problems.InterfaceOptimizationProblem; -import eva2.tools.EVAERROR; -import eva2.tools.math.RNG; -import java.io.Serializable; - -/** - * An integer mutation operator which switches elements within a given subset only. - * - * @author mkron - * - */ -public class MutateGISubset implements InterfaceMutation, Serializable { - private int[] mutableSet = new int[]{0,1}; - private int minNumMutations = 1; - private int maxNumMutations = 3; - private boolean enforceMutablePositions = true; - - public MutateGISubset() {} - - public MutateGISubset(MutateGISubset o) { - this.minNumMutations = o.minNumMutations; - this.maxNumMutations = o.maxNumMutations; - this.enforceMutablePositions = o.enforceMutablePositions; - if (o.mutableSet!=null) { - this.mutableSet=new int[o.mutableSet.length]; - System.arraycopy(o.mutableSet, 0, this.mutableSet, 0, o.mutableSet.length); - } - } - - public MutateGISubset(int[] muteSet, int minMutes, int maxMutes) { - setMutableSet(muteSet); - setMinNumMutations(minMutes); - setMaxNumMutations(maxMutes); - } - - @Override - public Object clone() { - return new MutateGISubset(this); - } - - @Override - public void crossoverOnStrategyParameters(AbstractEAIndividual indy1, - Population partners) { - // nothing to do - } - - @Override - public String getStringRepresentation() { - return "GI subset mutation in " + BeanInspector.toString(mutableSet); - } - - @Override - public void init(AbstractEAIndividual individual, - InterfaceOptimizationProblem opt) { - // nothing to do - - } - - @Override - public void mutate(AbstractEAIndividual individual) { - if (individual instanceof InterfaceGIIndividual) { - InterfaceGIIndividual giIndy = (InterfaceGIIndividual)individual; - int[] genotype = giIndy.getIGenotype(); - int[][] range = giIndy.getIntRange(); - int numMutes=RNG.randomInt(minNumMutations, maxNumMutations); - for (int i=0; i0 && (!isMutable(genotype[index]))); - } - if (isMutable(genotype[index])) { // if it is in the mutable subset - genotype[index]=randomValidElement(range, index, genotype[index]); - } - } - - /** - * Return a randomly chosen element of the mutable subset lying in the range - * or the old value if the randomly chosen value - * @param range - * @param index - * @param oldVal - * @return - */ - private int randomValidElement(int[][] range, int index, int oldVal) { - int v = mutableSet[RNG.randomInt(mutableSet.length)]; - if (v>=range[index][0] && (v<=range[index][1])) { - return v; - } - else { - EVAERROR.errorMsgOnce("Warning, mutation subset violates range definition!"); - return oldVal; - } - } - - /** - * Return true if the given value is member of the mutable subset, otherwise false. - * @param v - * @return - */ - private boolean isMutable(int v) { - for (int i=0; i0 && (!isMutable(genotype[index]))); + } + if (isMutable(genotype[index])) { // if it is in the mutable subset + genotype[index]=randomValidElement(range, index, genotype[index]); + } + } + + /** + * Return a randomly chosen element of the mutable subset lying in the range + * or the old value if the randomly chosen value + * @param range + * @param index + * @param oldVal + * @return + */ + private int randomValidElement(int[][] range, int index, int oldVal) { + int v = mutableSet[RNG.randomInt(mutableSet.length)]; + if (v>=range[index][0] && (v<=range[index][1])) { + return v; + } + else { + EVAERROR.errorMsgOnce("Warning, mutation subset violates range definition!"); + return oldVal; + } + } + + /** + * Return true if the given value is member of the mutable subset, otherwise false. + * @param v + * @return + */ + private boolean isMutable(int v) { + for (int i=0; i bests = new Vector(pop.size()); - - Vector bests = (Vector)pop.getEAIndividual(0).getData(NichePSO.fitArchiveKey); - if (bests.size() lst = bests.subList(bests.size()-haltingWindow, bests.size()); - bests = new Vector(haltingWindow); - bests.addAll(lst); - for (int i=1; i fitArch = (Vector)pop.getEAIndividual(i).getData(NichePSO.fitArchiveKey); - int archIndex=fitArch.size()-haltingWindow+k; // index within the fitness archive of the current particle, which may be larger than the bests list - the tail is important - if (archIndex>=0 && (fitArch.get(archIndex) bests = new Vector(pop.size()); + + Vector bests = (Vector)pop.getEAIndividual(0).getData(NichePSO.fitArchiveKey); + if (bests.size() lst = bests.subList(bests.size()-haltingWindow, bests.size()); + bests = new Vector(haltingWindow); + bests.addAll(lst); + for (int i=1; i fitArch = (Vector)pop.getEAIndividual(i).getData(NichePSO.fitArchiveKey); + int archIndex=fitArch.size()-haltingWindow+k; // index within the fitness archive of the current particle, which may be larger than the bests list - the tail is important + if (archIndex>=0 && (fitArch.get(archIndex) getEpsilon()){ -// return false; // particle not converged... -// } -// } -// return true; -// } - public boolean areAllConverged(Population pop){ - for (int i = 0; i < pop.size(); ++i){ - AbstractEAIndividual currentindy = pop.getEAIndividual(i); - double value; - if (stdDevHorizon == NichePSO.defaultFitStdDevHorizon) { - value = ((Double)currentindy.getData(NichePSO.stdDevKey)).doubleValue(); - } else { - Vector fitArch = (Vector)currentindy.getData(NichePSO.fitArchiveKey); - value = ParticleSubSwarmOptimization.stdDev(fitArch,stdDevHorizon); - } - if (value > getEpsilon()){ - return false; // particle not converged... - } - - } - return true; - } - /** @tested - * true if the subswarm is active and all particles are completely converged - * (i.e. the stddev over the past 3 iterations is < epsilson) - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceDeactivationStrategy#shouldDeactivateSubswarm(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) - */ - @Override - public boolean shouldDeactivateSubswarm(ParticleSubSwarmOptimization subswarm) { - if (!subswarm.isActive()){ - return false; - } - if (subswarm.getFitnessArchiveSize() getEpsilon()){ +// return false; // particle not converged... +// } +// } +// return true; +// } + public boolean areAllConverged(Population pop){ + for (int i = 0; i < pop.size(); ++i){ + AbstractEAIndividual currentindy = pop.getEAIndividual(i); + double value; + if (stdDevHorizon == NichePSO.defaultFitStdDevHorizon) { + value = ((Double)currentindy.getData(NichePSO.stdDevKey)).doubleValue(); + } else { + Vector fitArch = (Vector)currentindy.getData(NichePSO.fitArchiveKey); + value = ParticleSubSwarmOptimization.stdDev(fitArch,stdDevHorizon); + } + if (value > getEpsilon()){ + return false; // particle not converged... + } + + } + return true; + } + /** @tested + * true if the subswarm is active and all particles are completely converged + * (i.e. the stddev over the past 3 iterations is < epsilson) + * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceDeactivationStrategy#shouldDeactivateSubswarm(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) + */ + @Override + public boolean shouldDeactivateSubswarm(ParticleSubSwarmOptimization subswarm) { + if (!subswarm.isActive()){ + return false; + } + if (subswarm.getFitnessArchiveSize() subSwarms, - ParticleSubSwarmOptimization mainSwarm); - - public abstract Object clone(); -} +package eva2.optimization.operator.nichepso.merging; + +import eva2.optimization.strategies.ParticleSubSwarmOptimization; +import java.util.Vector; + + +/** + * interface for the merging strategies used in NichePSO + */ +public interface InterfaceMergingStrategy { + + /** + * decides whether the two subswarms should be merged according to the merging strategie + * @param subswarm1 + * @param subswarm2 + * @return + */ + public abstract boolean shouldMergeSubswarms( + ParticleSubSwarmOptimization subswarm1, + ParticleSubSwarmOptimization subswarm2); + + /** + * Merges the i. and j. subswarm from subSwarms. + * The meaning of this depends on the concrete strategy but two aspects schould be taken care of: + * 1. the overall population size (in all subSwarms and the mainSwarm) should remain constant + * 2. call populationSizeHasChanged() for changed swarms + * @param i + * @param j + * @param subSwarms + * @param mainSwarm + */ + public abstract void mergeSubswarms( + int i, + int j, + Vector subSwarms, + ParticleSubSwarmOptimization mainSwarm); + + public abstract Object clone(); +} diff --git a/src/eva2/optimization/operators/nichepso/merging/ScatterMergingStrategy.java b/src/eva2/optimization/operator/nichepso/merging/ScatterMergingStrategy.java similarity index 95% rename from src/eva2/optimization/operators/nichepso/merging/ScatterMergingStrategy.java rename to src/eva2/optimization/operator/nichepso/merging/ScatterMergingStrategy.java index f04c91e4..b5c4fab6 100644 --- a/src/eva2/optimization/operators/nichepso/merging/ScatterMergingStrategy.java +++ b/src/eva2/optimization/operator/nichepso/merging/ScatterMergingStrategy.java @@ -1,97 +1,97 @@ -package eva2.optimization.operators.nichepso.merging; - -import eva2.optimization.strategies.ParticleSubSwarmOptimization; -import java.util.Vector; - - -/** - * Two subswarms are merged if their radii overlap. - * In case both radii equal zero the subswarms are merged if their distance is below a given threshold mu. - * During merging, the particles of one of these subswarms are reinitialized into the main swarm. - * This improves exploration compared to the StandardMergingStrategy. - * This strategy is proposed in [1] and a small value, such as mu = 0.001, is suggested. - * [1] A.P. Engelbrecht and L.N.H. van Loggerenberg. - * Enhancing the nichepso. - * In IEEE Congress on Evolutionary Computation, - * 2007. - */ -public class ScatterMergingStrategy extends StandardMergingStrategy{ - - public ScatterMergingStrategy() { - super(); - } - - public ScatterMergingStrategy(double theMu) { - super(theMu); - } - - @Override - public String globalInfo(){ - return "Strategy to merge subswarms"; - } - -/********************************************************************************************************************** - * mergeSubswarms - */ - - /** @tested - * if both active: reinitializes subswarm j back into the main swarm and deletes it from the subswarms. - * if both inactive: adds population of subswarm j to population of subswarm i, then deletes subswarm j. - * @param i - * @param j - */ - @Override - public void mergeSubswarms( - int i, - int j, - Vector subSwarms, - ParticleSubSwarmOptimization mainSwarm) - { - ParticleSubSwarmOptimization borg= subSwarms.get(i); - ParticleSubSwarmOptimization others= subSwarms.get(j); - - if (borg.isActive() && others.isActive()){ - mergeActiveSubswarms(i,j,subSwarms,mainSwarm); - return; - } - if (!borg.isActive() && !others.isActive()){ - mergeInactiveSubswarms(i,j,subSwarms,mainSwarm); - return; - } - System.out.print("ScatterMergingStrategy.mergeSubswarms problem: subswarms not of equal state."); - } - - private void mergeInactiveSubswarms( - int i, - int j, - Vector subSwarms, - ParticleSubSwarmOptimization mainSwarm) { - ParticleSubSwarmOptimization borg = subSwarms.get(i); - ParticleSubSwarmOptimization others= subSwarms.get(j); - - borg.addPopulation(others); - borg.populationSizeHasChanged(); - - subSwarms.remove(j); - } - - /** @tested - * subswarm j is reinited into the mainswarm and deleted, the function calls are added to the main swarm - * @param i - * @param j - * @param subSwarms - * @param mainSwarm - */ - private void mergeActiveSubswarms( - int i, - int j, - Vector subSwarms, - ParticleSubSwarmOptimization mainSwarm) { - mainSwarm.reinitIndividuals(subSwarms.get(j).getPopulation().size()); // add to the mainswarm - //mainSwarm.populationSizeHasChanged(); // already called in addNewParticlesToPopulation - // transfer functioncalls from the subswarm to the mainswarm before deleting it: - int calls = subSwarms.get(j).getPopulation().getFunctionCalls(); - mainSwarm.getPopulation().incrFunctionCallsBy(calls); - subSwarms.remove(j); - } -} +package eva2.optimization.operator.nichepso.merging; + +import eva2.optimization.strategies.ParticleSubSwarmOptimization; +import java.util.Vector; + + +/** + * Two subswarms are merged if their radii overlap. + * In case both radii equal zero the subswarms are merged if their distance is below a given threshold mu. + * During merging, the particles of one of these subswarms are reinitialized into the main swarm. + * This improves exploration compared to the StandardMergingStrategy. + * This strategy is proposed in [1] and a small value, such as mu = 0.001, is suggested. + * [1] A.P. Engelbrecht and L.N.H. van Loggerenberg. + * Enhancing the nichepso. + * In IEEE Congress on Evolutionary Computation, + * 2007. + */ +public class ScatterMergingStrategy extends StandardMergingStrategy{ + + public ScatterMergingStrategy() { + super(); + } + + public ScatterMergingStrategy(double theMu) { + super(theMu); + } + + @Override + public String globalInfo(){ + return "Strategy to merge subswarms"; + } + +/********************************************************************************************************************** + * mergeSubswarms + */ + + /** @tested + * if both active: reinitializes subswarm j back into the main swarm and deletes it from the subswarms. + * if both inactive: adds population of subswarm j to population of subswarm i, then deletes subswarm j. + * @param i + * @param j + */ + @Override + public void mergeSubswarms( + int i, + int j, + Vector subSwarms, + ParticleSubSwarmOptimization mainSwarm) + { + ParticleSubSwarmOptimization borg= subSwarms.get(i); + ParticleSubSwarmOptimization others= subSwarms.get(j); + + if (borg.isActive() && others.isActive()){ + mergeActiveSubswarms(i,j,subSwarms,mainSwarm); + return; + } + if (!borg.isActive() && !others.isActive()){ + mergeInactiveSubswarms(i,j,subSwarms,mainSwarm); + return; + } + System.out.print("ScatterMergingStrategy.mergeSubswarms problem: subswarms not of equal state."); + } + + private void mergeInactiveSubswarms( + int i, + int j, + Vector subSwarms, + ParticleSubSwarmOptimization mainSwarm) { + ParticleSubSwarmOptimization borg = subSwarms.get(i); + ParticleSubSwarmOptimization others= subSwarms.get(j); + + borg.addPopulation(others); + borg.populationSizeHasChanged(); + + subSwarms.remove(j); + } + + /** @tested + * subswarm j is reinited into the mainswarm and deleted, the function calls are added to the main swarm + * @param i + * @param j + * @param subSwarms + * @param mainSwarm + */ + private void mergeActiveSubswarms( + int i, + int j, + Vector subSwarms, + ParticleSubSwarmOptimization mainSwarm) { + mainSwarm.reinitIndividuals(subSwarms.get(j).getPopulation().size()); // add to the mainswarm + //mainSwarm.populationSizeHasChanged(); // already called in addNewParticlesToPopulation + // transfer functioncalls from the subswarm to the mainswarm before deleting it: + int calls = subSwarms.get(j).getPopulation().getFunctionCalls(); + mainSwarm.getPopulation().incrFunctionCallsBy(calls); + subSwarms.remove(j); + } +} diff --git a/src/eva2/optimization/operators/nichepso/merging/StandardMergingStrategy.java b/src/eva2/optimization/operator/nichepso/merging/StandardMergingStrategy.java similarity index 93% rename from src/eva2/optimization/operators/nichepso/merging/StandardMergingStrategy.java rename to src/eva2/optimization/operator/nichepso/merging/StandardMergingStrategy.java index bb755949..b74061bb 100644 --- a/src/eva2/optimization/operators/nichepso/merging/StandardMergingStrategy.java +++ b/src/eva2/optimization/operator/nichepso/merging/StandardMergingStrategy.java @@ -1,158 +1,158 @@ -package eva2.optimization.operators.nichepso.merging; - -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.operators.distancemetric.EuclideanMetric; -import eva2.optimization.operators.distancemetric.PhenotypeMetric; -import eva2.optimization.strategies.ParticleSubSwarmOptimization; -import java.util.Vector; - -/** - * Two subswarms are merged if their radii overlap. - * In case both radii equal zero the subswarms are merged if their distance is below a given threshold mu. - * This strategy is proposed in [1] and a small value, such as mu = 0.001, is suggested. - * [1] R. Brits, A. P. Engelbrecht and B. Bergh. - * A Niching Particle Swarm Optimizer - * In Proceedings of the 4th Asia-Pacific Conference on Simulated Evolution and Learning (SEAL'02), - * 2002, 2, 692-696 - */ -public class StandardMergingStrategy implements InterfaceMergingStrategy, java.io.Serializable { - - private double mu = 0.001; // "experimentally found to be effective" according to "a niching particle swarm optimizer" by Brits et al. - - public String globalInfo(){ - return "Strategy to merge subswarms"; - } - -/********************************************************************************************************************** - * ctors - */ - public StandardMergingStrategy(){ - - } - - public StandardMergingStrategy(double theMu){ - mu = theMu; - } - - public StandardMergingStrategy(StandardMergingStrategy other){ - this.mu = other.mu; - } - - @Override - public Object clone(){ - return (Object) new StandardMergingStrategy(this); - } - -/********************************************************************************************************************** - * shouldMergeSubswarms - */ - /** @tested - * the subswarms are merged, if they overlap (or are very close) and if they are of equal state - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceMergingStrategie#shouldMergeSubswarms(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) - */ - @Override - public boolean shouldMergeSubswarms(ParticleSubSwarmOptimization subswarm1, ParticleSubSwarmOptimization subswarm2) { - // check for equal state - if (subswarm1.isActive() && !subswarm2.isActive()) { - return false; - } - if (!subswarm1.isActive() && subswarm2.isActive()) { - return false; - } - - if (!subswarmsOverlapOrAreVeryClose(subswarm1,subswarm2)){ - return false; - } - - - return true; - } - - private boolean subswarmsOverlapOrAreVeryClose(ParticleSubSwarmOptimization subswarm1,ParticleSubSwarmOptimization subswarm2) { - // check if they overlap - AbstractEAIndividual gbesti = subswarm1.getGBestIndividual(); - AbstractEAIndividual gbestj = subswarm2.getGBestIndividual(); - InterfaceESIndividual i1=null, i2=null; - - double dist; - if (gbesti instanceof InterfaceESIndividual) { - i1=(InterfaceESIndividual)gbesti; - i2=(InterfaceESIndividual)gbestj; - } - - if (i1 != null) { - dist = EuclideanMetric.euclideanDistance(i1.getDGenotype(), i2.getDGenotype()); - } - else { - dist = subswarm1.distance(gbesti, gbestj); - } // euclidean distance -// System.out.println("dist is " + dist); - - if (dist < (subswarm1.getMaxAllowedSwarmRadiusAbs() + subswarm2.getMaxAllowedSwarmRadiusAbs())) { - // only then is the next (expensive) test feasible - double Ri = subswarm1.getBoundSwarmRadius(); // uses euclidean distance - double Rj = subswarm2.getBoundSwarmRadius(); // uses euclidean distance - - if (dist < Ri+Rj ){ // all in euclidean metric - return true; - } - } - - // check if they are "very close" - double dist_norm; - if (i1 != null) { - dist_norm = EuclideanMetric.normedEuclideanDistance(i1.getDGenotype(), i1.getDoubleRange(), - i2.getDGenotype(), i2.getDoubleRange()); - } else { - dist_norm = PhenotypeMetric.dist(gbesti, gbestj); - } // normalised distance - - //if (Ri == 0 && Rj == 0 && dist_norm < getEpsilon()){ // see "Enhancing the NichePSO" paper - if (dist_norm < getMu()){ // Ri und Rj auf null testen sinvoll ? - return true; - } - return false; - } - -/********************************************************************************************************************** - * mergeSubswarms - */ - - /** @tested junit - * adds population of subswarm j to population of subswarm i, then deletes subswarm j. - * @param i - * @param j - */ - @Override - public void mergeSubswarms( - int i, - int j, - Vector subSwarms, - ParticleSubSwarmOptimization mainSwarm) - { - ParticleSubSwarmOptimization borg = subSwarms.get(i); - ParticleSubSwarmOptimization others= subSwarms.get(j); -// System.out.println("merging " + (borg.isActive() ? " active " : " inactive ") + " with " + (others.isActive() ? "active" : "inactive")); - borg.addPopulation(others); - borg.populationSizeHasChanged(); - - subSwarms.remove(j); // ok: function calls added to borg swarm... - } - -/********************************************************************************************************************** - * getter, setter - */ - - public void setMu(double mu) { - this.mu = mu; - } - - public double getMu() { - return mu; - } - - public String muTipText(){ - return "threshold used to merge subswarms that lie very close but have no spatial extent"; - } -} +package eva2.optimization.operator.nichepso.merging; + +import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.individuals.InterfaceESIndividual; +import eva2.optimization.operator.distancemetric.EuclideanMetric; +import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.strategies.ParticleSubSwarmOptimization; +import java.util.Vector; + +/** + * Two subswarms are merged if their radii overlap. + * In case both radii equal zero the subswarms are merged if their distance is below a given threshold mu. + * This strategy is proposed in [1] and a small value, such as mu = 0.001, is suggested. + * [1] R. Brits, A. P. Engelbrecht and B. Bergh. + * A Niching Particle Swarm Optimizer + * In Proceedings of the 4th Asia-Pacific Conference on Simulated Evolution and Learning (SEAL'02), + * 2002, 2, 692-696 + */ +public class StandardMergingStrategy implements InterfaceMergingStrategy, java.io.Serializable { + + private double mu = 0.001; // "experimentally found to be effective" according to "a niching particle swarm optimizer" by Brits et al. + + public String globalInfo(){ + return "Strategy to merge subswarms"; + } + +/********************************************************************************************************************** + * ctors + */ + public StandardMergingStrategy(){ + + } + + public StandardMergingStrategy(double theMu){ + mu = theMu; + } + + public StandardMergingStrategy(StandardMergingStrategy other){ + this.mu = other.mu; + } + + @Override + public Object clone(){ + return (Object) new StandardMergingStrategy(this); + } + +/********************************************************************************************************************** + * shouldMergeSubswarms + */ + /** @tested + * the subswarms are merged, if they overlap (or are very close) and if they are of equal state + * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceMergingStrategie#shouldMergeSubswarms(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) + */ + @Override + public boolean shouldMergeSubswarms(ParticleSubSwarmOptimization subswarm1, ParticleSubSwarmOptimization subswarm2) { + // check for equal state + if (subswarm1.isActive() && !subswarm2.isActive()) { + return false; + } + if (!subswarm1.isActive() && subswarm2.isActive()) { + return false; + } + + if (!subswarmsOverlapOrAreVeryClose(subswarm1,subswarm2)){ + return false; + } + + + return true; + } + + private boolean subswarmsOverlapOrAreVeryClose(ParticleSubSwarmOptimization subswarm1,ParticleSubSwarmOptimization subswarm2) { + // check if they overlap + AbstractEAIndividual gbesti = subswarm1.getGBestIndividual(); + AbstractEAIndividual gbestj = subswarm2.getGBestIndividual(); + InterfaceESIndividual i1=null, i2=null; + + double dist; + if (gbesti instanceof InterfaceESIndividual) { + i1=(InterfaceESIndividual)gbesti; + i2=(InterfaceESIndividual)gbestj; + } + + if (i1 != null) { + dist = EuclideanMetric.euclideanDistance(i1.getDGenotype(), i2.getDGenotype()); + } + else { + dist = subswarm1.distance(gbesti, gbestj); + } // euclidean distance +// System.out.println("dist is " + dist); + + if (dist < (subswarm1.getMaxAllowedSwarmRadiusAbs() + subswarm2.getMaxAllowedSwarmRadiusAbs())) { + // only then is the next (expensive) test feasible + double Ri = subswarm1.getBoundSwarmRadius(); // uses euclidean distance + double Rj = subswarm2.getBoundSwarmRadius(); // uses euclidean distance + + if (dist < Ri+Rj ){ // all in euclidean metric + return true; + } + } + + // check if they are "very close" + double dist_norm; + if (i1 != null) { + dist_norm = EuclideanMetric.normedEuclideanDistance(i1.getDGenotype(), i1.getDoubleRange(), + i2.getDGenotype(), i2.getDoubleRange()); + } else { + dist_norm = PhenotypeMetric.dist(gbesti, gbestj); + } // normalised distance + + //if (Ri == 0 && Rj == 0 && dist_norm < getEpsilon()){ // see "Enhancing the NichePSO" paper + if (dist_norm < getMu()){ // Ri und Rj auf null testen sinvoll ? + return true; + } + return false; + } + +/********************************************************************************************************************** + * mergeSubswarms + */ + + /** @tested junit + * adds population of subswarm j to population of subswarm i, then deletes subswarm j. + * @param i + * @param j + */ + @Override + public void mergeSubswarms( + int i, + int j, + Vector subSwarms, + ParticleSubSwarmOptimization mainSwarm) + { + ParticleSubSwarmOptimization borg = subSwarms.get(i); + ParticleSubSwarmOptimization others= subSwarms.get(j); +// System.out.println("merging " + (borg.isActive() ? " active " : " inactive ") + " with " + (others.isActive() ? "active" : "inactive")); + borg.addPopulation(others); + borg.populationSizeHasChanged(); + + subSwarms.remove(j); // ok: function calls added to borg swarm... + } + +/********************************************************************************************************************** + * getter, setter + */ + + public void setMu(double mu) { + this.mu = mu; + } + + public double getMu() { + return mu; + } + + public String muTipText(){ + return "threshold used to merge subswarms that lie very close but have no spatial extent"; + } +} diff --git a/src/eva2/optimization/operators/nichepso/subswarmcreation/DummySubswarmCreationStrategy.java b/src/eva2/optimization/operator/nichepso/subswarmcreation/DummySubswarmCreationStrategy.java similarity index 88% rename from src/eva2/optimization/operators/nichepso/subswarmcreation/DummySubswarmCreationStrategy.java rename to src/eva2/optimization/operator/nichepso/subswarmcreation/DummySubswarmCreationStrategy.java index 02ac637a..78bd266d 100644 --- a/src/eva2/optimization/operators/nichepso/subswarmcreation/DummySubswarmCreationStrategy.java +++ b/src/eva2/optimization/operator/nichepso/subswarmcreation/DummySubswarmCreationStrategy.java @@ -1,27 +1,27 @@ -package eva2.optimization.operators.nichepso.subswarmcreation; - -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.strategies.ParticleSubSwarmOptimization; - -public class DummySubswarmCreationStrategy implements InterfaceSubswarmCreationStrategy { - - @Override - public Object clone(){ - return (Object) new DummySubswarmCreationStrategy(); - } - - @Override - public void createSubswarm(ParticleSubSwarmOptimization preparedSubswarm, - AbstractEAIndividual indy, ParticleSubSwarmOptimization mainSwarm) { - // TODO Auto-generated method stub - - } - - @Override - public boolean shouldCreateSubswarm(AbstractEAIndividual indy, - ParticleSubSwarmOptimization mainswarm) { - // TODO Auto-generated method stub - return false; - } - -} +package eva2.optimization.operator.nichepso.subswarmcreation; + +import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.strategies.ParticleSubSwarmOptimization; + +public class DummySubswarmCreationStrategy implements InterfaceSubswarmCreationStrategy { + + @Override + public Object clone(){ + return (Object) new DummySubswarmCreationStrategy(); + } + + @Override + public void createSubswarm(ParticleSubSwarmOptimization preparedSubswarm, + AbstractEAIndividual indy, ParticleSubSwarmOptimization mainSwarm) { + // TODO Auto-generated method stub + + } + + @Override + public boolean shouldCreateSubswarm(AbstractEAIndividual indy, + ParticleSubSwarmOptimization mainswarm) { + // TODO Auto-generated method stub + return false; + } + +} diff --git a/src/eva2/optimization/operators/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java b/src/eva2/optimization/operator/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java similarity index 93% rename from src/eva2/optimization/operators/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java rename to src/eva2/optimization/operator/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java index c1d6339d..3cee75b7 100644 --- a/src/eva2/optimization/operators/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java +++ b/src/eva2/optimization/operator/nichepso/subswarmcreation/GenerateNeighborSubswarmCreationStrategy.java @@ -1,98 +1,98 @@ -package eva2.optimization.operators.nichepso.subswarmcreation; - -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.individuals.ESIndividualDoubleData; -import eva2.optimization.operators.mutation.MutateESFixedStepSize; -import eva2.optimization.populations.Population; -import eva2.optimization.strategies.ParticleSubSwarmOptimization; - -/** - * The standard deviation in the fitness of each main swarm particle over the last 3 iterations is calculated. - * If this standard deviation falls below a given threshold delta it is assumed that the particle is converging - * on an optimum and a subswarm is created with that particle and a generated neighbor. - * This neighbor is generated by mutating the converged particle using the mutation step size mu. - * delta = 0.0001 and mu = 0.1 could experimentally produce acceptable results - * but further effort to obtain appropriate values for mu may significantly improve the performance of this strategy. - */ -public class GenerateNeighborSubswarmCreationStrategy extends - StandardSubswarmCreationStrategy { - - private double mu = 0.1; - -/********************************************************************************************************************** - * shouldCreateSubswarm - */ - - // same as in StandardSubswarmCreationStrategy - -/********************************************************************************************************************** - * createSubswarm - */ - - /** @tested - * creates a subswarm from the given particle and its neighbor in the mainswarm. - * If the neighbors pbest is better than the particles pbest, a new neighbor is generated. - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.StandardSubswarmCreationStrategy#createSubswarm(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization, javaeva.server.oa.go.EAIndividuals.AbstractEAIndividual, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) - */ - @Override - public void createSubswarm(ParticleSubSwarmOptimization preparedSubswarm, AbstractEAIndividual indy, ParticleSubSwarmOptimization mainSwarm) { - // get the neighbor in the mainswarm - AbstractEAIndividual neighbor = mainSwarm.getMemberNeighbor(indy); - AbstractEAIndividual worst; - // check if neighbor would "pull the indy away from its niche" because it has a better pbest - AbstractEAIndividual indypbest = (AbstractEAIndividual)indy.getData("PersonalBestKey"); - AbstractEAIndividual neighpbest = (AbstractEAIndividual)neighbor.getData("PersonalBestKey"); - - if (true){//neighpbest.isDominating(indypbest)) { - neighbor = generateNeighborFrom(indy,mainSwarm); // neighbor wouldnt help with indies niche - worst = mainSwarm.getParticleWithWorstPBestButNot(indy); // delete another particle for the gnerated neighbor - }else{ - worst = neighbor; // use the neighbor particle and delete it from the mainswarm - } - - Population pop = new Population(2); - pop.add(indy); - pop.add(neighbor); - preparedSubswarm.setPopulation(pop); - preparedSubswarm.populationSizeHasChanged(); - - // remove particles from the main swarm: - mainSwarm.removeSubIndividual(indy); - mainSwarm.removeSubIndividual(worst); - mainSwarm.populationSizeHasChanged(); - } - - private AbstractEAIndividual generateNeighborFrom(AbstractEAIndividual indy, ParticleSubSwarmOptimization mainswarm) { - // generate a neighbor - ESIndividualDoubleData neighbor = (ESIndividualDoubleData)indy.clone(); - MutateESFixedStepSize mutator = new MutateESFixedStepSize(); - mutator.setSigma(getMu()); - neighbor.setMutationOperator(mutator); - neighbor.setMutationProbability(1); - neighbor.mutate(); - //TODO more stuff: stddev ... from indy - //TODO mutate velocity? evaluate? - neighbor.putData("BestFitness", neighbor.getFitness()); - neighbor.putData("BestPosition", neighbor.getDGenotype()); - return neighbor; - } - -/********************************************************************************************************************** - * getter, setter - */ - - public void setMu( - double generateNeighborWithMutationStep) { - this.mu = generateNeighborWithMutationStep; - } - - public double getMu() { - return mu; - } - - public String muTipText(){ - return "mutation step size used to generate a neighbor"; - } - - -} +package eva2.optimization.operator.nichepso.subswarmcreation; + +import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.individuals.ESIndividualDoubleData; +import eva2.optimization.operator.mutation.MutateESFixedStepSize; +import eva2.optimization.population.Population; +import eva2.optimization.strategies.ParticleSubSwarmOptimization; + +/** + * The standard deviation in the fitness of each main swarm particle over the last 3 iterations is calculated. + * If this standard deviation falls below a given threshold delta it is assumed that the particle is converging + * on an optimum and a subswarm is created with that particle and a generated neighbor. + * This neighbor is generated by mutating the converged particle using the mutation step size mu. + * delta = 0.0001 and mu = 0.1 could experimentally produce acceptable results + * but further effort to obtain appropriate values for mu may significantly improve the performance of this strategy. + */ +public class GenerateNeighborSubswarmCreationStrategy extends + StandardSubswarmCreationStrategy { + + private double mu = 0.1; + +/********************************************************************************************************************** + * shouldCreateSubswarm + */ + + // same as in StandardSubswarmCreationStrategy + +/********************************************************************************************************************** + * createSubswarm + */ + + /** @tested + * creates a subswarm from the given particle and its neighbor in the mainswarm. + * If the neighbors pbest is better than the particles pbest, a new neighbor is generated. + * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.StandardSubswarmCreationStrategy#createSubswarm(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization, javaeva.server.oa.go.EAIndividuals.AbstractEAIndividual, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) + */ + @Override + public void createSubswarm(ParticleSubSwarmOptimization preparedSubswarm, AbstractEAIndividual indy, ParticleSubSwarmOptimization mainSwarm) { + // get the neighbor in the mainswarm + AbstractEAIndividual neighbor = mainSwarm.getMemberNeighbor(indy); + AbstractEAIndividual worst; + // check if neighbor would "pull the indy away from its niche" because it has a better pbest + AbstractEAIndividual indypbest = (AbstractEAIndividual)indy.getData("PersonalBestKey"); + AbstractEAIndividual neighpbest = (AbstractEAIndividual)neighbor.getData("PersonalBestKey"); + + if (true){//neighpbest.isDominating(indypbest)) { + neighbor = generateNeighborFrom(indy,mainSwarm); // neighbor wouldnt help with indies niche + worst = mainSwarm.getParticleWithWorstPBestButNot(indy); // delete another particle for the gnerated neighbor + }else{ + worst = neighbor; // use the neighbor particle and delete it from the mainswarm + } + + Population pop = new Population(2); + pop.add(indy); + pop.add(neighbor); + preparedSubswarm.setPopulation(pop); + preparedSubswarm.populationSizeHasChanged(); + + // remove particles from the main swarm: + mainSwarm.removeSubIndividual(indy); + mainSwarm.removeSubIndividual(worst); + mainSwarm.populationSizeHasChanged(); + } + + private AbstractEAIndividual generateNeighborFrom(AbstractEAIndividual indy, ParticleSubSwarmOptimization mainswarm) { + // generate a neighbor + ESIndividualDoubleData neighbor = (ESIndividualDoubleData)indy.clone(); + MutateESFixedStepSize mutator = new MutateESFixedStepSize(); + mutator.setSigma(getMu()); + neighbor.setMutationOperator(mutator); + neighbor.setMutationProbability(1); + neighbor.mutate(); + //TODO more stuff: stddev ... from indy + //TODO mutate velocity? evaluate? + neighbor.putData("BestFitness", neighbor.getFitness()); + neighbor.putData("BestPosition", neighbor.getDGenotype()); + return neighbor; + } + +/********************************************************************************************************************** + * getter, setter + */ + + public void setMu( + double generateNeighborWithMutationStep) { + this.mu = generateNeighborWithMutationStep; + } + + public double getMu() { + return mu; + } + + public String muTipText(){ + return "mutation step size used to generate a neighbor"; + } + + +} diff --git a/src/eva2/optimization/operators/nichepso/subswarmcreation/InterfaceSubswarmCreationStrategy.java b/src/eva2/optimization/operator/nichepso/subswarmcreation/InterfaceSubswarmCreationStrategy.java similarity index 92% rename from src/eva2/optimization/operators/nichepso/subswarmcreation/InterfaceSubswarmCreationStrategy.java rename to src/eva2/optimization/operator/nichepso/subswarmcreation/InterfaceSubswarmCreationStrategy.java index 7d0b3d61..f7660fd6 100644 --- a/src/eva2/optimization/operators/nichepso/subswarmcreation/InterfaceSubswarmCreationStrategy.java +++ b/src/eva2/optimization/operator/nichepso/subswarmcreation/InterfaceSubswarmCreationStrategy.java @@ -1,35 +1,35 @@ -package eva2.optimization.operators.nichepso.subswarmcreation; - -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.strategies.ParticleSubSwarmOptimization; - -/** - * interface for the subswarm creation strategies used in NichePSO - */ -public interface InterfaceSubswarmCreationStrategy { - - /** @tested - * decides whether a subswarm should be created for the given indy and mainswarm according to the creation strategie - * @param indy - * @param mainswarm - * @return - */ - public abstract boolean shouldCreateSubswarm( - AbstractEAIndividual indy, - ParticleSubSwarmOptimization mainswarm); - - /** @tested - * creates a subswarm from indy, the details depend on the concrete strategy. - * @param preparedSubswarm a subswarm which is appropriatly prepared - * (ie its problem, optimization strategy etc. are set correctly from the "meta-optimizer") - * Afterwards the subswarm containes the generated particles - * @param indy a particle from which a subswarm should be created - * @param mainSwarm the main swarm which contains indy - */ - public abstract void createSubswarm( - ParticleSubSwarmOptimization preparedSubswarm, - AbstractEAIndividual indy, - ParticleSubSwarmOptimization mainSwarm); - - public abstract Object clone(); -} +package eva2.optimization.operator.nichepso.subswarmcreation; + +import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.strategies.ParticleSubSwarmOptimization; + +/** + * interface for the subswarm creation strategies used in NichePSO + */ +public interface InterfaceSubswarmCreationStrategy { + + /** @tested + * decides whether a subswarm should be created for the given indy and mainswarm according to the creation strategie + * @param indy + * @param mainswarm + * @return + */ + public abstract boolean shouldCreateSubswarm( + AbstractEAIndividual indy, + ParticleSubSwarmOptimization mainswarm); + + /** @tested + * creates a subswarm from indy, the details depend on the concrete strategy. + * @param preparedSubswarm a subswarm which is appropriatly prepared + * (ie its problem, optimization strategy etc. are set correctly from the "meta-optimizer") + * Afterwards the subswarm containes the generated particles + * @param indy a particle from which a subswarm should be created + * @param mainSwarm the main swarm which contains indy + */ + public abstract void createSubswarm( + ParticleSubSwarmOptimization preparedSubswarm, + AbstractEAIndividual indy, + ParticleSubSwarmOptimization mainSwarm); + + public abstract Object clone(); +} diff --git a/src/eva2/optimization/operators/nichepso/subswarmcreation/StandardSubswarmCreationStrategy.java b/src/eva2/optimization/operator/nichepso/subswarmcreation/StandardSubswarmCreationStrategy.java similarity index 94% rename from src/eva2/optimization/operators/nichepso/subswarmcreation/StandardSubswarmCreationStrategy.java rename to src/eva2/optimization/operator/nichepso/subswarmcreation/StandardSubswarmCreationStrategy.java index d6b6a548..7141fcab 100644 --- a/src/eva2/optimization/operators/nichepso/subswarmcreation/StandardSubswarmCreationStrategy.java +++ b/src/eva2/optimization/operator/nichepso/subswarmcreation/StandardSubswarmCreationStrategy.java @@ -1,122 +1,122 @@ -package eva2.optimization.operators.nichepso.subswarmcreation; - -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; -import eva2.optimization.strategies.NichePSO; -import eva2.optimization.strategies.ParticleSubSwarmOptimization; - -/** - * The standard deviation in the fitness of each main swarm particle over the last 3 iterations is calculated. - * If this standard deviation falls below a given threshold delta it is assumed - * that the particle is converging on an optimum and a subswarm is created with that particle and its topological neighbor. - * The strategy is proposed in [1] suggesting a value of delta = 0.0001. - * [1] R. Brits, A. P. Engelbrecht and B. Bergh. - * A Niching Particle Swarm Optimizer - * In Proceedings of the 4th Asia-Pacific Conference on Simulated Evolution and Learning (SEAL'02), - * 2002, 2, 692-696 - */ -public class StandardSubswarmCreationStrategy implements InterfaceSubswarmCreationStrategy, java.io.Serializable { - - protected double delta = 0.0001; // "experimentally found to be effective" according to "a niching particle swarm optimizer" by Brits et al. - - public StandardSubswarmCreationStrategy(double theDelta) { - delta = theDelta; - } - - public StandardSubswarmCreationStrategy() { - delta = 0.0001; - } - - @Override - public Object clone(){ - return (Object) new StandardSubswarmCreationStrategy(delta); - } - - public String globalInfo(){ - return "Strategy to create subswarms from the main swarm"; - } - -/********************************************************************************************************************** - * shouldCreateSubswarm - */ - /** @tested junit - * true if the stddev of the particles fitness < delta and no constraints are violated - * @param indy main swarm particle - * @return - */ - @Override - public boolean shouldCreateSubswarm(AbstractEAIndividual indy, ParticleSubSwarmOptimization mainswarm) { - if (createSubswarmConstraintViolation(indy, mainswarm)){ - return false; - } - - // check for stddev < delta condition - double stddev = (((Double)indy.getData(NichePSO.stdDevKey))).doubleValue(); - if (stddev >= getDelta()){ - return false; - } - - return true; - } - - /** @tested junit - * true, if reasons exist why no subswarm should be created from indy. - * Reasons like: - * poor fitness (not implemented), - * convergence on plateau (not implemented), - * indy is the only particle in the mainswarm and therefor has no neighbor - * @param indy main swarm particle - * @return - */ - public boolean createSubswarmConstraintViolation(AbstractEAIndividual indy, ParticleSubSwarmOptimization mainswarm){ - boolean result = false; - - // check for MainSwarm-Size - if (mainswarm.getPopulation().size() < 2){ - //if (verbose) System.out.print("createSubswarmConstraintViolation: MainSwarm too small, no subswarm can be created\n"); - result = true; - } - - return result; - } - -/********************************************************************************************************************** - * createSubswarm - */ - - /** @tested - * creates a subswarm from the given particle and its neighbor in the mainswarm, - * then deletes the two particles from the mainswarm. - * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceSubswarmCreationStrategy#createSubswarm(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization, javaeva.server.oa.go.EAIndividuals.AbstractEAIndividual, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) - */ - @Override - public void createSubswarm(ParticleSubSwarmOptimization preparedSubswarm, AbstractEAIndividual indy, ParticleSubSwarmOptimization mainSwarm) { - - // get the neighbor to create the subswarm - AbstractEAIndividual neighbor = mainSwarm.getMemberNeighbor(indy); - - Population pop = new Population(2); - pop.add(indy); - pop.add(neighbor); - preparedSubswarm.setPopulation(pop); - preparedSubswarm.populationSizeHasChanged(); - - // remove particles from the main swarm: - mainSwarm.removeSubIndividual(indy); - mainSwarm.removeSubIndividual(neighbor); - mainSwarm.populationSizeHasChanged(); - } - - public double getDelta() { - return delta; - } - - public void setDelta(double delta) { - this.delta = delta; - } - - public String deltaTipText(){ - return "threshold used to identify converging particles which lead to the creation of subswarms"; - } - -} +package eva2.optimization.operator.nichepso.subswarmcreation; + +import eva2.optimization.individuals.AbstractEAIndividual; +import eva2.optimization.population.Population; +import eva2.optimization.strategies.NichePSO; +import eva2.optimization.strategies.ParticleSubSwarmOptimization; + +/** + * The standard deviation in the fitness of each main swarm particle over the last 3 iterations is calculated. + * If this standard deviation falls below a given threshold delta it is assumed + * that the particle is converging on an optimum and a subswarm is created with that particle and its topological neighbor. + * The strategy is proposed in [1] suggesting a value of delta = 0.0001. + * [1] R. Brits, A. P. Engelbrecht and B. Bergh. + * A Niching Particle Swarm Optimizer + * In Proceedings of the 4th Asia-Pacific Conference on Simulated Evolution and Learning (SEAL'02), + * 2002, 2, 692-696 + */ +public class StandardSubswarmCreationStrategy implements InterfaceSubswarmCreationStrategy, java.io.Serializable { + + protected double delta = 0.0001; // "experimentally found to be effective" according to "a niching particle swarm optimizer" by Brits et al. + + public StandardSubswarmCreationStrategy(double theDelta) { + delta = theDelta; + } + + public StandardSubswarmCreationStrategy() { + delta = 0.0001; + } + + @Override + public Object clone(){ + return (Object) new StandardSubswarmCreationStrategy(delta); + } + + public String globalInfo(){ + return "Strategy to create subswarms from the main swarm"; + } + +/********************************************************************************************************************** + * shouldCreateSubswarm + */ + /** @tested junit + * true if the stddev of the particles fitness < delta and no constraints are violated + * @param indy main swarm particle + * @return + */ + @Override + public boolean shouldCreateSubswarm(AbstractEAIndividual indy, ParticleSubSwarmOptimization mainswarm) { + if (createSubswarmConstraintViolation(indy, mainswarm)){ + return false; + } + + // check for stddev < delta condition + double stddev = (((Double)indy.getData(NichePSO.stdDevKey))).doubleValue(); + if (stddev >= getDelta()){ + return false; + } + + return true; + } + + /** @tested junit + * true, if reasons exist why no subswarm should be created from indy. + * Reasons like: + * poor fitness (not implemented), + * convergence on plateau (not implemented), + * indy is the only particle in the mainswarm and therefor has no neighbor + * @param indy main swarm particle + * @return + */ + public boolean createSubswarmConstraintViolation(AbstractEAIndividual indy, ParticleSubSwarmOptimization mainswarm){ + boolean result = false; + + // check for MainSwarm-Size + if (mainswarm.getPopulation().size() < 2){ + //if (verbose) System.out.print("createSubswarmConstraintViolation: MainSwarm too small, no subswarm can be created\n"); + result = true; + } + + return result; + } + +/********************************************************************************************************************** + * createSubswarm + */ + + /** @tested + * creates a subswarm from the given particle and its neighbor in the mainswarm, + * then deletes the two particles from the mainswarm. + * (non-Javadoc) @see javaeva.server.oa.go.Operators.NichePSO.InterfaceSubswarmCreationStrategy#createSubswarm(javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization, javaeva.server.oa.go.EAIndividuals.AbstractEAIndividual, javaeva.server.oa.go.Strategies.ParticleSubSwarmOptimization) + */ + @Override + public void createSubswarm(ParticleSubSwarmOptimization preparedSubswarm, AbstractEAIndividual indy, ParticleSubSwarmOptimization mainSwarm) { + + // get the neighbor to create the subswarm + AbstractEAIndividual neighbor = mainSwarm.getMemberNeighbor(indy); + + Population pop = new Population(2); + pop.add(indy); + pop.add(neighbor); + preparedSubswarm.setPopulation(pop); + preparedSubswarm.populationSizeHasChanged(); + + // remove particles from the main swarm: + mainSwarm.removeSubIndividual(indy); + mainSwarm.removeSubIndividual(neighbor); + mainSwarm.populationSizeHasChanged(); + } + + public double getDelta() { + return delta; + } + + public void setDelta(double delta) { + this.delta = delta; + } + + public String deltaTipText(){ + return "threshold used to identify converging particles which lead to the creation of subswarms"; + } + +} diff --git a/src/eva2/optimization/operators/paramcontrol/AbstractAdaptiveParameters.java b/src/eva2/optimization/operator/paramcontrol/AbstractAdaptiveParameters.java similarity index 98% rename from src/eva2/optimization/operators/paramcontrol/AbstractAdaptiveParameters.java rename to src/eva2/optimization/operator/paramcontrol/AbstractAdaptiveParameters.java index f9c96d53..111959b1 100644 --- a/src/eva2/optimization/operators/paramcontrol/AbstractAdaptiveParameters.java +++ b/src/eva2/optimization/operator/paramcontrol/AbstractAdaptiveParameters.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; //package eva2.optimization.operators.paramcontrol; // diff --git a/src/eva2/optimization/operators/paramcontrol/AbstractLinearParamAdaption.java b/src/eva2/optimization/operator/paramcontrol/AbstractLinearParamAdaption.java similarity index 94% rename from src/eva2/optimization/operators/paramcontrol/AbstractLinearParamAdaption.java rename to src/eva2/optimization/operator/paramcontrol/AbstractLinearParamAdaption.java index 2a3873cb..3a8a929e 100644 --- a/src/eva2/optimization/operators/paramcontrol/AbstractLinearParamAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/AbstractLinearParamAdaption.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; import eva2.gui.BeanInspector; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.math.Mathematics; import java.io.Serializable; diff --git a/src/eva2/optimization/operators/paramcontrol/AbstractParameterControl.java b/src/eva2/optimization/operator/paramcontrol/AbstractParameterControl.java similarity index 97% rename from src/eva2/optimization/operators/paramcontrol/AbstractParameterControl.java rename to src/eva2/optimization/operator/paramcontrol/AbstractParameterControl.java index bcb319f1..2aea7459 100644 --- a/src/eva2/optimization/operators/paramcontrol/AbstractParameterControl.java +++ b/src/eva2/optimization/operator/paramcontrol/AbstractParameterControl.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; import eva2.gui.BeanInspector; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** * Convenience class. Besides the init() method, two more remain to be implemented: diff --git a/src/eva2/optimization/operators/paramcontrol/AdaptivityEnum.java b/src/eva2/optimization/operator/paramcontrol/AdaptivityEnum.java similarity index 80% rename from src/eva2/optimization/operators/paramcontrol/AdaptivityEnum.java rename to src/eva2/optimization/operator/paramcontrol/AdaptivityEnum.java index 1a2959c9..5f7ba5df 100644 --- a/src/eva2/optimization/operators/paramcontrol/AdaptivityEnum.java +++ b/src/eva2/optimization/operator/paramcontrol/AdaptivityEnum.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; //package eva2.optimization.operators.paramcontrol; // diff --git a/src/eva2/optimization/operators/paramcontrol/CbpsoFitnessThresholdBasedAdaption.java b/src/eva2/optimization/operator/paramcontrol/CbpsoFitnessThresholdBasedAdaption.java similarity index 98% rename from src/eva2/optimization/operators/paramcontrol/CbpsoFitnessThresholdBasedAdaption.java rename to src/eva2/optimization/operator/paramcontrol/CbpsoFitnessThresholdBasedAdaption.java index 1328d941..47299e00 100644 --- a/src/eva2/optimization/operators/paramcontrol/CbpsoFitnessThresholdBasedAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/CbpsoFitnessThresholdBasedAdaption.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.strategies.CBNPSO; import java.io.Serializable; diff --git a/src/eva2/optimization/operators/paramcontrol/ConstantParameters.java b/src/eva2/optimization/operator/paramcontrol/ConstantParameters.java similarity index 88% rename from src/eva2/optimization/operators/paramcontrol/ConstantParameters.java rename to src/eva2/optimization/operator/paramcontrol/ConstantParameters.java index 0d798fa9..08227782 100644 --- a/src/eva2/optimization/operators/paramcontrol/ConstantParameters.java +++ b/src/eva2/optimization/operator/paramcontrol/ConstantParameters.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import java.io.Serializable; /** diff --git a/src/eva2/optimization/operators/paramcontrol/ConstraintBasedAdaption.java b/src/eva2/optimization/operator/paramcontrol/ConstraintBasedAdaption.java similarity index 97% rename from src/eva2/optimization/operators/paramcontrol/ConstraintBasedAdaption.java rename to src/eva2/optimization/operator/paramcontrol/ConstraintBasedAdaption.java index 12360176..45432178 100644 --- a/src/eva2/optimization/operators/paramcontrol/ConstraintBasedAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/ConstraintBasedAdaption.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.constraint.AbstractConstraint; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.constraint.AbstractConstraint; +import eva2.optimization.population.Population; import eva2.tools.math.Mathematics; import java.io.Serializable; import java.util.LinkedList; diff --git a/src/eva2/optimization/operators/paramcontrol/ExponentialDecayAdaption.java b/src/eva2/optimization/operator/paramcontrol/ExponentialDecayAdaption.java similarity index 96% rename from src/eva2/optimization/operators/paramcontrol/ExponentialDecayAdaption.java rename to src/eva2/optimization/operator/paramcontrol/ExponentialDecayAdaption.java index 7f017b77..2ec6e87c 100644 --- a/src/eva2/optimization/operators/paramcontrol/ExponentialDecayAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/ExponentialDecayAdaption.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import java.io.Serializable; /** diff --git a/src/eva2/optimization/operators/paramcontrol/GenericParamAdaption.java b/src/eva2/optimization/operator/paramcontrol/GenericParamAdaption.java similarity index 86% rename from src/eva2/optimization/operators/paramcontrol/GenericParamAdaption.java rename to src/eva2/optimization/operator/paramcontrol/GenericParamAdaption.java index 1f795de4..1d0d4100 100644 --- a/src/eva2/optimization/operators/paramcontrol/GenericParamAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/GenericParamAdaption.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; /** * This should be implemented by adaptors which can be applied to generic target properties. diff --git a/src/eva2/optimization/operators/paramcontrol/InterfaceHasUpperDoubleBound.java b/src/eva2/optimization/operator/paramcontrol/InterfaceHasUpperDoubleBound.java similarity index 83% rename from src/eva2/optimization/operators/paramcontrol/InterfaceHasUpperDoubleBound.java rename to src/eva2/optimization/operator/paramcontrol/InterfaceHasUpperDoubleBound.java index 767a8127..76e97002 100644 --- a/src/eva2/optimization/operators/paramcontrol/InterfaceHasUpperDoubleBound.java +++ b/src/eva2/optimization/operator/paramcontrol/InterfaceHasUpperDoubleBound.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; /** * Interface for an instance which has a real valued upper bound of some kind which diff --git a/src/eva2/optimization/operators/paramcontrol/InterfaceParamControllable.java b/src/eva2/optimization/operator/paramcontrol/InterfaceParamControllable.java similarity index 88% rename from src/eva2/optimization/operators/paramcontrol/InterfaceParamControllable.java rename to src/eva2/optimization/operator/paramcontrol/InterfaceParamControllable.java index 1de2d5b4..75d07b32 100644 --- a/src/eva2/optimization/operators/paramcontrol/InterfaceParamControllable.java +++ b/src/eva2/optimization/operator/paramcontrol/InterfaceParamControllable.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; /** * An object which may be "controlled" dynamically using a String for access. diff --git a/src/eva2/optimization/operators/paramcontrol/InterfaceParameterControl.java b/src/eva2/optimization/operator/paramcontrol/InterfaceParameterControl.java similarity index 94% rename from src/eva2/optimization/operators/paramcontrol/InterfaceParameterControl.java rename to src/eva2/optimization/operator/paramcontrol/InterfaceParameterControl.java index 02652556..9a57a9f0 100644 --- a/src/eva2/optimization/operators/paramcontrol/InterfaceParameterControl.java +++ b/src/eva2/optimization/operator/paramcontrol/InterfaceParameterControl.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** * Interface for dynamic changes to object parameters. diff --git a/src/eva2/optimization/operators/paramcontrol/LinearParamAdaption.java b/src/eva2/optimization/operator/paramcontrol/LinearParamAdaption.java similarity index 97% rename from src/eva2/optimization/operators/paramcontrol/LinearParamAdaption.java rename to src/eva2/optimization/operator/paramcontrol/LinearParamAdaption.java index c91558ad..c681e4c5 100644 --- a/src/eva2/optimization/operators/paramcontrol/LinearParamAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/LinearParamAdaption.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; import java.io.Serializable; diff --git a/src/eva2/optimization/operators/paramcontrol/NoParamAdaption.java b/src/eva2/optimization/operator/paramcontrol/NoParamAdaption.java similarity index 88% rename from src/eva2/optimization/operators/paramcontrol/NoParamAdaption.java rename to src/eva2/optimization/operator/paramcontrol/NoParamAdaption.java index 940e2fbe..eeaa0589 100644 --- a/src/eva2/optimization/operators/paramcontrol/NoParamAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/NoParamAdaption.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import java.io.Serializable; /** diff --git a/src/eva2/optimization/operators/paramcontrol/PSOActivityFeedbackControl.java b/src/eva2/optimization/operator/paramcontrol/PSOActivityFeedbackControl.java similarity index 98% rename from src/eva2/optimization/operators/paramcontrol/PSOActivityFeedbackControl.java rename to src/eva2/optimization/operator/paramcontrol/PSOActivityFeedbackControl.java index 2572b77f..4e590467 100644 --- a/src/eva2/optimization/operators/paramcontrol/PSOActivityFeedbackControl.java +++ b/src/eva2/optimization/operator/paramcontrol/PSOActivityFeedbackControl.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.strategies.ParticleSwarmOptimization; import eva2.tools.math.Mathematics; import java.io.Serializable; diff --git a/src/eva2/optimization/operators/paramcontrol/PSOInertnessAdaption.java b/src/eva2/optimization/operator/paramcontrol/PSOInertnessAdaption.java similarity index 94% rename from src/eva2/optimization/operators/paramcontrol/PSOInertnessAdaption.java rename to src/eva2/optimization/operator/paramcontrol/PSOInertnessAdaption.java index 0a513def..db4ea35e 100644 --- a/src/eva2/optimization/operators/paramcontrol/PSOInertnessAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/PSOInertnessAdaption.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; import eva2.gui.GenericObjectEditor; import java.io.Serializable; diff --git a/src/eva2/optimization/operators/paramcontrol/ParamAdaption.java b/src/eva2/optimization/operator/paramcontrol/ParamAdaption.java similarity index 85% rename from src/eva2/optimization/operators/paramcontrol/ParamAdaption.java rename to src/eva2/optimization/operator/paramcontrol/ParamAdaption.java index 05895794..df6680ab 100644 --- a/src/eva2/optimization/operators/paramcontrol/ParamAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/ParamAdaption.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** * Adapt exactly one parameter with a generic method. diff --git a/src/eva2/optimization/operators/paramcontrol/ParamChangeListener.java b/src/eva2/optimization/operator/paramcontrol/ParamChangeListener.java similarity index 75% rename from src/eva2/optimization/operators/paramcontrol/ParamChangeListener.java rename to src/eva2/optimization/operator/paramcontrol/ParamChangeListener.java index 78b2420b..6c6e82ee 100644 --- a/src/eva2/optimization/operators/paramcontrol/ParamChangeListener.java +++ b/src/eva2/optimization/operator/paramcontrol/ParamChangeListener.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; public interface ParamChangeListener { public void notifyChange(InterfaceParamControllable controllable, Object oldVal, Object newVal, String msg); diff --git a/src/eva2/optimization/operators/paramcontrol/ParameterControlManager.java b/src/eva2/optimization/operator/paramcontrol/ParameterControlManager.java similarity index 98% rename from src/eva2/optimization/operators/paramcontrol/ParameterControlManager.java rename to src/eva2/optimization/operator/paramcontrol/ParameterControlManager.java index ce820e68..05412d24 100644 --- a/src/eva2/optimization/operators/paramcontrol/ParameterControlManager.java +++ b/src/eva2/optimization/operator/paramcontrol/ParameterControlManager.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; import eva2.gui.BeanInspector; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.modules.Processor; import eva2.tools.Pair; import java.io.Serializable; diff --git a/src/eva2/optimization/operators/paramcontrol/SingleParamAdaption.java b/src/eva2/optimization/operator/paramcontrol/SingleParamAdaption.java similarity index 97% rename from src/eva2/optimization/operators/paramcontrol/SingleParamAdaption.java rename to src/eva2/optimization/operator/paramcontrol/SingleParamAdaption.java index da1bdd43..5023a933 100644 --- a/src/eva2/optimization/operators/paramcontrol/SingleParamAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/SingleParamAdaption.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; //package eva2.optimization.operators.paramcontrol; // diff --git a/src/eva2/optimization/operators/paramcontrol/SinusoidalParamAdaption.java b/src/eva2/optimization/operator/paramcontrol/SinusoidalParamAdaption.java similarity index 98% rename from src/eva2/optimization/operators/paramcontrol/SinusoidalParamAdaption.java rename to src/eva2/optimization/operator/paramcontrol/SinusoidalParamAdaption.java index db6d9eb0..82b1d84f 100644 --- a/src/eva2/optimization/operators/paramcontrol/SinusoidalParamAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/SinusoidalParamAdaption.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import java.io.Serializable; /** diff --git a/src/eva2/optimization/operators/paramcontrol/SuccessBasedAdaption.java b/src/eva2/optimization/operator/paramcontrol/SuccessBasedAdaption.java similarity index 94% rename from src/eva2/optimization/operators/paramcontrol/SuccessBasedAdaption.java rename to src/eva2/optimization/operator/paramcontrol/SuccessBasedAdaption.java index b269ea85..65aec0f6 100644 --- a/src/eva2/optimization/operators/paramcontrol/SuccessBasedAdaption.java +++ b/src/eva2/optimization/operator/paramcontrol/SuccessBasedAdaption.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.paramcontrol; +package eva2.optimization.operator.paramcontrol; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.strategies.InterfaceOptimizer; import java.io.Serializable; diff --git a/src/eva2/optimization/operators/paretofrontmetrics/InterfaceParetoFrontMetric.java b/src/eva2/optimization/operator/paretofrontmetrics/InterfaceParetoFrontMetric.java similarity index 85% rename from src/eva2/optimization/operators/paretofrontmetrics/InterfaceParetoFrontMetric.java rename to src/eva2/optimization/operator/paretofrontmetrics/InterfaceParetoFrontMetric.java index 1e89124a..2bea29c0 100644 --- a/src/eva2/optimization/operators/paretofrontmetrics/InterfaceParetoFrontMetric.java +++ b/src/eva2/optimization/operator/paretofrontmetrics/InterfaceParetoFrontMetric.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.paretofrontmetrics; +package eva2.optimization.operator.paretofrontmetrics; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; /** Interface for general Pareto front methods. diff --git a/src/eva2/optimization/operators/paretofrontmetrics/MetricD1ApproxParetoFront.java b/src/eva2/optimization/operator/paretofrontmetrics/MetricD1ApproxParetoFront.java similarity index 95% rename from src/eva2/optimization/operators/paretofrontmetrics/MetricD1ApproxParetoFront.java rename to src/eva2/optimization/operator/paretofrontmetrics/MetricD1ApproxParetoFront.java index fef635ad..9868c165 100644 --- a/src/eva2/optimization/operators/paretofrontmetrics/MetricD1ApproxParetoFront.java +++ b/src/eva2/optimization/operator/paretofrontmetrics/MetricD1ApproxParetoFront.java @@ -1,10 +1,10 @@ -package eva2.optimization.operators.paretofrontmetrics; +package eva2.optimization.operator.paretofrontmetrics; import eva2.gui.PropertyFilePath; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingAllDominating; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingAllDominating; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.tools.FileTools; import java.util.ArrayList; @@ -18,7 +18,7 @@ import java.util.ArrayList; * Time: 13:57:28 * To change this template use File | Settings | File Templates. */ -public class MetricD1ApproxParetoFront implements eva2.optimization.operators.paretofrontmetrics.InterfaceParetoFrontMetric, java.io.Serializable { +public class MetricD1ApproxParetoFront implements eva2.optimization.operator.paretofrontmetrics.InterfaceParetoFrontMetric, java.io.Serializable { private PropertyFilePath m_InputFilePath = PropertyFilePath.getFilePathFromResource("MOPReference/T1_250.txt"); private String[] m_Titles; private double[][] m_Reference; diff --git a/src/eva2/optimization/operators/paretofrontmetrics/MetricD1TrueParetoFront.java b/src/eva2/optimization/operator/paretofrontmetrics/MetricD1TrueParetoFront.java similarity index 95% rename from src/eva2/optimization/operators/paretofrontmetrics/MetricD1TrueParetoFront.java rename to src/eva2/optimization/operator/paretofrontmetrics/MetricD1TrueParetoFront.java index 793d517b..03fa3d3e 100644 --- a/src/eva2/optimization/operators/paretofrontmetrics/MetricD1TrueParetoFront.java +++ b/src/eva2/optimization/operator/paretofrontmetrics/MetricD1TrueParetoFront.java @@ -1,10 +1,10 @@ -package eva2.optimization.operators.paretofrontmetrics; +package eva2.optimization.operator.paretofrontmetrics; import eva2.gui.PropertyFilePath; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingAllDominating; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingAllDominating; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.tools.FileTools; import java.util.ArrayList; @@ -18,7 +18,7 @@ import java.util.ArrayList; * Time: 13:57:13 * To change this template use File | Settings | File Templates. */ -public class MetricD1TrueParetoFront implements eva2.optimization.operators.paretofrontmetrics.InterfaceParetoFrontMetric, java.io.Serializable { +public class MetricD1TrueParetoFront implements eva2.optimization.operator.paretofrontmetrics.InterfaceParetoFrontMetric, java.io.Serializable { // private String base = System.getProperty("user.dir"); // private String FS = System.getProperty("file.separator"); diff --git a/src/eva2/optimization/operators/paretofrontmetrics/MetricErrorRatio.java b/src/eva2/optimization/operator/paretofrontmetrics/MetricErrorRatio.java similarity index 96% rename from src/eva2/optimization/operators/paretofrontmetrics/MetricErrorRatio.java rename to src/eva2/optimization/operator/paretofrontmetrics/MetricErrorRatio.java index 71a98918..ca6a963c 100644 --- a/src/eva2/optimization/operators/paretofrontmetrics/MetricErrorRatio.java +++ b/src/eva2/optimization/operator/paretofrontmetrics/MetricErrorRatio.java @@ -1,10 +1,10 @@ -package eva2.optimization.operators.paretofrontmetrics; +package eva2.optimization.operator.paretofrontmetrics; import eva2.gui.PropertyFilePath; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingAllDominating; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingAllDominating; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.tools.FileTools; import java.util.ArrayList; @@ -19,7 +19,7 @@ import java.util.ArrayList; * Time: 17:22:23 * To change this template use File | Settings | File Templates. */ -public class MetricErrorRatio implements eva2.optimization.operators.paretofrontmetrics.InterfaceParetoFrontMetric, java.io.Serializable { +public class MetricErrorRatio implements eva2.optimization.operator.paretofrontmetrics.InterfaceParetoFrontMetric, java.io.Serializable { private PropertyFilePath m_InputFilePath = PropertyFilePath.getFilePathFromResource("MOPReference/T1_250.txt"); private double m_Epsilon = 0.0001; private String[] m_Titles; diff --git a/src/eva2/optimization/operators/paretofrontmetrics/MetricMaximumParetoFrontError.java b/src/eva2/optimization/operator/paretofrontmetrics/MetricMaximumParetoFrontError.java similarity index 95% rename from src/eva2/optimization/operators/paretofrontmetrics/MetricMaximumParetoFrontError.java rename to src/eva2/optimization/operator/paretofrontmetrics/MetricMaximumParetoFrontError.java index a2747f7e..d2b193d4 100644 --- a/src/eva2/optimization/operators/paretofrontmetrics/MetricMaximumParetoFrontError.java +++ b/src/eva2/optimization/operator/paretofrontmetrics/MetricMaximumParetoFrontError.java @@ -1,10 +1,10 @@ -package eva2.optimization.operators.paretofrontmetrics; +package eva2.optimization.operator.paretofrontmetrics; import eva2.gui.PropertyFilePath; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingAllDominating; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingAllDominating; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.tools.FileTools; import java.util.ArrayList; @@ -17,7 +17,7 @@ import java.util.ArrayList; * Time: 13:25:44 * To change this template use File | Settings | File Templates. */ -public class MetricMaximumParetoFrontError implements eva2.optimization.operators.paretofrontmetrics.InterfaceParetoFrontMetric, java.io.Serializable { +public class MetricMaximumParetoFrontError implements eva2.optimization.operator.paretofrontmetrics.InterfaceParetoFrontMetric, java.io.Serializable { private PropertyFilePath m_InputFilePath = PropertyFilePath.getFilePathFromResource("MOPReference/T1_250.txt"); private String[] m_Titles; private double[][] m_Reference; diff --git a/src/eva2/optimization/operators/paretofrontmetrics/MetricOverallNonDominatedVectors.java b/src/eva2/optimization/operator/paretofrontmetrics/MetricOverallNonDominatedVectors.java similarity index 93% rename from src/eva2/optimization/operators/paretofrontmetrics/MetricOverallNonDominatedVectors.java rename to src/eva2/optimization/operator/paretofrontmetrics/MetricOverallNonDominatedVectors.java index 90af4906..87990ae6 100644 --- a/src/eva2/optimization/operators/paretofrontmetrics/MetricOverallNonDominatedVectors.java +++ b/src/eva2/optimization/operator/paretofrontmetrics/MetricOverallNonDominatedVectors.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.paretofrontmetrics; +package eva2.optimization.operator.paretofrontmetrics; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingAllDominating; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingAllDominating; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; /** Overall Non-Dom. Vector Generation calculates simply the number of diff --git a/src/eva2/optimization/operators/paretofrontmetrics/MetricS.java b/src/eva2/optimization/operator/paretofrontmetrics/MetricS.java similarity index 98% rename from src/eva2/optimization/operators/paretofrontmetrics/MetricS.java rename to src/eva2/optimization/operator/paretofrontmetrics/MetricS.java index 3dcaeb44..b7d548d8 100644 --- a/src/eva2/optimization/operators/paretofrontmetrics/MetricS.java +++ b/src/eva2/optimization/operator/paretofrontmetrics/MetricS.java @@ -1,10 +1,10 @@ -package eva2.optimization.operators.paretofrontmetrics; +package eva2.optimization.operator.paretofrontmetrics; import eva2.gui.BeanInspector; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; -import eva2.optimization.operators.archiving.ArchivingAllDominating; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingAllDominating; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; /** S-Metric calculates the hyper-volume covered between the current solutions and a reference point. diff --git a/src/eva2/optimization/operators/paretofrontmetrics/MetricSWithReference.java b/src/eva2/optimization/operator/paretofrontmetrics/MetricSWithReference.java similarity index 98% rename from src/eva2/optimization/operators/paretofrontmetrics/MetricSWithReference.java rename to src/eva2/optimization/operator/paretofrontmetrics/MetricSWithReference.java index 463beb86..14da7390 100644 --- a/src/eva2/optimization/operators/paretofrontmetrics/MetricSWithReference.java +++ b/src/eva2/optimization/operator/paretofrontmetrics/MetricSWithReference.java @@ -1,11 +1,11 @@ -package eva2.optimization.operators.paretofrontmetrics; +package eva2.optimization.operator.paretofrontmetrics; import eva2.gui.PropertyFilePath; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; -import eva2.optimization.operators.archiving.ArchivingAllDominating; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingAllDominating; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.tools.FileTools; import java.util.ArrayList; diff --git a/src/eva2/optimization/operators/postprocess/InterfacePostProcessParams.java b/src/eva2/optimization/operator/postprocess/InterfacePostProcessParams.java similarity index 95% rename from src/eva2/optimization/operators/postprocess/InterfacePostProcessParams.java rename to src/eva2/optimization/operator/postprocess/InterfacePostProcessParams.java index 20a434b4..d8a92324 100644 --- a/src/eva2/optimization/operators/postprocess/InterfacePostProcessParams.java +++ b/src/eva2/optimization/operator/postprocess/InterfacePostProcessParams.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.postprocess; +package eva2.optimization.operator.postprocess; import eva2.optimization.enums.PostProcessMethod; diff --git a/src/eva2/optimization/operators/postprocess/PostProcess.java b/src/eva2/optimization/operator/postprocess/PostProcess.java similarity index 98% rename from src/eva2/optimization/operators/postprocess/PostProcess.java rename to src/eva2/optimization/operator/postprocess/PostProcess.java index 1a7b3bc6..761457dd 100644 --- a/src/eva2/optimization/operators/postprocess/PostProcess.java +++ b/src/eva2/optimization/operator/postprocess/PostProcess.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.postprocess; +package eva2.optimization.operator.postprocess; import eva2.optimization.problems.InterfaceInterestingHistogram; import eva2.optimization.problems.InterfaceMultimodalProblemKnown; @@ -20,19 +20,19 @@ import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.individuals.InterfaceESIndividual; -import eva2.optimization.operators.cluster.ClusteringDensityBased; -import eva2.optimization.operators.cluster.InterfaceClustering; -import eva2.optimization.operators.crossover.CrossoverESDefault; -import eva2.optimization.operators.distancemetric.EuclideanMetric; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; -import eva2.optimization.operators.distancemetric.PhenotypeMetric; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.operators.mutation.MutateESFixedStepSize; -import eva2.optimization.operators.mutation.MutateESMutativeStepSizeControl; -import eva2.optimization.operators.mutation.MutateESRankMuCMA; -import eva2.optimization.operators.selection.SelectBestIndividuals; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.cluster.ClusteringDensityBased; +import eva2.optimization.operator.cluster.InterfaceClustering; +import eva2.optimization.operator.crossover.CrossoverESDefault; +import eva2.optimization.operator.distancemetric.EuclideanMetric; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.operator.mutation.MutateESFixedStepSize; +import eva2.optimization.operator.mutation.MutateESMutativeStepSizeControl; +import eva2.optimization.operator.mutation.MutateESRankMuCMA; +import eva2.optimization.operator.selection.SelectBestIndividuals; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.strategies.EvolutionStrategies; import eva2.optimization.strategies.GradientDescentAlgorithm; import eva2.optimization.strategies.HillClimbing; diff --git a/src/eva2/optimization/operators/postprocess/PostProcessParams.java b/src/eva2/optimization/operator/postprocess/PostProcessParams.java similarity index 99% rename from src/eva2/optimization/operators/postprocess/PostProcessParams.java rename to src/eva2/optimization/operator/postprocess/PostProcessParams.java index 18abfe34..eac4ef07 100644 --- a/src/eva2/optimization/operators/postprocess/PostProcessParams.java +++ b/src/eva2/optimization/operator/postprocess/PostProcessParams.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.postprocess; +package eva2.optimization.operator.postprocess; import eva2.gui.GenericObjectEditor; import eva2.optimization.enums.PostProcessMethod; diff --git a/src/eva2/optimization/operators/postprocess/SolutionHistogram.java b/src/eva2/optimization/operator/postprocess/SolutionHistogram.java similarity index 98% rename from src/eva2/optimization/operators/postprocess/SolutionHistogram.java rename to src/eva2/optimization/operator/postprocess/SolutionHistogram.java index 79ca2703..d0cc9f08 100644 --- a/src/eva2/optimization/operators/postprocess/SolutionHistogram.java +++ b/src/eva2/optimization/operator/postprocess/SolutionHistogram.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.postprocess; +package eva2.optimization.operator.postprocess; import eva2.gui.BeanInspector; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.InterfaceInterestingHistogram; import eva2.tools.math.Mathematics; diff --git a/src/eva2/optimization/operators/selection/InterfaceSelection.java b/src/eva2/optimization/operator/selection/InterfaceSelection.java similarity index 95% rename from src/eva2/optimization/operators/selection/InterfaceSelection.java rename to src/eva2/optimization/operator/selection/InterfaceSelection.java index 4dbd3639..92003ab5 100644 --- a/src/eva2/optimization/operators/selection/InterfaceSelection.java +++ b/src/eva2/optimization/operator/selection/InterfaceSelection.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** Selection methods have to implement on the one hand the diff --git a/src/eva2/optimization/operators/selection/MOMultipleSolutions.java b/src/eva2/optimization/operator/selection/MOMultipleSolutions.java similarity index 96% rename from src/eva2/optimization/operators/selection/MOMultipleSolutions.java rename to src/eva2/optimization/operator/selection/MOMultipleSolutions.java index db9e539c..5efbc5bc 100644 --- a/src/eva2/optimization/operators/selection/MOMultipleSolutions.java +++ b/src/eva2/optimization/operator/selection/MOMultipleSolutions.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import java.util.ArrayList; diff --git a/src/eva2/optimization/operators/selection/MOSolution.java b/src/eva2/optimization/operator/selection/MOSolution.java similarity index 93% rename from src/eva2/optimization/operators/selection/MOSolution.java rename to src/eva2/optimization/operator/selection/MOSolution.java index ec4b3e6b..83161a85 100644 --- a/src/eva2/optimization/operators/selection/MOSolution.java +++ b/src/eva2/optimization/operator/selection/MOSolution.java @@ -1,4 +1,4 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; /** * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operators/selection/SelectAll.java b/src/eva2/optimization/operator/selection/SelectAll.java similarity index 97% rename from src/eva2/optimization/operators/selection/SelectAll.java rename to src/eva2/optimization/operator/selection/SelectAll.java index c675eda5..8d91f9a3 100644 --- a/src/eva2/optimization/operators/selection/SelectAll.java +++ b/src/eva2/optimization/operator/selection/SelectAll.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** Simple method to selecet all. * In case of multiple fitness values the selection diff --git a/src/eva2/optimization/operators/selection/SelectBestIndividuals.java b/src/eva2/optimization/operator/selection/SelectBestIndividuals.java similarity index 98% rename from src/eva2/optimization/operators/selection/SelectBestIndividuals.java rename to src/eva2/optimization/operator/selection/SelectBestIndividuals.java index ea7c025f..0cefc204 100644 --- a/src/eva2/optimization/operators/selection/SelectBestIndividuals.java +++ b/src/eva2/optimization/operator/selection/SelectBestIndividuals.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; import java.util.ArrayList; diff --git a/src/eva2/optimization/operators/selection/SelectBestSingle.java b/src/eva2/optimization/operator/selection/SelectBestSingle.java similarity index 98% rename from src/eva2/optimization/operators/selection/SelectBestSingle.java rename to src/eva2/optimization/operator/selection/SelectBestSingle.java index 618e5897..519a79a8 100644 --- a/src/eva2/optimization/operators/selection/SelectBestSingle.java +++ b/src/eva2/optimization/operator/selection/SelectBestSingle.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/selection/SelectEPTournaments.java b/src/eva2/optimization/operator/selection/SelectEPTournaments.java similarity index 98% rename from src/eva2/optimization/operators/selection/SelectEPTournaments.java rename to src/eva2/optimization/operator/selection/SelectEPTournaments.java index bddb5936..a425ad12 100644 --- a/src/eva2/optimization/operators/selection/SelectEPTournaments.java +++ b/src/eva2/optimization/operator/selection/SelectEPTournaments.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; import java.util.ArrayList; diff --git a/src/eva2/optimization/operators/selection/SelectHomologousMate.java b/src/eva2/optimization/operator/selection/SelectHomologousMate.java similarity index 94% rename from src/eva2/optimization/operators/selection/SelectHomologousMate.java rename to src/eva2/optimization/operator/selection/SelectHomologousMate.java index 98d3568c..c3329f77 100644 --- a/src/eva2/optimization/operators/selection/SelectHomologousMate.java +++ b/src/eva2/optimization/operator/selection/SelectHomologousMate.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; -import eva2.optimization.operators.distancemetric.ObjectiveSpaceMetric; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.operator.distancemetric.ObjectiveSpaceMetric; +import eva2.optimization.population.Population; /** An experimental implementation for mating restriction. * Possibly defunct. diff --git a/src/eva2/optimization/operators/selection/SelectMOMAIIDominanceCounter.java b/src/eva2/optimization/operator/selection/SelectMOMAIIDominanceCounter.java similarity index 98% rename from src/eva2/optimization/operators/selection/SelectMOMAIIDominanceCounter.java rename to src/eva2/optimization/operator/selection/SelectMOMAIIDominanceCounter.java index 2558d248..f21b61ed 100644 --- a/src/eva2/optimization/operators/selection/SelectMOMAIIDominanceCounter.java +++ b/src/eva2/optimization/operator/selection/SelectMOMAIIDominanceCounter.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** Experimental selection mechanism for MOMA II where * a single individual is a whole set of Pareto optimal diff --git a/src/eva2/optimization/operators/selection/SelectMOMaxiMin.java b/src/eva2/optimization/operator/selection/SelectMOMaxiMin.java similarity index 96% rename from src/eva2/optimization/operators/selection/SelectMOMaxiMin.java rename to src/eva2/optimization/operator/selection/SelectMOMaxiMin.java index a647ffa6..86316c41 100644 --- a/src/eva2/optimization/operators/selection/SelectMOMaxiMin.java +++ b/src/eva2/optimization/operator/selection/SelectMOMaxiMin.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.moso.MOSOMaxiMin; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.moso.MOSOMaxiMin; +import eva2.optimization.population.Population; /** A multi-objective selection criterion based on the maximin * method. diff --git a/src/eva2/optimization/operators/selection/SelectMONSGAIICrowedTournament.java b/src/eva2/optimization/operator/selection/SelectMONSGAIICrowedTournament.java similarity index 98% rename from src/eva2/optimization/operators/selection/SelectMONSGAIICrowedTournament.java rename to src/eva2/optimization/operator/selection/SelectMONSGAIICrowedTournament.java index 60a9767c..51cb470d 100644 --- a/src/eva2/optimization/operators/selection/SelectMONSGAIICrowedTournament.java +++ b/src/eva2/optimization/operator/selection/SelectMONSGAIICrowedTournament.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingNSGAII; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingNSGAII; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; /** The infamous NSGA-II selection scheme for multi-objective diff --git a/src/eva2/optimization/operators/selection/SelectMONonDominated.java b/src/eva2/optimization/operator/selection/SelectMONonDominated.java similarity index 98% rename from src/eva2/optimization/operators/selection/SelectMONonDominated.java rename to src/eva2/optimization/operator/selection/SelectMONonDominated.java index d06d2b54..3672b0bd 100644 --- a/src/eva2/optimization/operators/selection/SelectMONonDominated.java +++ b/src/eva2/optimization/operator/selection/SelectMONonDominated.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; /** This multi-objective selection method preferrs non-dominated diff --git a/src/eva2/optimization/operators/selection/SelectMOPESA.java b/src/eva2/optimization/operator/selection/SelectMOPESA.java similarity index 96% rename from src/eva2/optimization/operators/selection/SelectMOPESA.java rename to src/eva2/optimization/operator/selection/SelectMOPESA.java index 7593a339..282ed707 100644 --- a/src/eva2/optimization/operators/selection/SelectMOPESA.java +++ b/src/eva2/optimization/operator/selection/SelectMOPESA.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingPESAII; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingPESAII; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; /** The multi-objective PESA selection method. diff --git a/src/eva2/optimization/operators/selection/SelectMOPESAII.java b/src/eva2/optimization/operator/selection/SelectMOPESAII.java similarity index 97% rename from src/eva2/optimization/operators/selection/SelectMOPESAII.java rename to src/eva2/optimization/operator/selection/SelectMOPESAII.java index 7fd432b3..35b90549 100644 --- a/src/eva2/optimization/operators/selection/SelectMOPESAII.java +++ b/src/eva2/optimization/operator/selection/SelectMOPESAII.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingPESAII; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingPESAII; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; import java.util.ArrayList; import java.util.Enumeration; diff --git a/src/eva2/optimization/operators/selection/SelectMOSPEAII.java b/src/eva2/optimization/operator/selection/SelectMOSPEAII.java similarity index 97% rename from src/eva2/optimization/operators/selection/SelectMOSPEAII.java rename to src/eva2/optimization/operator/selection/SelectMOSPEAII.java index aaf59eb1..0d730947 100644 --- a/src/eva2/optimization/operators/selection/SelectMOSPEAII.java +++ b/src/eva2/optimization/operator/selection/SelectMOSPEAII.java @@ -1,10 +1,10 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.gui.GraphPointSet; import eva2.gui.Plot; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingSPEAII; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingSPEAII; +import eva2.optimization.population.Population; import eva2.tools.chart2d.Chart2DDPointIconCircle; import eva2.tools.chart2d.Chart2DDPointIconText; import eva2.tools.chart2d.DPoint; diff --git a/src/eva2/optimization/operators/selection/SelectParticleWheel.java b/src/eva2/optimization/operator/selection/SelectParticleWheel.java similarity index 95% rename from src/eva2/optimization/operators/selection/SelectParticleWheel.java rename to src/eva2/optimization/operator/selection/SelectParticleWheel.java index 632d0079..6efbc5d4 100644 --- a/src/eva2/optimization/operators/selection/SelectParticleWheel.java +++ b/src/eva2/optimization/operator/selection/SelectParticleWheel.java @@ -1,10 +1,10 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.selection.probability.InterfaceSelectionProbability; -import eva2.optimization.operators.selection.probability.SelProbStandard; -import eva2.optimization.operators.selection.probability.SelProbStandardScaling; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.selection.probability.InterfaceSelectionProbability; +import eva2.optimization.operator.selection.probability.SelProbStandard; +import eva2.optimization.operator.selection.probability.SelProbStandardScaling; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/selection/SelectRandom.java b/src/eva2/optimization/operator/selection/SelectRandom.java similarity index 98% rename from src/eva2/optimization/operators/selection/SelectRandom.java rename to src/eva2/optimization/operator/selection/SelectRandom.java index 593b2225..66045223 100644 --- a/src/eva2/optimization/operators/selection/SelectRandom.java +++ b/src/eva2/optimization/operator/selection/SelectRandom.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/selection/SelectTournament.java b/src/eva2/optimization/operator/selection/SelectTournament.java similarity index 98% rename from src/eva2/optimization/operators/selection/SelectTournament.java rename to src/eva2/optimization/operator/selection/SelectTournament.java index d62e6007..bd3b0c0c 100644 --- a/src/eva2/optimization/operators/selection/SelectTournament.java +++ b/src/eva2/optimization/operator/selection/SelectTournament.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; /** Tournament selection within a given tournament group size, diff --git a/src/eva2/optimization/operators/selection/SelectXProbRouletteWheel.java b/src/eva2/optimization/operator/selection/SelectXProbRouletteWheel.java similarity index 97% rename from src/eva2/optimization/operators/selection/SelectXProbRouletteWheel.java rename to src/eva2/optimization/operator/selection/SelectXProbRouletteWheel.java index 2e2f99d6..48059ce2 100644 --- a/src/eva2/optimization/operators/selection/SelectXProbRouletteWheel.java +++ b/src/eva2/optimization/operator/selection/SelectXProbRouletteWheel.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.selection; +package eva2.optimization.operator.selection; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.selection.probability.InterfaceSelectionProbability; -import eva2.optimization.operators.selection.probability.SelProbStandard; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.selection.probability.InterfaceSelectionProbability; +import eva2.optimization.operator.selection.probability.SelProbStandard; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/operators/selection/probability/AbstractSelProb.java b/src/eva2/optimization/operator/selection/probability/AbstractSelProb.java similarity index 98% rename from src/eva2/optimization/operators/selection/probability/AbstractSelProb.java rename to src/eva2/optimization/operator/selection/probability/AbstractSelProb.java index b51a7f9f..5bec5c80 100644 --- a/src/eva2/optimization/operators/selection/probability/AbstractSelProb.java +++ b/src/eva2/optimization/operator/selection/probability/AbstractSelProb.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.selection.probability; +package eva2.optimization.operator.selection.probability; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.EVAERROR; import java.util.ArrayList; diff --git a/src/eva2/optimization/operators/selection/probability/InterfaceSelectionProbability.java b/src/eva2/optimization/operator/selection/probability/InterfaceSelectionProbability.java similarity index 94% rename from src/eva2/optimization/operators/selection/probability/InterfaceSelectionProbability.java rename to src/eva2/optimization/operator/selection/probability/InterfaceSelectionProbability.java index 9fb80339..4206da6e 100644 --- a/src/eva2/optimization/operators/selection/probability/InterfaceSelectionProbability.java +++ b/src/eva2/optimization/operator/selection/probability/InterfaceSelectionProbability.java @@ -1,6 +1,6 @@ -package eva2.optimization.operators.selection.probability; +package eva2.optimization.operator.selection.probability; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** The interface for methods with calculate the selection * probability from the fitness values. While the fitness diff --git a/src/eva2/optimization/operators/selection/probability/SelProbBoltzman.java b/src/eva2/optimization/operator/selection/probability/SelProbBoltzman.java similarity index 98% rename from src/eva2/optimization/operators/selection/probability/SelProbBoltzman.java rename to src/eva2/optimization/operator/selection/probability/SelProbBoltzman.java index dc1b833a..00a7032f 100644 --- a/src/eva2/optimization/operators/selection/probability/SelProbBoltzman.java +++ b/src/eva2/optimization/operator/selection/probability/SelProbBoltzman.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.probability; +package eva2.optimization.operator.selection.probability; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** Boltzman selection, actually it is no a selection method * but a scaling method, but it is very good, because it is diff --git a/src/eva2/optimization/operators/selection/probability/SelProbFitnessSharing.java b/src/eva2/optimization/operator/selection/probability/SelProbFitnessSharing.java similarity index 95% rename from src/eva2/optimization/operators/selection/probability/SelProbFitnessSharing.java rename to src/eva2/optimization/operator/selection/probability/SelProbFitnessSharing.java index 7e28ffd4..67a8ba5e 100644 --- a/src/eva2/optimization/operators/selection/probability/SelProbFitnessSharing.java +++ b/src/eva2/optimization/operator/selection/probability/SelProbFitnessSharing.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.selection.probability; +package eva2.optimization.operator.selection.probability; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; -import eva2.optimization.operators.distancemetric.PhenotypeMetric; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.population.Population; /** Here we have the infamous fitness sharing method. * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operators/selection/probability/SelProbInvertByMax.java b/src/eva2/optimization/operator/selection/probability/SelProbInvertByMax.java similarity index 97% rename from src/eva2/optimization/operators/selection/probability/SelProbInvertByMax.java rename to src/eva2/optimization/operator/selection/probability/SelProbInvertByMax.java index 0a23af65..e36d26f9 100644 --- a/src/eva2/optimization/operators/selection/probability/SelProbInvertByMax.java +++ b/src/eva2/optimization/operator/selection/probability/SelProbInvertByMax.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.probability; +package eva2.optimization.operator.selection.probability; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** * Scale the fitness of a maximization problem by inverting it by the maximum fitness, diff --git a/src/eva2/optimization/operators/selection/probability/SelProbLinearRanking.java b/src/eva2/optimization/operator/selection/probability/SelProbLinearRanking.java similarity index 98% rename from src/eva2/optimization/operators/selection/probability/SelProbLinearRanking.java rename to src/eva2/optimization/operator/selection/probability/SelProbLinearRanking.java index ffeec5e6..d80a6e89 100644 --- a/src/eva2/optimization/operators/selection/probability/SelProbLinearRanking.java +++ b/src/eva2/optimization/operator/selection/probability/SelProbLinearRanking.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.probability; +package eva2.optimization.operator.selection.probability; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** A linear ranking method with offsets. * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operators/selection/probability/SelProbNonLinearRanking.java b/src/eva2/optimization/operator/selection/probability/SelProbNonLinearRanking.java similarity index 98% rename from src/eva2/optimization/operators/selection/probability/SelProbNonLinearRanking.java rename to src/eva2/optimization/operator/selection/probability/SelProbNonLinearRanking.java index b76f1202..1cf48c78 100644 --- a/src/eva2/optimization/operators/selection/probability/SelProbNonLinearRanking.java +++ b/src/eva2/optimization/operator/selection/probability/SelProbNonLinearRanking.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.probability; +package eva2.optimization.operator.selection.probability; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** A non-linear ranking, which is difficult to tune to * the given optimization problem i guess. diff --git a/src/eva2/optimization/operators/selection/probability/SelProbRanking.java b/src/eva2/optimization/operator/selection/probability/SelProbRanking.java similarity index 97% rename from src/eva2/optimization/operators/selection/probability/SelProbRanking.java rename to src/eva2/optimization/operator/selection/probability/SelProbRanking.java index ac81f42d..790fedbc 100644 --- a/src/eva2/optimization/operators/selection/probability/SelProbRanking.java +++ b/src/eva2/optimization/operator/selection/probability/SelProbRanking.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.probability; +package eva2.optimization.operator.selection.probability; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** Ranking for calculating the selection probability. * This truly scaling invariant. diff --git a/src/eva2/optimization/operators/selection/probability/SelProbStandard.java b/src/eva2/optimization/operator/selection/probability/SelProbStandard.java similarity index 97% rename from src/eva2/optimization/operators/selection/probability/SelProbStandard.java rename to src/eva2/optimization/operator/selection/probability/SelProbStandard.java index 2bf47584..aaa785e5 100644 --- a/src/eva2/optimization/operators/selection/probability/SelProbStandard.java +++ b/src/eva2/optimization/operator/selection/probability/SelProbStandard.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.probability; +package eva2.optimization.operator.selection.probability; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** A simple sum to calculate the selection probability. * diff --git a/src/eva2/optimization/operators/selection/probability/SelProbStandardScaling.java b/src/eva2/optimization/operator/selection/probability/SelProbStandardScaling.java similarity index 98% rename from src/eva2/optimization/operators/selection/probability/SelProbStandardScaling.java rename to src/eva2/optimization/operator/selection/probability/SelProbStandardScaling.java index 46da5331..284fed26 100644 --- a/src/eva2/optimization/operators/selection/probability/SelProbStandardScaling.java +++ b/src/eva2/optimization/operator/selection/probability/SelProbStandardScaling.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.probability; +package eva2.optimization.operator.selection.probability; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** A simple sum with a scaling factor. * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operators/selection/replacement/InterfaceReplacement.java b/src/eva2/optimization/operator/selection/replacement/InterfaceReplacement.java similarity index 87% rename from src/eva2/optimization/operators/selection/replacement/InterfaceReplacement.java rename to src/eva2/optimization/operator/selection/replacement/InterfaceReplacement.java index 1c74587a..79b26d97 100644 --- a/src/eva2/optimization/operators/selection/replacement/InterfaceReplacement.java +++ b/src/eva2/optimization/operator/selection/replacement/InterfaceReplacement.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.replacement; +package eva2.optimization.operator.selection.replacement; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** Replacement schemes for the steady-state GA. * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operators/selection/replacement/ReplaceDeterministicCrowding.java b/src/eva2/optimization/operator/selection/replacement/ReplaceDeterministicCrowding.java similarity index 92% rename from src/eva2/optimization/operators/selection/replacement/ReplaceDeterministicCrowding.java rename to src/eva2/optimization/operator/selection/replacement/ReplaceDeterministicCrowding.java index 5f412051..49cd3429 100644 --- a/src/eva2/optimization/operators/selection/replacement/ReplaceDeterministicCrowding.java +++ b/src/eva2/optimization/operator/selection/replacement/ReplaceDeterministicCrowding.java @@ -1,8 +1,8 @@ -package eva2.optimization.operators.selection.replacement; +package eva2.optimization.operator.selection.replacement; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.distancemetric.PhenotypeMetric; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.population.Population; /** The deterministic crowiding method replaces the most similar parent if better * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operators/selection/replacement/ReplacePreselection.java b/src/eva2/optimization/operator/selection/replacement/ReplacePreselection.java similarity index 93% rename from src/eva2/optimization/operators/selection/replacement/ReplacePreselection.java rename to src/eva2/optimization/operator/selection/replacement/ReplacePreselection.java index 636f9c4e..7033e610 100644 --- a/src/eva2/optimization/operators/selection/replacement/ReplacePreselection.java +++ b/src/eva2/optimization/operator/selection/replacement/ReplacePreselection.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.replacement; +package eva2.optimization.operator.selection.replacement; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** The preselection replacement scheme replaces the worst parent in case * the offspring is better. diff --git a/src/eva2/optimization/operators/selection/replacement/ReplaceRandom.java b/src/eva2/optimization/operator/selection/replacement/ReplaceRandom.java similarity index 93% rename from src/eva2/optimization/operators/selection/replacement/ReplaceRandom.java rename to src/eva2/optimization/operator/selection/replacement/ReplaceRandom.java index 6688ec42..3956bd5e 100644 --- a/src/eva2/optimization/operators/selection/replacement/ReplaceRandom.java +++ b/src/eva2/optimization/operator/selection/replacement/ReplaceRandom.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.replacement; +package eva2.optimization.operator.selection.replacement; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.math.RNG; /** Random replacement. diff --git a/src/eva2/optimization/operators/selection/replacement/ReplaceWorst.java b/src/eva2/optimization/operator/selection/replacement/ReplaceWorst.java similarity index 93% rename from src/eva2/optimization/operators/selection/replacement/ReplaceWorst.java rename to src/eva2/optimization/operator/selection/replacement/ReplaceWorst.java index f753bbfc..94c23c59 100644 --- a/src/eva2/optimization/operators/selection/replacement/ReplaceWorst.java +++ b/src/eva2/optimization/operator/selection/replacement/ReplaceWorst.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.replacement; +package eva2.optimization.operator.selection.replacement; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** This method replaces the worst indvidual in the population. * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operators/selection/replacement/ReplaceWorstParent.java b/src/eva2/optimization/operator/selection/replacement/ReplaceWorstParent.java similarity index 94% rename from src/eva2/optimization/operators/selection/replacement/ReplaceWorstParent.java rename to src/eva2/optimization/operator/selection/replacement/ReplaceWorstParent.java index b54c22dc..8a928652 100644 --- a/src/eva2/optimization/operators/selection/replacement/ReplaceWorstParent.java +++ b/src/eva2/optimization/operator/selection/replacement/ReplaceWorstParent.java @@ -1,7 +1,7 @@ -package eva2.optimization.operators.selection.replacement; +package eva2.optimization.operator.selection.replacement; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** This method replaces the worst parent. Doesn't work, * most likely it has the effect of a negative elitism. diff --git a/src/eva2/optimization/operators/selection/replacement/ReplacementCrowding.java b/src/eva2/optimization/operator/selection/replacement/ReplacementCrowding.java similarity index 92% rename from src/eva2/optimization/operators/selection/replacement/ReplacementCrowding.java rename to src/eva2/optimization/operator/selection/replacement/ReplacementCrowding.java index aea6d5cd..034df36b 100644 --- a/src/eva2/optimization/operators/selection/replacement/ReplacementCrowding.java +++ b/src/eva2/optimization/operator/selection/replacement/ReplacementCrowding.java @@ -1,9 +1,9 @@ -package eva2.optimization.operators.selection.replacement; +package eva2.optimization.operator.selection.replacement; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.distancemetric.PhenotypeMetric; -import eva2.optimization.operators.selection.SelectRandom; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.operator.selection.SelectRandom; +import eva2.optimization.population.Population; /** This crowding method replaces the most similar individual from a random group if better. * Created by IntelliJ IDEA. diff --git a/src/eva2/optimization/operators/selection/replacement/ReplacementNondominatedSortingDistanceCrowding.java b/src/eva2/optimization/operator/selection/replacement/ReplacementNondominatedSortingDistanceCrowding.java similarity index 90% rename from src/eva2/optimization/operators/selection/replacement/ReplacementNondominatedSortingDistanceCrowding.java rename to src/eva2/optimization/operator/selection/replacement/ReplacementNondominatedSortingDistanceCrowding.java index c49c6555..03082069 100644 --- a/src/eva2/optimization/operators/selection/replacement/ReplacementNondominatedSortingDistanceCrowding.java +++ b/src/eva2/optimization/operator/selection/replacement/ReplacementNondominatedSortingDistanceCrowding.java @@ -1,109 +1,109 @@ -package eva2.optimization.operators.selection.replacement; - -import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingNSGAII; -import eva2.optimization.operators.selection.SelectRandom; -import eva2.optimization.populations.Population; -import java.util.Collections; -import java.util.Comparator; - - -/** This crowding method replaces the most similar individual from a random group if better. - * Created by IntelliJ IDEA. - * User: streiche - * Date: 19.07.2005 - * Time: 15:25:15 - * To change this template use File | Settings | File Templates. - */ -public class ReplacementNondominatedSortingDistanceCrowding implements InterfaceReplacement, java.io.Serializable { - - public class HypervolumeComperator implements Comparator{ - @Override - public int compare(AbstractEAIndividual arg0, AbstractEAIndividual arg1) { - // TODO Auto-generated method stub - Double a0=(Double) arg0.getData("HyperCube"); - Double a1=(Double) arg1.getData("HyperCube"); - if(a0!=null&a1!=null){ - return a1.compareTo(a0); - }else { - return 0; - } - } - } - - ArchivingNSGAII dummyArchive=new ArchivingNSGAII(); - - SelectRandom random = new SelectRandom(); - - - public ReplacementNondominatedSortingDistanceCrowding() { - - } - - public ReplacementNondominatedSortingDistanceCrowding(ReplacementNondominatedSortingDistanceCrowding b) { - this.dummyArchive=new ArchivingNSGAII(); - - } - - - - /** The ever present clone method - */ - @Override - public Object clone() { - return new ReplaceRandom(); - } - - /** - * From a random subset of size C, the closest is replaced by the given individual. - * The sub parameter is not regarded. - * - * @param indy The individual to insert - * @param pop The population - * @param sub The subset - */ - @SuppressWarnings("unchecked") - @Override - public void insertIndividual(AbstractEAIndividual indy, Population pop, Population sub) { - - - pop.add(indy); - Population []store=dummyArchive.getNonDominatedSortedFronts(pop); - dummyArchive.calculateCrowdingDistance(store);//TODO die f�r das gesamte Archiv am St�ck berechnen und nicht f�r die Einzelfronten! - for(int i=0;i{ + @Override + public int compare(AbstractEAIndividual arg0, AbstractEAIndividual arg1) { + // TODO Auto-generated method stub + Double a0=(Double) arg0.getData("HyperCube"); + Double a1=(Double) arg1.getData("HyperCube"); + if(a0!=null&a1!=null){ + return a1.compareTo(a0); + }else { + return 0; + } + } + } + + ArchivingNSGAII dummyArchive=new ArchivingNSGAII(); + + SelectRandom random = new SelectRandom(); + + + public ReplacementNondominatedSortingDistanceCrowding() { + + } + + public ReplacementNondominatedSortingDistanceCrowding(ReplacementNondominatedSortingDistanceCrowding b) { + this.dummyArchive=new ArchivingNSGAII(); + + } + + + + /** The ever present clone method + */ + @Override + public Object clone() { + return new ReplaceRandom(); + } + + /** + * From a random subset of size C, the closest is replaced by the given individual. + * The sub parameter is not regarded. + * + * @param indy The individual to insert + * @param pop The population + * @param sub The subset + */ + @SuppressWarnings("unchecked") + @Override + public void insertIndividual(AbstractEAIndividual indy, Population pop, Population sub) { + + + pop.add(indy); + Population []store=dummyArchive.getNonDominatedSortedFronts(pop); + dummyArchive.calculateCrowdingDistance(store);//TODO die f�r das gesamte Archiv am St�ck berechnen und nicht f�r die Einzelfronten! + for(int i=0;iTitle: EvA2

diff --git a/src/eva2/optimization/problems/InterfaceMultimodalProblemKnown.java b/src/eva2/optimization/problems/InterfaceMultimodalProblemKnown.java index db015e22..fe949ba2 100644 --- a/src/eva2/optimization/problems/InterfaceMultimodalProblemKnown.java +++ b/src/eva2/optimization/problems/InterfaceMultimodalProblemKnown.java @@ -1,6 +1,6 @@ package eva2.optimization.problems; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** * A multimodal problem which has knowledge of its optima. diff --git a/src/eva2/optimization/problems/InterfaceOptimizationProblem.java b/src/eva2/optimization/problems/InterfaceOptimizationProblem.java index e7d9ae09..91d96381 100644 --- a/src/eva2/optimization/problems/InterfaceOptimizationProblem.java +++ b/src/eva2/optimization/problems/InterfaceOptimizationProblem.java @@ -1,7 +1,7 @@ package eva2.optimization.problems; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.strategies.InterfaceOptimizer; import javax.swing.*; diff --git a/src/eva2/optimization/problems/InterfaceSolutionViewer.java b/src/eva2/optimization/problems/InterfaceSolutionViewer.java index ff96cd62..f2d13729 100644 --- a/src/eva2/optimization/problems/InterfaceSolutionViewer.java +++ b/src/eva2/optimization/problems/InterfaceSolutionViewer.java @@ -1,6 +1,6 @@ package eva2.optimization.problems; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** * A standard interface for solution viewers which display a single (best) solution diff --git a/src/eva2/optimization/problems/MatlabProblem.java b/src/eva2/optimization/problems/MatlabProblem.java index c358d49c..455cde52 100644 --- a/src/eva2/optimization/problems/MatlabProblem.java +++ b/src/eva2/optimization/problems/MatlabProblem.java @@ -10,15 +10,15 @@ import eva2.optimization.individuals.AbstractEAIndividual; import eva2.OptimizerFactory; import eva2.OptimizerRunnable; import eva2.gui.BeanInspector; -import eva2.optimization.operators.postprocess.InterfacePostProcessParams; -import eva2.optimization.operators.postprocess.PostProcess; -import eva2.optimization.operators.postprocess.PostProcessParams; -import eva2.optimization.operators.terminators.FitnessConvergenceTerminator; -import eva2.optimization.operators.terminators.PhenotypeConvergenceTerminator; -import eva2.optimization.operators.terminators.PopulationMeasureTerminator.ChangeTypeEnum; -import eva2.optimization.operators.terminators.PopulationMeasureTerminator.DirectionTypeEnum; -import eva2.optimization.operators.terminators.PopulationMeasureTerminator.StagnationTypeEnum; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.postprocess.InterfacePostProcessParams; +import eva2.optimization.operator.postprocess.PostProcess; +import eva2.optimization.operator.postprocess.PostProcessParams; +import eva2.optimization.operator.terminators.FitnessConvergenceTerminator; +import eva2.optimization.operator.terminators.PhenotypeConvergenceTerminator; +import eva2.optimization.operator.terminators.PopulationMeasureTerminator.ChangeTypeEnum; +import eva2.optimization.operator.terminators.PopulationMeasureTerminator.DirectionTypeEnum; +import eva2.optimization.operator.terminators.PopulationMeasureTerminator.StagnationTypeEnum; +import eva2.optimization.population.Population; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.optimization.stat.InterfaceTextListener; diff --git a/src/eva2/optimization/problems/PSymbolicRegression.java b/src/eva2/optimization/problems/PSymbolicRegression.java index 9a376dab..a2d0a6ac 100644 --- a/src/eva2/optimization/problems/PSymbolicRegression.java +++ b/src/eva2/optimization/problems/PSymbolicRegression.java @@ -1,7 +1,7 @@ package eva2.optimization.problems; import eva2.gui.Plot; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.GAPIndividualProgramData; import eva2.optimization.individuals.GPIndividualProgramData; @@ -24,7 +24,7 @@ import eva2.optimization.individuals.codings.gp.GPNodeSin; import eva2.optimization.individuals.codings.gp.GPNodeSqrt; import eva2.optimization.individuals.codings.gp.GPNodeSub; import eva2.optimization.individuals.codings.gp.InterfaceProgram; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.regression.InterfaceRegressionFunction; import eva2.optimization.problems.regression.RFKoza_GPI_7_3; import eva2.optimization.strategies.InterfaceOptimizer; diff --git a/src/eva2/optimization/problems/SimpleProblemWrapper.java b/src/eva2/optimization/problems/SimpleProblemWrapper.java index 05b14fc2..24d23e64 100644 --- a/src/eva2/optimization/problems/SimpleProblemWrapper.java +++ b/src/eva2/optimization/problems/SimpleProblemWrapper.java @@ -8,7 +8,7 @@ import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.GAIndividualBinaryData; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.math.RNG; import java.util.BitSet; diff --git a/src/eva2/optimization/problems/TF1Problem.java b/src/eva2/optimization/problems/TF1Problem.java index 77168d8f..28ce1cff 100644 --- a/src/eva2/optimization/problems/TF1Problem.java +++ b/src/eva2/optimization/problems/TF1Problem.java @@ -4,10 +4,10 @@ import eva2.gui.Plot; import eva2.gui.PropertyFilePath; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.constraint.InterfaceConstraint; -import eva2.optimization.operators.moso.InterfaceMOSOConverter; -import eva2.optimization.operators.paretofrontmetrics.InterfaceParetoFrontMetric; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.constraint.InterfaceConstraint; +import eva2.optimization.operator.moso.InterfaceMOSOConverter; +import eva2.optimization.operator.paretofrontmetrics.InterfaceParetoFrontMetric; +import eva2.optimization.population.Population; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.math.RNG; import java.io.BufferedWriter; diff --git a/src/eva2/optimization/stat/AbstractStatistics.java b/src/eva2/optimization/stat/AbstractStatistics.java index 0a92b212..f46358e1 100644 --- a/src/eva2/optimization/stat/AbstractStatistics.java +++ b/src/eva2/optimization/stat/AbstractStatistics.java @@ -2,10 +2,10 @@ package eva2.optimization.stat; import eva2.gui.BeanInspector; import eva2.optimization.go.IndividualInterface; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.strategies.InterfaceOptimizer; import eva2.tools.Pair; diff --git a/src/eva2/optimization/stat/InterfaceStatistics.java b/src/eva2/optimization/stat/InterfaceStatistics.java index e259db4a..4b252d87 100644 --- a/src/eva2/optimization/stat/InterfaceStatistics.java +++ b/src/eva2/optimization/stat/InterfaceStatistics.java @@ -13,8 +13,8 @@ package eva2.optimization.stat; * IMPORTS *==========================================================================*/ import eva2.optimization.go.IndividualInterface; -import eva2.optimization.go.PopulationInterface; -import eva2.optimization.populations.Population; +import eva2.optimization.population.PopulationInterface; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.strategies.InterfaceOptimizer; import java.util.List; diff --git a/src/eva2/optimization/stat/StatisticsDummy.java b/src/eva2/optimization/stat/StatisticsDummy.java index 2aedb02d..3521bba7 100644 --- a/src/eva2/optimization/stat/StatisticsDummy.java +++ b/src/eva2/optimization/stat/StatisticsDummy.java @@ -1,9 +1,9 @@ package eva2.optimization.stat; import eva2.optimization.go.IndividualInterface; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.strategies.InterfaceOptimizer; import java.util.List; diff --git a/src/eva2/optimization/stat/StatisticsStandalone.java b/src/eva2/optimization/stat/StatisticsStandalone.java index 9df0101e..eafb1e3c 100644 --- a/src/eva2/optimization/stat/StatisticsStandalone.java +++ b/src/eva2/optimization/stat/StatisticsStandalone.java @@ -13,7 +13,7 @@ package eva2.optimization.stat; /*==========================================================================* * IMPORTS *==========================================================================*/ -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import java.io.Serializable; import java.net.InetAddress; diff --git a/src/eva2/optimization/stat/StatisticsWithGUI.java b/src/eva2/optimization/stat/StatisticsWithGUI.java index 938570d0..ca8272d4 100644 --- a/src/eva2/optimization/stat/StatisticsWithGUI.java +++ b/src/eva2/optimization/stat/StatisticsWithGUI.java @@ -17,15 +17,13 @@ import eva2.gui.JTextoutputFrame; import eva2.gui.JTextoutputFrameInterface; import eva2.gui.Plot; import eva2.gui.PlotInterface; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.tools.EVAERROR; import eva2.tools.Pair; import java.io.Serializable; -import java.net.InetAddress; import java.util.ArrayList; import java.util.List; -import java.util.logging.Level; import java.util.logging.Logger; /** diff --git a/src/eva2/optimization/strategies/ANPSO.java b/src/eva2/optimization/strategies/ANPSO.java index 09c3b021..aae93b3a 100644 --- a/src/eva2/optimization/strategies/ANPSO.java +++ b/src/eva2/optimization/strategies/ANPSO.java @@ -3,16 +3,16 @@ package eva2.optimization.strategies; import eva2.OptimizerFactory; import eva2.gui.GenericObjectEditor; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.modules.OptimizationParameters; -import eva2.optimization.operators.nichepso.deactivation.StandardDeactivationStrategy; -import eva2.optimization.operators.paramcontrol.LinearParamAdaption; -import eva2.optimization.operators.paramcontrol.ParamAdaption; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.nichepso.deactivation.StandardDeactivationStrategy; +import eva2.optimization.operator.paramcontrol.LinearParamAdaption; +import eva2.optimization.operator.paramcontrol.ParamAdaption; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.Interface2DBorderProblem; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; diff --git a/src/eva2/optimization/strategies/BOA.java b/src/eva2/optimization/strategies/BOA.java index f4a17b55..d3cfe108 100644 --- a/src/eva2/optimization/strategies/BOA.java +++ b/src/eva2/optimization/strategies/BOA.java @@ -7,9 +7,9 @@ import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.GAIndividualBinaryData; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.BKnapsackProblem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/BinaryScatterSearch.java b/src/eva2/optimization/strategies/BinaryScatterSearch.java index dfe9b52b..8096a341 100644 --- a/src/eva2/optimization/strategies/BinaryScatterSearch.java +++ b/src/eva2/optimization/strategies/BinaryScatterSearch.java @@ -5,18 +5,18 @@ import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.operators.crossover.AdaptiveCrossoverEAMixer; -import eva2.optimization.operators.crossover.CM1; -import eva2.optimization.operators.crossover.CM2; -import eva2.optimization.operators.crossover.CM3; -import eva2.optimization.operators.crossover.CM4; -import eva2.optimization.operators.crossover.CM5; -import eva2.optimization.operators.crossover.CM6; -import eva2.optimization.operators.crossover.CM7; -import eva2.optimization.operators.distancemetric.GenotypeMetricBitSet; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.crossover.AdaptiveCrossoverEAMixer; +import eva2.optimization.operator.crossover.CM1; +import eva2.optimization.operator.crossover.CM2; +import eva2.optimization.operator.crossover.CM3; +import eva2.optimization.operator.crossover.CM4; +import eva2.optimization.operator.crossover.CM5; +import eva2.optimization.operator.crossover.CM6; +import eva2.optimization.operator.crossover.CM7; +import eva2.optimization.operator.distancemetric.GenotypeMetricBitSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/CBNPSO.java b/src/eva2/optimization/strategies/CBNPSO.java index e5282835..4703cf4e 100644 --- a/src/eva2/optimization/strategies/CBNPSO.java +++ b/src/eva2/optimization/strategies/CBNPSO.java @@ -1,15 +1,15 @@ package eva2.optimization.strategies; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.PSOTopologyEnum; -import eva2.optimization.operators.cluster.ClusteringDensityBased; -import eva2.optimization.operators.distancemetric.IndividualDataMetric; -import eva2.optimization.operators.paramcontrol.CbpsoFitnessThresholdBasedAdaption; -import eva2.optimization.operators.paramcontrol.LinearParamAdaption; -import eva2.optimization.operators.paramcontrol.ParamAdaption; -import eva2.optimization.operators.paramcontrol.SinusoidalParamAdaption; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.cluster.ClusteringDensityBased; +import eva2.optimization.operator.distancemetric.IndividualDataMetric; +import eva2.optimization.operator.paramcontrol.CbpsoFitnessThresholdBasedAdaption; +import eva2.optimization.operator.paramcontrol.LinearParamAdaption; +import eva2.optimization.operator.paramcontrol.ParamAdaption; +import eva2.optimization.operator.paramcontrol.SinusoidalParamAdaption; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractProblemDouble; import eva2.optimization.problems.InterfaceInterestingHistogram; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/CHCAdaptiveSearchAlgorithm.java b/src/eva2/optimization/strategies/CHCAdaptiveSearchAlgorithm.java index 0f874b59..2d3a4662 100644 --- a/src/eva2/optimization/strategies/CHCAdaptiveSearchAlgorithm.java +++ b/src/eva2/optimization/strategies/CHCAdaptiveSearchAlgorithm.java @@ -3,12 +3,12 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.SelectBestSingle; -import eva2.optimization.operators.selection.SelectRandom; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.SelectBestSingle; +import eva2.optimization.operator.selection.SelectRandom; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/strategies/ClusterBasedNichingEA.java b/src/eva2/optimization/strategies/ClusterBasedNichingEA.java index 37551843..c3c81b27 100644 --- a/src/eva2/optimization/strategies/ClusterBasedNichingEA.java +++ b/src/eva2/optimization/strategies/ClusterBasedNichingEA.java @@ -7,21 +7,21 @@ import eva2.gui.Plot; import eva2.gui.TopoPlot; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividualComparator; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.cluster.ClusteringDensityBased; -import eva2.optimization.operators.cluster.InterfaceClustering; -import eva2.optimization.operators.cluster.InterfaceClusteringDistanceParam; -import eva2.optimization.operators.cluster.InterfaceClusteringMetricBased; -import eva2.optimization.operators.distancemetric.ObjectiveSpaceMetric; -import eva2.optimization.operators.paramcontrol.InterfaceHasUpperDoubleBound; -import eva2.optimization.operators.paramcontrol.ParamAdaption; -import eva2.optimization.operators.paramcontrol.ParameterControlManager; -import eva2.optimization.operators.terminators.HistoryConvergenceTerminator; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.cluster.ClusteringDensityBased; +import eva2.optimization.operator.cluster.InterfaceClustering; +import eva2.optimization.operator.cluster.InterfaceClusteringDistanceParam; +import eva2.optimization.operator.cluster.InterfaceClusteringMetricBased; +import eva2.optimization.operator.distancemetric.ObjectiveSpaceMetric; +import eva2.optimization.operator.paramcontrol.InterfaceHasUpperDoubleBound; +import eva2.optimization.operator.paramcontrol.ParamAdaption; +import eva2.optimization.operator.paramcontrol.ParameterControlManager; +import eva2.optimization.operator.terminators.HistoryConvergenceTerminator; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.Interface2DBorderProblem; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; diff --git a/src/eva2/optimization/strategies/ClusteringHillClimbing.java b/src/eva2/optimization/strategies/ClusteringHillClimbing.java index 84166e94..3535680b 100644 --- a/src/eva2/optimization/strategies/ClusteringHillClimbing.java +++ b/src/eva2/optimization/strategies/ClusteringHillClimbing.java @@ -2,13 +2,13 @@ package eva2.optimization.strategies; import eva2.gui.GenericObjectEditor; import eva2.optimization.go.InterfacePopulationChangedEventListener; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.PostProcessMethod; -import eva2.optimization.operators.mutation.MutateESFixedStepSize; -import eva2.optimization.operators.postprocess.PostProcess; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.mutation.MutateESFixedStepSize; +import eva2.optimization.operator.postprocess.PostProcess; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; diff --git a/src/eva2/optimization/strategies/DifferentialEvolution.java b/src/eva2/optimization/strategies/DifferentialEvolution.java index 580a0787..50f1057f 100644 --- a/src/eva2/optimization/strategies/DifferentialEvolution.java +++ b/src/eva2/optimization/strategies/DifferentialEvolution.java @@ -6,11 +6,11 @@ import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.enums.DETypeEnum; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.selection.replacement.ReplacementCrowding; -import eva2.optimization.operators.selection.replacement.ReplacementNondominatedSortingDistanceCrowding; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.selection.replacement.ReplacementCrowding; +import eva2.optimization.operator.selection.replacement.ReplacementNondominatedSortingDistanceCrowding; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.F1Problem; diff --git a/src/eva2/optimization/strategies/DynamicParticleSwarmOptimization.java b/src/eva2/optimization/strategies/DynamicParticleSwarmOptimization.java index 24a7163e..e41460d3 100644 --- a/src/eva2/optimization/strategies/DynamicParticleSwarmOptimization.java +++ b/src/eva2/optimization/strategies/DynamicParticleSwarmOptimization.java @@ -4,7 +4,7 @@ import eva2.gui.GenericObjectEditor; import eva2.gui.Plot; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.SelectedTag; diff --git a/src/eva2/optimization/strategies/EsDpiNiching.java b/src/eva2/optimization/strategies/EsDpiNiching.java index 99d21518..9620a293 100644 --- a/src/eva2/optimization/strategies/EsDpiNiching.java +++ b/src/eva2/optimization/strategies/EsDpiNiching.java @@ -3,26 +3,26 @@ package eva2.optimization.strategies; import eva2.gui.GenericObjectEditor; import eva2.gui.TopoPlot; import eva2.optimization.go.InterfacePopulationChangedEventListener; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.cluster.ClusteringDynPeakIdent; -import eva2.optimization.operators.distancemetric.EuclideanMetric; -import eva2.optimization.operators.distancemetric.IndividualDataMetric; -import eva2.optimization.operators.distancemetric.InterfaceDistanceMetric; -import eva2.optimization.operators.distancemetric.PhenotypeMetric; -import eva2.optimization.operators.mutation.InterfaceAdaptOperatorGenerational; -import eva2.optimization.operators.paramcontrol.ParamAdaption; -import eva2.optimization.operators.paramcontrol.ParameterControlManager; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.SelectBestIndividuals; -import eva2.optimization.operators.selection.SelectBestSingle; -import eva2.optimization.operators.selection.SelectRandom; -import eva2.optimization.operators.selection.SelectTournament; -import eva2.optimization.operators.terminators.HistoryConvergenceTerminator; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.cluster.ClusteringDynPeakIdent; +import eva2.optimization.operator.distancemetric.EuclideanMetric; +import eva2.optimization.operator.distancemetric.IndividualDataMetric; +import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric; +import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.operator.mutation.InterfaceAdaptOperatorGenerational; +import eva2.optimization.operator.paramcontrol.ParamAdaption; +import eva2.optimization.operator.paramcontrol.ParameterControlManager; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.SelectBestIndividuals; +import eva2.optimization.operator.selection.SelectBestSingle; +import eva2.optimization.operator.selection.SelectRandom; +import eva2.optimization.operator.selection.SelectTournament; +import eva2.optimization.operator.terminators.HistoryConvergenceTerminator; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.Interface2DBorderProblem; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/EsDpiNichingCma.java b/src/eva2/optimization/strategies/EsDpiNichingCma.java index aae293b2..e73a4c9e 100644 --- a/src/eva2/optimization/strategies/EsDpiNichingCma.java +++ b/src/eva2/optimization/strategies/EsDpiNichingCma.java @@ -1,6 +1,6 @@ package eva2.optimization.strategies; -import eva2.optimization.operators.selection.SelectBestSingle; +import eva2.optimization.operator.selection.SelectBestSingle; public class EsDpiNichingCma extends EsDpiNiching { diff --git a/src/eva2/optimization/strategies/EvolutionStrategies.java b/src/eva2/optimization/strategies/EvolutionStrategies.java index 49b0cccf..caf76f91 100644 --- a/src/eva2/optimization/strategies/EvolutionStrategies.java +++ b/src/eva2/optimization/strategies/EvolutionStrategies.java @@ -2,13 +2,13 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.mutation.InterfaceAdaptOperatorGenerational; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.SelectBestIndividuals; -import eva2.optimization.operators.selection.SelectRandom; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.mutation.InterfaceAdaptOperatorGenerational; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.SelectBestIndividuals; +import eva2.optimization.operator.selection.SelectRandom; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/EvolutionStrategyIPOP.java b/src/eva2/optimization/strategies/EvolutionStrategyIPOP.java index 9eeaf3db..100608bd 100644 --- a/src/eva2/optimization/strategies/EvolutionStrategyIPOP.java +++ b/src/eva2/optimization/strategies/EvolutionStrategyIPOP.java @@ -3,15 +3,15 @@ package eva2.optimization.strategies; import eva2.gui.GenericObjectEditor; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.mutation.MutateESRankMuCMA; -import eva2.optimization.operators.terminators.FitnessConvergenceTerminator; -import eva2.optimization.operators.terminators.PopulationMeasureTerminator.ChangeTypeEnum; -import eva2.optimization.operators.terminators.PopulationMeasureTerminator.DirectionTypeEnum; -import eva2.optimization.operators.terminators.PopulationMeasureTerminator.StagnationTypeEnum; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.mutation.MutateESRankMuCMA; +import eva2.optimization.operator.terminators.FitnessConvergenceTerminator; +import eva2.optimization.operator.terminators.PopulationMeasureTerminator.ChangeTypeEnum; +import eva2.optimization.operator.terminators.PopulationMeasureTerminator.DirectionTypeEnum; +import eva2.optimization.operator.terminators.PopulationMeasureTerminator.StagnationTypeEnum; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.InterfaceAdditionalPopulationInformer; import java.util.Arrays; import java.util.LinkedList; diff --git a/src/eva2/optimization/strategies/EvolutionaryProgramming.java b/src/eva2/optimization/strategies/EvolutionaryProgramming.java index 70e6d974..69e01438 100644 --- a/src/eva2/optimization/strategies/EvolutionaryProgramming.java +++ b/src/eva2/optimization/strategies/EvolutionaryProgramming.java @@ -2,11 +2,11 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.SelectEPTournaments; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.SelectEPTournaments; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/FloodAlgorithm.java b/src/eva2/optimization/strategies/FloodAlgorithm.java index 1efd14fe..50f76ce5 100644 --- a/src/eva2/optimization/strategies/FloodAlgorithm.java +++ b/src/eva2/optimization/strategies/FloodAlgorithm.java @@ -3,9 +3,9 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.GAIndividualBinaryData; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/GeneticAlgorithm.java b/src/eva2/optimization/strategies/GeneticAlgorithm.java index 4091134e..e493a26f 100644 --- a/src/eva2/optimization/strategies/GeneticAlgorithm.java +++ b/src/eva2/optimization/strategies/GeneticAlgorithm.java @@ -2,13 +2,13 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.mutation.InterfaceAdaptOperatorGenerational; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.SelectRandom; -import eva2.optimization.operators.selection.SelectXProbRouletteWheel; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.mutation.InterfaceAdaptOperatorGenerational; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.SelectRandom; +import eva2.optimization.operator.selection.SelectXProbRouletteWheel; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/GradientDescentAlgorithm.java b/src/eva2/optimization/strategies/GradientDescentAlgorithm.java index e52e947a..c34ad596 100644 --- a/src/eva2/optimization/strategies/GradientDescentAlgorithm.java +++ b/src/eva2/optimization/strategies/GradientDescentAlgorithm.java @@ -4,9 +4,9 @@ import eva2.gui.BeanInspector; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceFirstOrderDerivableProblem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/HillClimbing.java b/src/eva2/optimization/strategies/HillClimbing.java index 91801587..b6443387 100644 --- a/src/eva2/optimization/strategies/HillClimbing.java +++ b/src/eva2/optimization/strategies/HillClimbing.java @@ -2,10 +2,10 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.mutation.InterfaceMutation; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.mutation.InterfaceMutation; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/InterfaceOptimizer.java b/src/eva2/optimization/strategies/InterfaceOptimizer.java index e7980466..48a45111 100644 --- a/src/eva2/optimization/strategies/InterfaceOptimizer.java +++ b/src/eva2/optimization/strategies/InterfaceOptimizer.java @@ -1,8 +1,8 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/InterfaceSpeciesAware.java b/src/eva2/optimization/strategies/InterfaceSpeciesAware.java index f802bf75..18be4bc1 100644 --- a/src/eva2/optimization/strategies/InterfaceSpeciesAware.java +++ b/src/eva2/optimization/strategies/InterfaceSpeciesAware.java @@ -1,6 +1,6 @@ package eva2.optimization.strategies; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; /** * An interface for optimizers which are to be notified in case of species diff --git a/src/eva2/optimization/strategies/IslandModelEA.java b/src/eva2/optimization/strategies/IslandModelEA.java index 0a8ffa3f..bd764017 100644 --- a/src/eva2/optimization/strategies/IslandModelEA.java +++ b/src/eva2/optimization/strategies/IslandModelEA.java @@ -4,14 +4,14 @@ import eva2.gui.BeanInspector; import eva2.gui.Plot; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.ESIndividualDoubleData; -import eva2.optimization.operators.migration.InterfaceMigration; -import eva2.optimization.operators.migration.MOBestMigration; -import eva2.optimization.operators.migration.MOClusteringSeparation; -import eva2.optimization.operators.migration.MOConeSeparation; -import eva2.optimization.operators.migration.SOBestMigration; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.migration.InterfaceMigration; +import eva2.optimization.operator.migration.MOBestMigration; +import eva2.optimization.operator.migration.MOClusteringSeparation; +import eva2.optimization.operator.migration.MOConeSeparation; +import eva2.optimization.operator.migration.SOBestMigration; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.F8Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/LTGA.java b/src/eva2/optimization/strategies/LTGA.java index 897e0bde..4f769b1e 100644 --- a/src/eva2/optimization/strategies/LTGA.java +++ b/src/eva2/optimization/strategies/LTGA.java @@ -5,9 +5,9 @@ import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.BKnapsackProblem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/MLTGA.java b/src/eva2/optimization/strategies/MLTGA.java index f229b429..5b86ffe7 100644 --- a/src/eva2/optimization/strategies/MLTGA.java +++ b/src/eva2/optimization/strategies/MLTGA.java @@ -5,9 +5,9 @@ import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.BKnapsackProblem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/MemeticAlgorithm.java b/src/eva2/optimization/strategies/MemeticAlgorithm.java index 1289a5aa..7875fd4a 100644 --- a/src/eva2/optimization/strategies/MemeticAlgorithm.java +++ b/src/eva2/optimization/strategies/MemeticAlgorithm.java @@ -2,11 +2,11 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.SelectBestIndividuals; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.SelectBestIndividuals; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceLocalSearchable; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/MonteCarloSearch.java b/src/eva2/optimization/strategies/MonteCarloSearch.java index ae1458c1..36c61e8a 100644 --- a/src/eva2/optimization/strategies/MonteCarloSearch.java +++ b/src/eva2/optimization/strategies/MonteCarloSearch.java @@ -3,9 +3,9 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.GAIndividualBinaryData; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/MultiObjectiveCMAES.java b/src/eva2/optimization/strategies/MultiObjectiveCMAES.java index 344ca877..b2b1cacd 100644 --- a/src/eva2/optimization/strategies/MultiObjectiveCMAES.java +++ b/src/eva2/optimization/strategies/MultiObjectiveCMAES.java @@ -3,12 +3,12 @@ package eva2.optimization.strategies; import eva2.gui.GenericObjectEditor; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.archiving.ArchivingNSGAII; -import eva2.optimization.operators.archiving.ArchivingNSGAIISMeasure; -import eva2.optimization.operators.mutation.MutateESCovarianceMatrixAdaptionPlus; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.archiving.ArchivingNSGAII; +import eva2.optimization.operator.archiving.ArchivingNSGAIISMeasure; +import eva2.optimization.operator.mutation.MutateESCovarianceMatrixAdaptionPlus; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem; import java.io.Serializable; diff --git a/src/eva2/optimization/strategies/MultiObjectiveEA.java b/src/eva2/optimization/strategies/MultiObjectiveEA.java index 79002c10..4f039953 100644 --- a/src/eva2/optimization/strategies/MultiObjectiveEA.java +++ b/src/eva2/optimization/strategies/MultiObjectiveEA.java @@ -3,14 +3,14 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividualComparator; -import eva2.optimization.operators.archiving.ArchivingNSGAII; -import eva2.optimization.operators.archiving.InformationRetrievalInserting; -import eva2.optimization.operators.archiving.InterfaceArchiving; -import eva2.optimization.operators.archiving.InterfaceInformationRetrieval; -import eva2.optimization.operators.selection.SelectMONonDominated; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.archiving.ArchivingNSGAII; +import eva2.optimization.operator.archiving.InformationRetrievalInserting; +import eva2.optimization.operator.archiving.InterfaceArchiving; +import eva2.optimization.operator.archiving.InterfaceInformationRetrieval; +import eva2.optimization.operator.selection.SelectMONonDominated; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.FM0Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/NelderMeadSimplex.java b/src/eva2/optimization/strategies/NelderMeadSimplex.java index 4c1ed672..9bd8f48a 100644 --- a/src/eva2/optimization/strategies/NelderMeadSimplex.java +++ b/src/eva2/optimization/strategies/NelderMeadSimplex.java @@ -4,9 +4,9 @@ import eva2.gui.BeanInspector; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.AbstractProblemDouble; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/NichePSO.java b/src/eva2/optimization/strategies/NichePSO.java index b2b93289..083ec771 100644 --- a/src/eva2/optimization/strategies/NichePSO.java +++ b/src/eva2/optimization/strategies/NichePSO.java @@ -5,27 +5,27 @@ import eva2.gui.GenericObjectEditor; import eva2.gui.TopoPlot; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.go.InterfaceTerminator; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.modules.OptimizationParameters; -import eva2.optimization.operators.nichepso.absorption.EuclideanDiversityAbsorptionStrategy; -import eva2.optimization.operators.nichepso.absorption.InterfaceAbsorptionStrategy; -import eva2.optimization.operators.nichepso.absorption.StandardAbsorptionStrategy; -import eva2.optimization.operators.nichepso.deactivation.InterfaceDeactivationStrategy; -import eva2.optimization.operators.nichepso.deactivation.StandardDeactivationStrategy; -import eva2.optimization.operators.nichepso.merging.InterfaceMergingStrategy; -import eva2.optimization.operators.nichepso.merging.ScatterMergingStrategy; -import eva2.optimization.operators.nichepso.merging.StandardMergingStrategy; -import eva2.optimization.operators.nichepso.subswarmcreation.InterfaceSubswarmCreationStrategy; -import eva2.optimization.operators.nichepso.subswarmcreation.StandardSubswarmCreationStrategy; -import eva2.optimization.operators.paramcontrol.LinearParamAdaption; -import eva2.optimization.operators.paramcontrol.ParamAdaption; -import eva2.optimization.operators.paramcontrol.ParameterControlManager; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.nichepso.absorption.EuclideanDiversityAbsorptionStrategy; +import eva2.optimization.operator.nichepso.absorption.InterfaceAbsorptionStrategy; +import eva2.optimization.operator.nichepso.absorption.StandardAbsorptionStrategy; +import eva2.optimization.operator.nichepso.deactivation.InterfaceDeactivationStrategy; +import eva2.optimization.operator.nichepso.deactivation.StandardDeactivationStrategy; +import eva2.optimization.operator.nichepso.merging.InterfaceMergingStrategy; +import eva2.optimization.operator.nichepso.merging.ScatterMergingStrategy; +import eva2.optimization.operator.nichepso.merging.StandardMergingStrategy; +import eva2.optimization.operator.nichepso.subswarmcreation.InterfaceSubswarmCreationStrategy; +import eva2.optimization.operator.nichepso.subswarmcreation.StandardSubswarmCreationStrategy; +import eva2.optimization.operator.paramcontrol.LinearParamAdaption; +import eva2.optimization.operator.paramcontrol.ParamAdaption; +import eva2.optimization.operator.paramcontrol.ParameterControlManager; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.FM0Problem; import eva2.optimization.problems.Interface2DBorderProblem; diff --git a/src/eva2/optimization/strategies/PDDifferentialEvolution.java b/src/eva2/optimization/strategies/PDDifferentialEvolution.java index d55659d7..ef85cf9a 100644 --- a/src/eva2/optimization/strategies/PDDifferentialEvolution.java +++ b/src/eva2/optimization/strategies/PDDifferentialEvolution.java @@ -6,11 +6,11 @@ import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.enums.DETypeEnum; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.selection.replacement.ReplacementCrowding; -import eva2.optimization.operators.selection.replacement.ReplacementNondominatedSortingDistanceCrowding; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.selection.replacement.ReplacementCrowding; +import eva2.optimization.operator.selection.replacement.ReplacementNondominatedSortingDistanceCrowding; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.F1Problem; diff --git a/src/eva2/optimization/strategies/ParticleFilterOptimization.java b/src/eva2/optimization/strategies/ParticleFilterOptimization.java index b32b567f..40866e9e 100644 --- a/src/eva2/optimization/strategies/ParticleFilterOptimization.java +++ b/src/eva2/optimization/strategies/ParticleFilterOptimization.java @@ -6,14 +6,14 @@ import eva2.gui.Plot; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.distancemetric.EuclideanMetric; -import eva2.optimization.operators.mutation.MutateESCorrVector; -import eva2.optimization.operators.mutation.MutateESFixedStepSize; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.SelectParticleWheel; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.distancemetric.EuclideanMetric; +import eva2.optimization.operator.mutation.MutateESCorrVector; +import eva2.optimization.operator.mutation.MutateESFixedStepSize; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.SelectParticleWheel; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/ParticleSubSwarmOptimization.java b/src/eva2/optimization/strategies/ParticleSubSwarmOptimization.java index 40a4d527..47883222 100644 --- a/src/eva2/optimization/strategies/ParticleSubSwarmOptimization.java +++ b/src/eva2/optimization/strategies/ParticleSubSwarmOptimization.java @@ -4,8 +4,8 @@ import eva2.optimization.go.IndividualInterface; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.distancemetric.EuclideanMetric; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.distancemetric.EuclideanMetric; +import eva2.optimization.population.Population; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.Mathematics; diff --git a/src/eva2/optimization/strategies/ParticleSwarmOptimization.java b/src/eva2/optimization/strategies/ParticleSwarmOptimization.java index 0d9554ba..815b561e 100644 --- a/src/eva2/optimization/strategies/ParticleSwarmOptimization.java +++ b/src/eva2/optimization/strategies/ParticleSwarmOptimization.java @@ -9,17 +9,17 @@ import eva2.gui.BeanInspector; import eva2.gui.GenericObjectEditor; import eva2.gui.TopoPlot; import eva2.optimization.go.InterfacePopulationChangedEventListener; -import eva2.optimization.go.PopulationInterface; +import eva2.optimization.population.PopulationInterface; import eva2.optimization.enums.PSOTopologyEnum; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.AbstractEAIndividualComparator; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.distancemetric.PhenotypeMetric; -import eva2.optimization.operators.paramcontrol.ParamAdaption; -import eva2.optimization.operators.paramcontrol.ParameterControlManager; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.operator.paramcontrol.ParamAdaption; +import eva2.optimization.operator.paramcontrol.ParameterControlManager; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.tools.SelectedTag; import eva2.tools.chart2d.DPoint; import eva2.tools.chart2d.DPointSet; diff --git a/src/eva2/optimization/strategies/PopulationBasedIncrementalLearning.java b/src/eva2/optimization/strategies/PopulationBasedIncrementalLearning.java index 83eefdfa..41236388 100644 --- a/src/eva2/optimization/strategies/PopulationBasedIncrementalLearning.java +++ b/src/eva2/optimization/strategies/PopulationBasedIncrementalLearning.java @@ -3,12 +3,12 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.SelectBestIndividuals; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.PBILPopulation; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.SelectBestIndividuals; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.PBILPopulation; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/ScatterSearch.java b/src/eva2/optimization/strategies/ScatterSearch.java index 6ac02414..14e2e29a 100644 --- a/src/eva2/optimization/strategies/ScatterSearch.java +++ b/src/eva2/optimization/strategies/ScatterSearch.java @@ -9,12 +9,12 @@ import eva2.optimization.go.InterfaceTerminator; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; import eva2.optimization.modules.OptimizationParameters; -import eva2.optimization.operators.distancemetric.PhenotypeMetric; -import eva2.optimization.operators.postprocess.PostProcess; -import eva2.optimization.operators.terminators.EvaluationTerminator; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.distancemetric.PhenotypeMetric; +import eva2.optimization.operator.postprocess.PostProcess; +import eva2.optimization.operator.terminators.EvaluationTerminator; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.F1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/SimulatedAnnealing.java b/src/eva2/optimization/strategies/SimulatedAnnealing.java index ed698cba..c4ccf0b8 100644 --- a/src/eva2/optimization/strategies/SimulatedAnnealing.java +++ b/src/eva2/optimization/strategies/SimulatedAnnealing.java @@ -3,9 +3,9 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.GAIndividualBinaryData; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/strategies/SqPSO.java b/src/eva2/optimization/strategies/SqPSO.java index 66ccbea9..7c4b8e9e 100644 --- a/src/eva2/optimization/strategies/SqPSO.java +++ b/src/eva2/optimization/strategies/SqPSO.java @@ -1,9 +1,9 @@ package eva2.optimization.strategies; import eva2.optimization.enums.PSOTopologyEnum; -import eva2.optimization.operators.cluster.ClusteringDensityBased; -import eva2.optimization.operators.distancemetric.IndividualDataMetric; -import eva2.optimization.operators.paramcontrol.ParamAdaption; +import eva2.optimization.operator.cluster.ClusteringDensityBased; +import eva2.optimization.operator.distancemetric.IndividualDataMetric; +import eva2.optimization.operator.paramcontrol.ParamAdaption; /** * A thunk class preconfiguring CBN-EA to function as a sequential niching method. This diff --git a/src/eva2/optimization/strategies/StarANPSO.java b/src/eva2/optimization/strategies/StarANPSO.java index e86ccc74..e6ed704f 100644 --- a/src/eva2/optimization/strategies/StarANPSO.java +++ b/src/eva2/optimization/strategies/StarANPSO.java @@ -1,7 +1,7 @@ package eva2.optimization.strategies; -import eva2.optimization.operators.paramcontrol.LinearParamAdaption; -import eva2.optimization.operators.paramcontrol.ParamAdaption; +import eva2.optimization.operator.paramcontrol.LinearParamAdaption; +import eva2.optimization.operator.paramcontrol.ParamAdaption; public class StarANPSO extends ANPSO { private int defaultEvalCnt=10000; diff --git a/src/eva2/optimization/strategies/SteadyStateGA.java b/src/eva2/optimization/strategies/SteadyStateGA.java index 7473037e..d3c9f71b 100644 --- a/src/eva2/optimization/strategies/SteadyStateGA.java +++ b/src/eva2/optimization/strategies/SteadyStateGA.java @@ -3,13 +3,13 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.GAIndividualBinaryData; -import eva2.optimization.operators.selection.InterfaceSelection; -import eva2.optimization.operators.selection.SelectTournament; -import eva2.optimization.operators.selection.replacement.InterfaceReplacement; -import eva2.optimization.operators.selection.replacement.ReplaceWorst; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.selection.InterfaceSelection; +import eva2.optimization.operator.selection.SelectTournament; +import eva2.optimization.operator.selection.replacement.InterfaceReplacement; +import eva2.optimization.operator.selection.replacement.ReplaceWorst; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/ThresholdAlgorithm.java b/src/eva2/optimization/strategies/ThresholdAlgorithm.java index 9d9c1a77..29c6eab1 100644 --- a/src/eva2/optimization/strategies/ThresholdAlgorithm.java +++ b/src/eva2/optimization/strategies/ThresholdAlgorithm.java @@ -3,9 +3,9 @@ package eva2.optimization.strategies; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.GAIndividualBinaryData; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.B1Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/Tribes.java b/src/eva2/optimization/strategies/Tribes.java index 2a58f365..2dd39f58 100644 --- a/src/eva2/optimization/strategies/Tribes.java +++ b/src/eva2/optimization/strategies/Tribes.java @@ -4,9 +4,9 @@ import eva2.gui.GenericObjectEditor; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractOptimizationProblem; import eva2.optimization.problems.InterfaceHasInitRange; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/WingedMultiObjectiveEA.java b/src/eva2/optimization/strategies/WingedMultiObjectiveEA.java index dc43bc9e..3422f1ec 100644 --- a/src/eva2/optimization/strategies/WingedMultiObjectiveEA.java +++ b/src/eva2/optimization/strategies/WingedMultiObjectiveEA.java @@ -3,10 +3,10 @@ package eva2.optimization.strategies; import eva2.gui.PropertyDoubleArray; import eva2.optimization.go.InterfacePopulationChangedEventListener; import eva2.optimization.individuals.AbstractEAIndividual; -import eva2.optimization.operators.moso.MOSOWeightedFitness; -import eva2.optimization.populations.InterfaceSolutionSet; -import eva2.optimization.populations.Population; -import eva2.optimization.populations.SolutionSet; +import eva2.optimization.operator.moso.MOSOWeightedFitness; +import eva2.optimization.population.InterfaceSolutionSet; +import eva2.optimization.population.Population; +import eva2.optimization.population.SolutionSet; import eva2.optimization.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.optimization.problems.FM0Problem; import eva2.optimization.problems.InterfaceOptimizationProblem; diff --git a/src/eva2/optimization/strategies/tribes/TribesExplorer.java b/src/eva2/optimization/strategies/tribes/TribesExplorer.java index ee134d96..3c0a7348 100644 --- a/src/eva2/optimization/strategies/tribes/TribesExplorer.java +++ b/src/eva2/optimization/strategies/tribes/TribesExplorer.java @@ -2,7 +2,7 @@ package eva2.optimization.strategies.tribes; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.strategies.Tribes; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/strategies/tribes/TribesSwarm.java b/src/eva2/optimization/strategies/tribes/TribesSwarm.java index 84bf4c5b..41b95cfb 100644 --- a/src/eva2/optimization/strategies/tribes/TribesSwarm.java +++ b/src/eva2/optimization/strategies/tribes/TribesSwarm.java @@ -1,6 +1,6 @@ package eva2.optimization.strategies.tribes; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.optimization.problems.InterfaceOptimizationProblem; import eva2.optimization.strategies.Tribes; import eva2.tools.math.RNG; diff --git a/src/eva2/optimization/tools/DeNovofilter.java b/src/eva2/optimization/tools/DeNovofilter.java index 11f4a3fc..a73ffbd2 100644 --- a/src/eva2/optimization/tools/DeNovofilter.java +++ b/src/eva2/optimization/tools/DeNovofilter.java @@ -3,8 +3,8 @@ package eva2.optimization.tools; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; -import eva2.optimization.operators.archiving.ArchivingAllDominating; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingAllDominating; +import eva2.optimization.population.Population; import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; diff --git a/src/eva2/optimization/tools/ImpactOfDimensionOnMOEAs.java b/src/eva2/optimization/tools/ImpactOfDimensionOnMOEAs.java index 5fe55aec..e3dfffdd 100644 --- a/src/eva2/optimization/tools/ImpactOfDimensionOnMOEAs.java +++ b/src/eva2/optimization/tools/ImpactOfDimensionOnMOEAs.java @@ -6,8 +6,8 @@ import eva2.gui.Plot; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.ESIndividualDoubleData; import eva2.optimization.individuals.InterfaceDataTypeDouble; -import eva2.optimization.operators.archiving.ArchivingAllDominating; -import eva2.optimization.populations.Population; +import eva2.optimization.operator.archiving.ArchivingAllDominating; +import eva2.optimization.population.Population; import eva2.tools.chart2d.DPoint; import java.io.*; diff --git a/src/eva2/tools/math/BayNet.java b/src/eva2/tools/math/BayNet.java index e09d874d..f09c7504 100644 --- a/src/eva2/tools/math/BayNet.java +++ b/src/eva2/tools/math/BayNet.java @@ -5,7 +5,7 @@ import eva2.optimization.enums.BOAScoringMethods; import eva2.optimization.individuals.AbstractEAIndividual; import eva2.optimization.individuals.InterfaceDataTypeBinary; import eva2.optimization.individuals.InterfaceGAIndividual; -import eva2.optimization.populations.Population; +import eva2.optimization.population.Population; import eva2.tools.Pair; import java.util.ArrayList; import java.util.Arrays;