private void initGenes(){
		//0 to n-1 for the cities, n to denote the seperator. Superfluous numbers are being ignored
		bitsPerAllele = (int) (Math.log(travelingSalesman.n)/Math.log(2));
		
		//2n alleles, as we use pair permutations
		allelesCount = 2*travelingSalesman.n;
		bitsPerGene = (allelesCount*bitsPerAllele);
		bytesPerGene = (bitsPerGene+Byte.SIZE-1)/Byte.SIZE;
		
		genes = new Gene[POPULATION_SIZE];
		oldGenes = new Gene[POPULATION_SIZE];
		
		//random initial genes
		for(int i = 0;i<genes.length;i++){
			byte[] geneData = new byte[bytesPerGene];
			
			Environment.random.nextBytes(geneData);
			
			genes[i] = new Gene(geneData, this);
			oldGenes[i] = new Gene(new byte[bytesPerGene], this);
		}
	}