public void generateNextGeneration() {
		List<Chromosome> nextGeneration = new ArrayList<Chromosome>();
		
		nextGeneration = population;

		List<Chromosome> tournament = new ArrayList<Chromosome>();
		Random rand = new Random();

		for (int i = 0; i < 10; i++) {
			int index = rand.nextInt(nextGeneration.size());
			tournament.add(nextGeneration.get(index));
		}
		//Collections.sort(tournament, Collections.reverseOrder());
		Collections.sort(tournament, new ChromosomeComparator());

		Chromosome chr1 = tournament.get(0);
		Chromosome chr2 = tournament.get(1);

		for (int i = 0; i < 25; i++) {
			Chromosome copyChr1 = chr1;
			Chromosome copyChr2 = chr2;

			this.crossover(copyChr1, copyChr2);
			
			if(copyChr1.genotypeSize() > 0)
				nextGeneration.add(copyChr1);
			
			if(copyChr2.genotypeSize() > 0)
				nextGeneration.add(copyChr2);
		}

		this.population.clear();
		this.population = nextGeneration;
		this.genNumber++;
	}