From 761021e0551beaaaac1120ef6da37a70281974b2 Mon Sep 17 00:00:00 2001 From: Eduardo Pedroni Date: Thu, 30 Jan 2014 16:03:33 +0000 Subject: Started formally implementing the class structure but ran into some issues. I'll re-design the structure to account for function mutations, function variety, generic data types and modularized behaviour. --- .classpath | 1 + README | 20 +++++++++++++++-- src/jcgp/Main.java | 10 +++++++++ src/jcgp/chromosome/Chromosome.java | 17 ++++++++++++++ src/jcgp/chromosome/element/ChromosomeElement.java | 7 ++++++ src/jcgp/chromosome/element/Input.java | 11 +++++++++ src/jcgp/chromosome/element/MutableElement.java | 12 ++++++++++ src/jcgp/chromosome/element/Node.java | 26 ++++++++++++++++++++++ src/jcgp/chromosome/element/Output.java | 26 ++++++++++++++++++++++ src/jcgp/chromosome/functions/Function.java | 7 ++++++ src/jcgp/chromosome/functions/FunctionSet.java | 14 ++++++++++++ src/jcgp/tests/Tests.java | 23 +++++++++++++++++++ 12 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 src/jcgp/Main.java create mode 100644 src/jcgp/chromosome/Chromosome.java create mode 100644 src/jcgp/chromosome/element/ChromosomeElement.java create mode 100644 src/jcgp/chromosome/element/Input.java create mode 100644 src/jcgp/chromosome/element/MutableElement.java create mode 100644 src/jcgp/chromosome/element/Node.java create mode 100644 src/jcgp/chromosome/element/Output.java create mode 100644 src/jcgp/chromosome/functions/Function.java create mode 100644 src/jcgp/chromosome/functions/FunctionSet.java create mode 100644 src/jcgp/tests/Tests.java diff --git a/.classpath b/.classpath index fb50116..3e0fb27 100644 --- a/.classpath +++ b/.classpath @@ -2,5 +2,6 @@ + diff --git a/README b/README index 2150cb9..f869f69 100644 --- a/README +++ b/README @@ -1,3 +1,19 @@ -- Development Master Branch - +- Development Branch - -This is a clean commit with the basic project, more commits will follow when the project reaches critical points. \ No newline at end of file +29/1 + +Started formal development based on data_struct spike. + +The first goal is to produce the data structure that represents a chromosome. This structure will rely on a range +of other classes, which will be developed and tested as well. + +Chromosome tests: + - a data structure called Chromosome exists + - the chromosome instance can return the right outputs based on given inputs + +ChromosomeElement tests: + - Node is capable of processing its connections using its function and returning the result + - Input returns the value it is set to + - Outputs returns a single value from its source Node + + \ No newline at end of file diff --git a/src/jcgp/Main.java b/src/jcgp/Main.java new file mode 100644 index 0000000..007e617 --- /dev/null +++ b/src/jcgp/Main.java @@ -0,0 +1,10 @@ +package jcgp; + +public class Main { + + public static void main(String[] args) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/jcgp/chromosome/Chromosome.java b/src/jcgp/chromosome/Chromosome.java new file mode 100644 index 0000000..19d7e77 --- /dev/null +++ b/src/jcgp/chromosome/Chromosome.java @@ -0,0 +1,17 @@ +package jcgp.chromosome; + +import java.util.ArrayList; + +import jcgp.chromosome.element.ChromosomeElement; + +public class Chromosome { + + private ArrayList> nodes; + + public Chromosome() { + + + + } + +} diff --git a/src/jcgp/chromosome/element/ChromosomeElement.java b/src/jcgp/chromosome/element/ChromosomeElement.java new file mode 100644 index 0000000..2dc9107 --- /dev/null +++ b/src/jcgp/chromosome/element/ChromosomeElement.java @@ -0,0 +1,7 @@ +package jcgp.chromosome.element; + +public abstract class ChromosomeElement { + + public abstract int evaluate(); + +} diff --git a/src/jcgp/chromosome/element/Input.java b/src/jcgp/chromosome/element/Input.java new file mode 100644 index 0000000..de051dc --- /dev/null +++ b/src/jcgp/chromosome/element/Input.java @@ -0,0 +1,11 @@ +package jcgp.chromosome.element; + +public class Input extends ChromosomeElement { + + @Override + public int evaluate() { + // TODO Auto-generated method stub + return 0; + } + +} diff --git a/src/jcgp/chromosome/element/MutableElement.java b/src/jcgp/chromosome/element/MutableElement.java new file mode 100644 index 0000000..ed7e23c --- /dev/null +++ b/src/jcgp/chromosome/element/MutableElement.java @@ -0,0 +1,12 @@ +package jcgp.chromosome.element; + +import jcgp.chromosome.Chromosome; +import jcgp.chromosome.functions.FunctionSet; + +public interface MutableElement { + + public void initialise(Chromosome chromosome, FunctionSet functions); + + public void mutate(Chromosome chromosome, FunctionSet functions); + +} diff --git a/src/jcgp/chromosome/element/Node.java b/src/jcgp/chromosome/element/Node.java new file mode 100644 index 0000000..f97c680 --- /dev/null +++ b/src/jcgp/chromosome/element/Node.java @@ -0,0 +1,26 @@ +package jcgp.chromosome.element; + +import jcgp.chromosome.Chromosome; +import jcgp.chromosome.functions.FunctionSet; + +public class Node extends ChromosomeElement implements MutableElement { + + @Override + public void initialise(Chromosome chromosome, FunctionSet functions) { + // TODO Auto-generated method stub + + } + + @Override + public void mutate(Chromosome chromosome, FunctionSet functions) { + // TODO Auto-generated method stub + + } + + @Override + public int evaluate() { + // TODO Auto-generated method stub + return 0; + } + +} diff --git a/src/jcgp/chromosome/element/Output.java b/src/jcgp/chromosome/element/Output.java new file mode 100644 index 0000000..261e77d --- /dev/null +++ b/src/jcgp/chromosome/element/Output.java @@ -0,0 +1,26 @@ +package jcgp.chromosome.element; + +import jcgp.chromosome.Chromosome; +import jcgp.chromosome.functions.FunctionSet; + +public class Output extends ChromosomeElement implements MutableElement { + + @Override + public void initialise(Chromosome chromosome, FunctionSet functions) { + // TODO Auto-generated method stub + + } + + @Override + public void mutate(Chromosome chromosome, FunctionSet functions) { + // TODO Auto-generated method stub + + } + + @Override + public int evaluate() { + // TODO Auto-generated method stub + return 0; + } + +} diff --git a/src/jcgp/chromosome/functions/Function.java b/src/jcgp/chromosome/functions/Function.java new file mode 100644 index 0000000..27697be --- /dev/null +++ b/src/jcgp/chromosome/functions/Function.java @@ -0,0 +1,7 @@ +package jcgp.chromosome.functions; + +public abstract class Function { + + public abstract int run(); + +} diff --git a/src/jcgp/chromosome/functions/FunctionSet.java b/src/jcgp/chromosome/functions/FunctionSet.java new file mode 100644 index 0000000..e9d197a --- /dev/null +++ b/src/jcgp/chromosome/functions/FunctionSet.java @@ -0,0 +1,14 @@ +package jcgp.chromosome.functions; + +import java.util.ArrayList; + +public class FunctionSet { + + private ArrayList functions; + + public FunctionSet() { + functions = new ArrayList(); + } + + +} diff --git a/src/jcgp/tests/Tests.java b/src/jcgp/tests/Tests.java new file mode 100644 index 0000000..28bfd3d --- /dev/null +++ b/src/jcgp/tests/Tests.java @@ -0,0 +1,23 @@ +package jcgp.tests; + +import static org.junit.Assert.*; + +import org.junit.Before; +import org.junit.Test; + +public class Tests { + + @Before + public void setUp() throws Exception { + + + + } + + @Test + public void test() { + fail("Not yet implemented"); + + } + +} -- cgit v1.2.3