Ejemplo n.º 1
0
        public Test1DimCA() : base()
        {
            parameters = new CAParameters(NeighbourHoodSize: 3,
                                          CellStateCount: 2,
                                          CellWorldWidth: 5,
                                          MaxGeneration: 40);

            MakeStates(parameters.CellStateCount);

            //seed = new float[] { 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 };
            //goal = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            seed = new float[] { 0, 0, 1, 0, 0 };
            goal = new float[] { 0, 1, 1, 1, 0 };

            if (seed.Length != parameters.CellWorldWidth ||
                goal.Length != parameters.CellWorldWidth)
            {
                throw new FormatException("seed not compatible with experiment parameters");
            }

            cells = new OneDimCell[parameters.CellWorldWidth];
            for (int i = 0; i < parameters.CellWorldWidth; i++)
            {
                cells[i] = new OneDimCell(i, cells, parameters.NeighbourHoodSize);
            }
            foreach (BaseCell cell in cells)
            {
                cell.InitializeNeighbourhood();
            }
        }
Ejemplo n.º 2
0
        public Test2DimCA() : base()
        {
            parameters = new CAParameters(NeighbourHoodSize: 5,
                                          CellStateCount: 2,
                                          CellWorldWidth: 10,
                                          MaxGeneration: 4);

            MakeStates(parameters.CellStateCount);

            seed    = new float[10][];
            seed[0] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            seed[1] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            seed[2] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            seed[3] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            seed[4] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            seed[5] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            seed[6] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            seed[7] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            seed[8] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            seed[9] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };

            goal    = new float[10][];
            goal[0] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            goal[1] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            goal[2] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            goal[3] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            goal[4] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            goal[5] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            goal[6] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            goal[7] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            goal[8] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };
            goal[9] = new float[] { 0, 1, 1, 0, 1, 1, 0, 1, 1, 0 };


            if (seed.Length != parameters.CellWorldWidth ||
                goal.Length != parameters.CellWorldWidth)
            {
                throw new FormatException("seed not compatible with experiment parameters" + seed.Length + " " + goal.Length);
            }

            cells = new TwoDimCell[parameters.CellWorldWidth][];
            for (int i = 0; i < parameters.CellWorldWidth; i++)
            {
                cells[i] = new TwoDimCell[parameters.CellWorldHeight];
                for (int j = 0; j < parameters.CellWorldWidth; j++)
                {
                    cells[i][j] = new TwoDimCell(i, j, cells, parameters.NeighbourHoodSize);
                }
            }

            foreach (TwoDimCell[] cellRow in cells)
            {
                foreach (TwoDimCell cell in cellRow)
                {
                    cell.InitializeNeighbourhood();
                }
            }
        }
Ejemplo n.º 3
0
        public LambdaExperiment() : base()
        {
            parameters = new CAParameters(NeighbourHoodSize: 3,
                                          CellStateCount: 2,
                                          CellWorldWidth: 15,
                                          MaxGeneration: 40,
                                          MaxFitness: 64);                                         //8 rules to get right, squared => 64

            MakeStates(parameters.CellStateCount);
        }