Repository: kylin Updated Branches: refs/heads/master c86f30f88 -> 82f76db0a
APACHE-KYLIN-2730: add note for some GeneticAlgorithm related lib files that are modified from https://github.com/apache/commons-math Signed-off-by: Zhong <nju_y...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/82f76db0 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/82f76db0 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/82f76db0 Branch: refs/heads/master Commit: 82f76db0a6fe8c71c93526e935e25e7a85535586 Parents: c86f30f Author: Wang Ken <mingmw...@ebay.com> Authored: Sat Feb 10 10:57:22 2018 +0800 Committer: Zhong <nju_y...@apache.org> Committed: Sat Feb 10 10:57:22 2018 +0800 ---------------------------------------------------------------------- .../kylin/cube/cuboid/algorithm/generic/GeneticAlgorithm.java | 2 ++ .../kylin/cube/cuboid/algorithm/generic/lib/BitsMutation.java | 2 ++ .../apache/kylin/cube/cuboid/algorithm/generic/lib/Chromosome.java | 2 ++ .../kylin/cube/cuboid/algorithm/generic/lib/ChromosomePair.java | 2 ++ .../kylin/cube/cuboid/algorithm/generic/lib/CrossoverPolicy.java | 2 ++ .../cube/cuboid/algorithm/generic/lib/ElitisticListPopulation.java | 2 ++ .../apache/kylin/cube/cuboid/algorithm/generic/lib/Fitness.java | 2 ++ .../cube/cuboid/algorithm/generic/lib/FixedGenerationCount.java | 2 ++ .../kylin/cube/cuboid/algorithm/generic/lib/ListPopulation.java | 2 ++ .../kylin/cube/cuboid/algorithm/generic/lib/MutationPolicy.java | 2 ++ .../kylin/cube/cuboid/algorithm/generic/lib/OnePointCrossover.java | 2 ++ .../apache/kylin/cube/cuboid/algorithm/generic/lib/Population.java | 2 ++ .../kylin/cube/cuboid/algorithm/generic/lib/SelectionPolicy.java | 2 ++ .../kylin/cube/cuboid/algorithm/generic/lib/StoppingCondition.java | 2 ++ .../cube/cuboid/algorithm/generic/lib/TournamentSelection.java | 2 ++ 15 files changed, 30 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/GeneticAlgorithm.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/GeneticAlgorithm.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/GeneticAlgorithm.java index 178b8c5..ce4dc3e 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/GeneticAlgorithm.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/GeneticAlgorithm.java @@ -42,6 +42,8 @@ import org.slf4j.LoggerFactory; import com.google.common.collect.Lists; /** + * Modified from the GeneticAlgorithm.java in https://github.com/apache/commons-math + * * Implementation of a genetic algorithm to recommend a list of cuboids. All factors that govern the processing * of the algorithm can be configured. * http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/BitsMutation.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/BitsMutation.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/BitsMutation.java index b349eb6..073b947 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/BitsMutation.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/BitsMutation.java @@ -24,6 +24,8 @@ import org.apache.kylin.cube.cuboid.algorithm.generic.BitsChromosome; import org.apache.kylin.cube.cuboid.algorithm.generic.GeneticAlgorithm; /** + * Modified from the BinaryMutation.java in https://github.com/apache/commons-math + * * Mutation for {@link BitsChromosome}s. Randomly changes one gene. * */ http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Chromosome.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Chromosome.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Chromosome.java index f8fa489..a58abb1 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Chromosome.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Chromosome.java @@ -19,6 +19,8 @@ package org.apache.kylin.cube.cuboid.algorithm.generic.lib; /** + * Modified from the Chromosome.java in https://github.com/apache/commons-math + * * Individual in a population. Chromosomes are compared based on their fitness. * <p> * The chromosomes are IMMUTABLE, and so their fitness is also immutable and http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ChromosomePair.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ChromosomePair.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ChromosomePair.java index 05da4b5..aa0f9df 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ChromosomePair.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ChromosomePair.java @@ -19,6 +19,8 @@ package org.apache.kylin.cube.cuboid.algorithm.generic.lib; /** + * Modified from the ChromosomePair.java in https://github.com/apache/commons-math + * * A pair of {@link Chromosome} objects. * */ http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/CrossoverPolicy.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/CrossoverPolicy.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/CrossoverPolicy.java index fa287cf..397075c 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/CrossoverPolicy.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/CrossoverPolicy.java @@ -19,6 +19,8 @@ package org.apache.kylin.cube.cuboid.algorithm.generic.lib; /** + * Modified from the CrossoverPolicy.java in https://github.com/apache/commons-math + * * Policy used to create a pair of new chromosomes by performing a crossover * operation on a source pair of chromosomes. * http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ElitisticListPopulation.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ElitisticListPopulation.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ElitisticListPopulation.java index f66e941..f35b2e2 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ElitisticListPopulation.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ElitisticListPopulation.java @@ -29,6 +29,8 @@ import org.apache.commons.math3.exception.util.LocalizedFormats; import org.apache.commons.math3.util.FastMath; /** + * Modified from the ElitisticListPopulation.java in https://github.com/apache/commons-math + * * Population of chromosomes which uses elitism (certain percentage of the best * chromosomes is directly copied to the next generation). * http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Fitness.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Fitness.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Fitness.java index 83f4b65..9713f25 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Fitness.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Fitness.java @@ -19,6 +19,8 @@ package org.apache.kylin.cube.cuboid.algorithm.generic.lib; /** + * Modified from the Fitness.java in https://github.com/apache/commons-math + * * Fitness of a chromosome. * */ http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/FixedGenerationCount.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/FixedGenerationCount.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/FixedGenerationCount.java index c0c8316..ff45fa2 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/FixedGenerationCount.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/FixedGenerationCount.java @@ -21,6 +21,8 @@ package org.apache.kylin.cube.cuboid.algorithm.generic.lib; import org.apache.commons.math3.exception.NumberIsTooSmallException; /** + * Modified from the FixedGenerationCount.java in https://github.com/apache/commons-math + * * Stops after a fixed number of generations. Each time {@link #isSatisfied(Population)} is invoked, a generation * counter is incremented. Once the counter reaches the configured <code>maxGenerations</code> value, * {@link #isSatisfied(Population)} returns true. http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ListPopulation.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ListPopulation.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ListPopulation.java index c146274..435dc72 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ListPopulation.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/ListPopulation.java @@ -31,6 +31,8 @@ import org.apache.commons.math3.exception.NumberIsTooSmallException; import org.apache.commons.math3.exception.util.LocalizedFormats; /** + * Modified from the ListPopulation.java in https://github.com/apache/commons-math + * * Population of chromosomes represented by a {@link List}. * */ http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/MutationPolicy.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/MutationPolicy.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/MutationPolicy.java index 99ba876..183483a 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/MutationPolicy.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/MutationPolicy.java @@ -19,6 +19,8 @@ package org.apache.kylin.cube.cuboid.algorithm.generic.lib; /** + * Modified from the MutationPolicy.java in https://github.com/apache/commons-math + * * Algorithm used to mutate a chromosome. * */ http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/OnePointCrossover.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/OnePointCrossover.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/OnePointCrossover.java index 1f484cb..5ef8cfa 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/OnePointCrossover.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/OnePointCrossover.java @@ -24,6 +24,8 @@ import org.apache.kylin.cube.cuboid.algorithm.generic.BitsChromosome; import org.apache.kylin.cube.cuboid.algorithm.generic.GeneticAlgorithm; /** + * Modified from the OnePointCrossover.java in https://github.com/apache/commons-math + * * One point crossover policy. A random crossover point is selected and the * first part from each parent is copied to the corresponding child, and the * second parts are copied crosswise. http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Population.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Population.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Population.java index 8e35420..c22f518 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Population.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/Population.java @@ -21,6 +21,8 @@ package org.apache.kylin.cube.cuboid.algorithm.generic.lib; import org.apache.commons.math3.exception.NumberIsTooLargeException; /** + * Modified from the Population.java in https://github.com/apache/commons-math + * * A collection of chromosomes that facilitates generational evolution. * */ http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/SelectionPolicy.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/SelectionPolicy.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/SelectionPolicy.java index 1c32f88..7ac14c5 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/SelectionPolicy.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/SelectionPolicy.java @@ -19,6 +19,8 @@ package org.apache.kylin.cube.cuboid.algorithm.generic.lib; /** + * Modified from the SelectionPolicy.java in https://github.com/apache/commons-math + * * Algorithm used to select a chromosome pair from a population. * */ http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/StoppingCondition.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/StoppingCondition.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/StoppingCondition.java index 28b879a..bf3a26d 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/StoppingCondition.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/StoppingCondition.java @@ -19,6 +19,8 @@ package org.apache.kylin.cube.cuboid.algorithm.generic.lib; /** + * Modified from the StoppingCondition.java in https://github.com/apache/commons-math + * * Algorithm used to determine when to stop evolution. * */ http://git-wip-us.apache.org/repos/asf/kylin/blob/82f76db0/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/TournamentSelection.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/TournamentSelection.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/TournamentSelection.java index cca44ca..158ccd2 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/TournamentSelection.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/lib/TournamentSelection.java @@ -25,6 +25,8 @@ import org.apache.kylin.cube.cuboid.algorithm.generic.GeneticAlgorithm; import com.google.common.collect.Lists; /** + * Modified from the TournamentSelection.java in https://github.com/apache/commons-math + * * Tournament selection scheme. Each of the two selected chromosomes is selected * based on n-ary tournament -- this is done by drawing {@link #arity} random * chromosomes without replacement from the population, and then selecting the