public override void networkResults(float[] outputs)
        {
            double distortion;

            if (effectorNoise > 0)
            {
                for (int k = 0; k < outputs.Length; k++)
                {
                    distortion  = 1.0 + (EngineUtilities.random.NextDouble() - 0.5) * 2.0 * (effectorNoise) / 100.0;
                    outputs[k] *= (float)distortion;
                    outputs[k]  = (float)EngineUtilities.clamp(outputs[k], 0, 1);
                }
            }
            decideAction(outputs, timeStep);
            updatePosition();
        }
Exemple #2
0
        public override void networkResults(float[] outputs)
        {
            //  controller.SetInputSignals(inputs);

            //TODO: Should be based on network depth or something
            //   controller.MultipleSteps(2);

            // float[] outputs = new float[controller.OutputNeuronCount];

            double distortion;

            if (effectorNoise > 0)
            {
                for (int k = 0; k < outputs.Length; k++)
                {
                    distortion  = 1.0 + (EngineUtilities.random.NextDouble() - 0.5) * 2.0 * (effectorNoise) / 100.0;
                    outputs[k] *= (float)distortion;
                    outputs[k]  = (float)EngineUtilities.clamp(outputs[k], 0, 1);
                }
            }
            decideAction(outputs, timeStep);
            updatePosition();
        }