@Override
	protected void run() {
		
		int cycles = 20;
		EDA eda = (EDA) algorithms.get("EDA");
		eda.setConfiguration(this);
		ClonAlg clonAlg = (ClonAlg) algorithms.get("ClonAlg");
		clonAlg.setConfiguration(this);
		
		// Calculate max iterations
		for (int cycle = 0; cycle < cycles; cycle++) {
			
			maxIterations += eda.getGenerations();
			if ( cycle % 10 == 0) {
				maxIterations += clonAlg.getIterations();
				maxIterations += eda.getGenerations();
			}
		}
		setMaxIterations(maxIterations);
		
		for (int cycle = 0; cycle < cycles; cycle++) {

			System.out.println(((double) cycle/999.0 * 100) + "%");

			eda.setInitialIndividual(eda.getBestIndividual());
			eda.run();

			if ( cycle % 10 == 0) {
				
				clonAlg.setInitialIndividual(eda.getBestIndividual());
				clonAlg.run();

				eda.setInitialIndividual(clonAlg.getBestIndividual());
				eda.run();
				
			}
			
		}

		runBestIndividual = eda.getBestIndividual();

	}