diff options
Diffstat (limited to 'src/jcgp/backend/population/MutableElement.java')
-rw-r--r-- | src/jcgp/backend/population/MutableElement.java | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/src/jcgp/backend/population/MutableElement.java b/src/jcgp/backend/population/MutableElement.java deleted file mode 100644 index 5782a99..0000000 --- a/src/jcgp/backend/population/MutableElement.java +++ /dev/null @@ -1,53 +0,0 @@ -package jcgp.backend.population; - -/** - * {@code MutableElement} declares the expected behaviour of any - * part of a chromosome that is mutable, more specifically - * nodes or outputs. Inputs are not mutable since they don't have - * connections or functions. - * <br><br> - * This interface provides a way to deal with mutable elements - * generically without having to specify whether they are nodes - * or outputs. In this way a random mutable element can be picked and - * dealt with more easily, facilitating mutations. - * - * @author Eduardo Pedroni - * - */ -public interface MutableElement { - - /** - * This method sets the indexed connection to the specified new connection. - * Implementing classes may choose to ignore the given index (such as in the - * case of outputs, which only have one connection). - * - * @param index the connection index to set. - * @param newConnection the chromosome element to connect to. - */ - public void setConnection(int index, Connection newConnection); - - /** - * Asserts if the specified element is a copy of the elements - * this is called on.<br> - * This method returns true if and only if: - * <ul> - * <li>the elements being compared are not the same instance;</li> - * <li>the connections of the compared elements are not the same instance;</li> - * <li>the elements have the same function (in the case of Node);</li> - * <li>the grid position of the elements themselves are the same;</li> - * <li>the grid position of all equivalent connections are the same;</li> - * </ul> - * <br><br> - * The relationship computed by this method is: - * <ul> - * <li>symmetric: a.copyOf(b) == b.copyOf(a);</li> - * <li>not reflexive: a.copyOf(a) returns false;</li> - * <li>not transitive: if a.copyOf(b) is true and b.copyOf(c) is true, a.copyOf(c) is - * not necessarily true since it is possible that a == c.</li> - * </ul> - * @param element the mutable element to compare to. - * @return true if {@code element} is a copy of this element. - */ - boolean copyOf(MutableElement element); - -} |