@Override
	public boolean contains(Program program) {
		Double programFitness = 0.0;
		if(program.getFitness() == null) fitnessFunction.computeFitness(program);
		programFitness = program.getFitness();
		int index = 0;
		while (index < this.programs.size() && programFitness > this.fitness.get(index)) {
			index++;
		}
		if (index < this.programs.size() && this.fitness.get(index).equals(programFitness)
				&& this.programs.get(index).equals(program)) {
			return true;
		} else {
			return false;
		}
	}