void Update() { if (regenereaza) { n = new neuralnet(); n.genereaza(4, 5, 20, 10, 100); regenereaza = false; } if (mutate) { n.mutatie(1); mutate = false; } if (start) { l = new List <float>(); l.Add(s.fdreapta); l.Add(s.fstanga); l.Add(s.fspate); l.Add(s.ffata); List <float> aux = n.proceseaza(l); m.rl = aux[0]; m.rr = aux[1]; m.mb = aux[2]; m.mf = aux[3]; m.ok = aux[4]; } }
static Func <double, double> g = (x) => Sin(x); //Function to fit static void Main() { int n = 15; //hidden nodes var nn = new neuralnet(n); double x_start = 0; double x_end = 2 * PI; int nx = 25; var xs = new double[nx]; var ys = new double[nx]; WriteLine("Sampled points of test function:"); for (int i = 0; i < nx; i++) { xs[i] = (x_end - x_start) / (nx - 1) * i + x_start; ys[i] = g(xs[i]); WriteLine($"{xs[i]} \t {ys[i]}"); } Write("\n\n"); //initial parameters for (int i = 0; i < n; i++) { nn.parameters[3 * i] = (x_end - x_start) / n * i + x_start; nn.parameters[3 * i + 1] = 1; nn.parameters[3 * i + 2] = 1; } nn.parameters.print("Initial parameters="); nn.train(xs, ys); nn.parameters.print("Post training parameters ="); Write("\n\n"); int n_interpol = 100; //number of interpolated points double x, y, y_der, y_int; WriteLine("Interpolated points of test function:"); for (int i = 0; i <= n_interpol; i++) { x = (x_end - x_start) / n_interpol * i + x_start; y = nn.feed(x); y_der = nn.feed_der(x); y_int = nn.feed_int(x, 0); WriteLine($"{x} \t {y} \t {y_der} \t {y_int}"); } }
void newgen() { nr++; for (int k = 0; k < size; k++) { for (int l = 0; l < size; l++) { if (nval[k] < nval[l]) { float aux = nval[k]; nval[k] = nval[l]; nval[l] = aux; neuralnet a = new neuralnet(n[k]); n[k] = new neuralnet(n[l]); n[l] = new neuralnet(n[k]); } } } for (int k = 4; k < size - 2; k++) { if (k % 2 == 0) { n[k] = new neuralnet(neuralnet.cross(n[parent1], n[parent2], 2)); } else { n[k] = new neuralnet(neuralnet.cross(n[parent2], n[parent1], 2)); } } for (int k = size - 2; k < size; i++) { n[k].genereaza(4, 5, nsize, npl, w); } for (int k = 0; k < size; k++) { nval[k] = 0; } gen++; }
public void reset(neuralnet net) { start = true; n = new neuralnet(net); g.GetComponent <mv>().reset(); }
void Start() { n = new neuralnet(); s = g.GetComponent <snezor>(); m = g.GetComponent <mv>(); }