aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/backend/modules/mutator/Mutator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/backend/modules/mutator/Mutator.java')
-rw-r--r--src/jcgp/backend/modules/mutator/Mutator.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/jcgp/backend/modules/mutator/Mutator.java b/src/jcgp/backend/modules/mutator/Mutator.java
index 1d5b99a..7435cc1 100644
--- a/src/jcgp/backend/modules/mutator/Mutator.java
+++ b/src/jcgp/backend/modules/mutator/Mutator.java
@@ -4,8 +4,35 @@ import jcgp.backend.modules.Module;
import jcgp.backend.population.Chromosome;
import jcgp.backend.resources.Resources;
+/**
+ * This interface specifies the required behaviour of a mutation operator. Its job is
+ * to modify the connections and functions of the chromosome according to the operator's
+ * parameters.
+ * <br><br>
+ * Parameters may be specified to control the implemented mutation. Any parameters
+ * returned by {@code getLocalParameters()} should be displayed by the user interface,
+ * if it is being used. See {@link Parameter} for more information.
+ * <br><br>
+ * It is advisable to use {@code Resources.reportln()} and {@code Resources.report()}
+ * to print any relevant information. Note that reportln() and report() are affected
+ * by the report interval base parameter. Use {@code Resources.println()} and
+ * {@code Resources.print()} to print information regardless of the current generation.
+ * See {@link Resources} for more information.
+ *
+ * @see Module
+ *
+ * @author Eduardo Pedroni
+ *
+ */
public interface Mutator extends Module {
+ /**
+ * Applies mutations to the specified chromosome according
+ * to the parameter values.
+ *
+ * @param chromosome the chromosome to mutate.
+ * @param resources parameters and utilities for optional reference.
+ */
void mutate(Chromosome chromosome, Resources resources);
}