Javascript 尝试使用递归神经网络,但我得到了不少错误

Javascript 尝试使用递归神经网络,但我得到了不少错误,javascript,neural-network,Javascript,Neural Network,目前,我正在运行我的程序时,鼠标按下。但所有这些点都没有移动。他们的立场不会像我希望的那样发生变化。但是我找不到我的代码有任何错误。如果你愿意的话,我想要一些第二意见和/或提示/改进 function setup() { createCanvas(windowWidth,windowHeight); background(255); network = new network(); for (var i = 0; i < network.populationSize; i+

目前,我正在运行我的程序时,鼠标按下。但所有这些点都没有移动。他们的立场不会像我希望的那样发生变化。但是我找不到我的代码有任何错误。如果你愿意的话,我想要一些第二意见和/或提示/改进

function setup() {
  createCanvas(windowWidth,windowHeight);
  background(255);
  network = new network();
  for (var i = 0; i < network.populationSize; i++) {
    network.population.push(new object(random(width),random(height)));
  }
}

function draw() {
  background(255);
  network.show();
  if (mouseIsPressed) {
    network.generate();
  }
}

function network() {
  this.populationSize = 100;
  this.population = [];
  this.genePool = [];
}

network.prototype.generate = function() {
  this.genePool = [];
  this.genePool = this.population.map(function(curr) {
    curr.mutate();
    curr.calculateFitness();
    curr.genePoolAdd();
    return curr;
  })
  this.population = [];
  for (var i = 0; i < this.populationSize; i++) {
    this.population.push(random(this.genePool));
  }
}

network.prototype.show = function() {
  stroke(0);
  strokeWeight(5);
  for (var i = 0; i < this.population.length; i++) {
    point(this.population[i].dna[0],this.population[i].dna[1]);
  }
}

function object(x,y) {
  this.dna = [x,y];
  this.mutation = 18;
  this.fitness = this.calculateFitness();
}

object.prototype.mutate = function() {
  for (var i; i < this.dna.length; i++) {
    this.dna[i] += random(-this.mutation,this.mutation);
  }
}

object.prototype.calculateFitness = function() {
  var max = dist(0,0,width/2,height/2);
  return max-dist(this.dna[0],this.dna[1],width/2,height/2);
}

object.prototype.genePoolAdd = function() {
  for(var i = 0; i < pow(this.fitness); i++) {
    genePool.push(new object(this.dna[0],this.dna[1]));
  }
}
函数设置(){
createCanvas(窗口宽度、窗口高度);
背景(255);
网络=新网络();
对于(var i=0;i
为什么不使用数组的长度作为定界符来提高循环的安全性:
for(var i=0;i
应该是
for(var i=0;i
!我喜欢对for循环使用标准格式。我宁愿使用预定义变量,也不愿检查数组的长度。预定义变量会导致问题,因为您可能会访问数组长度以外的元素!那就意味着我的循环生成的数组太短了!该变量用于定义数组的长度为何不使用数组的长度作为定界符,从而使循环更安全:
for(var i=0;i
应该是
for(var i=0;i
!我喜欢对for循环使用标准格式。我宁愿使用预定义变量,也不愿检查数组的长度。预定义变量会导致问题,因为您可能会访问数组长度以外的元素!那就意味着我的循环生成的数组太短了!变量用于定义数组的长度