public int getFitness(){
		int totalValue = 0;
		int totalSize = 0;
		for(int i = 0; i < chromasome.length; i++){
			if(chromasome[i] == 1){
				totalValue += Constants.items.get(i).value;
				totalSize += Constants.items.get(i).size;
			}
		}
		this.itemSize = totalSize;
		int sizeOver = 0;
		if(totalSize > Constants.sizeConstraint){
			sizeOver = totalSize - Constants.sizeConstraint;
			isFeasible = false;
		}
		else isFeasible = true;
		if(!this.isFeasible && GA.currentBest != null && GA.currentBest.isFeasible){
			this.fitness = (int) (GA.currentBest.getFitness() - (sizeOver * Constants.penaltyModifier));
		}
		else if(!this.isFeasible && GA.currentFeasibleBest != null){
			this.fitness = (int) (GA.currentFeasibleBest.getFitness() - (sizeOver * Constants.penaltyModifier));
		}
		else this.fitness = (int) (totalValue - (Constants.penaltyModifier * sizeOver));
		return this.fitness;
	}