void rebuildBest(int numOfTries){
		Expression[] best = expressions.clone();
		int dep= depth();
		double bestF= recalcule();
		while(numOfTries-- >0){
			Expression[] newTry= new Expression[getArity()];
			for(int i=0; i<getArity(); i++)
				newTry[i]= generateRandomTree(Expression.maxDepth-dep);
			rebuild(newTry);
			double newF= this.fitness();
			if((fitness.maximization())?(bestF>newF):(bestF<newF))
				best= newTry;
		}
		rebuild(best);
	}