Ejemplo n.º 1
0
    public void Calculate_Test()
    {
        double[] input = { 0.5, 1 };
        double[] desiredOutput = { 0.681, 0.744 };

        feedForwardNetwork.Init();


        double[] output = feedForwardNetwork.Calculate(input);
        Assert.AreEqual(output.Length, desiredOutput.Length);

        //Check result
        Assert.AreEqual(desiredOutput[0], output[0], 0.001);
        Assert.AreEqual(desiredOutput[1], output[1], 0.001);

        //Second example

        double[] input2 = { -1, 2 };
        double[] desiredOutput2 = { 0.669, 0.760 };

        double[] output2 = feedForwardNetwork.Calculate(input2);
        Assert.AreEqual(output2.Length, desiredOutput.Length);

        //Check result
        Assert.AreEqual(desiredOutput2[0], output2[0], 0.001);
        Assert.AreEqual(desiredOutput2[1], output2[1], 0.001);

    }
Ejemplo n.º 2
0
    public void CalculateRecurrent_Test()
    {
        double[] input ={ -1, 2};
        double[] desiredOutputFirstIteration = { 0.669, 0.760 };
        double[] desiredOutputSecondIteration = { 0.632, 0.699 };

        recurrentNetwork.Init();

        double[] outputFirstIteration = recurrentNetwork.Calculate(input);
        Assert.AreEqual(desiredOutputFirstIteration.Length, outputFirstIteration.Length);

        //Check result
        Assert.AreEqual(desiredOutputFirstIteration[0], outputFirstIteration[0], 0.001);
        Assert.AreEqual(desiredOutputFirstIteration[1], outputFirstIteration[1], 0.001);

        //Second iteration
        double[] outputSecondIteration = recurrentNetwork.Calculate(input);
        Assert.AreEqual(desiredOutputSecondIteration.Length, outputSecondIteration.Length);

        //Check result
        Assert.AreEqual(desiredOutputSecondIteration[0], outputSecondIteration[0], 0.001);
        Assert.AreEqual(desiredOutputSecondIteration[1], outputSecondIteration[1], 0.001);
    }
Ejemplo n.º 3
0
        public void FillXorScreen(Genome genome, GameObject parent, GameObject screenPrefab)
        {
            foreach (Transform child in parent.transform)
            {
                Destroy(child.gameObject);
            }

            for (int i = 0; i <= 10; i++)
            {
                for (int j = 0; j <= 10; j++)
                {
                    double xVal = (double)i / (double)10;
                    double yVal = (double)j / (double)10;

                    GameObject obj = Instantiate(screenPrefab, parent.transform, false);
                    obj.transform.localPosition = new Vector3(i, j, 0);

                    //Get values for xor
                    float result = (float)genome.Calculate(new double[] { xVal, yVal, 1 })[0];

                    obj.GetComponent <Renderer>().material.color = new Color(result, result, result);
                }
            }
        }