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(); }
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(); }