public double kinship(Individual individual) {
		if(this==individual) return 1;
		Expression other= (Expression) individual;
		double k=0;
		double mF= this.fitness();
		double hF= other.fitness();
		k=(64-Math.abs(mF-hF))*(mF+hF/2)/64;
		k= k/Math.abs(depth()-other.depth());
		if(this.isLeaf()^other.isLeaf()) k/= 3;
		else if(isLeaf()){
			if(((Leaf) this).equals((Leaf)other))k/= 2;
		}else if(getClass() != other.getClass()) k/= 1.5;
		
		return k;
	}