@Override
	public void fill() {
    	nb_neurons = rowNumber * colNumber;
	
		for(int k=0;k<rowNumber;k++) {
    		neurons.add(new ArrayList<Neuron>());
    		for(int k1=0;k1<colNumber;k1++){
    			neurons.get(k).add(new Neuron(2, k, neurons.get(k).size(), getAleatory()));
    		}
    	}
	
		// We create the topology
		setVoisins();
	
		for (int i=0;i<neurons.size();i++) {
		    for (int j=0 ;j<neurons.get(i).size();j++) {
				for(int k = 0 ; k < neurons.size() ; k ++) {
				    for(int l = 0 ; l <neurons.get(k).size(); l++) {
				    	distancesTopo[i*colNumber +j][k*colNumber +l] = distance_voisins(neurons.get(i).get(j), neurons.get(k).get(l));
				    }
				}
		    }
		}
	}