public void bitSwap(double tempurature){
    	Chromasome child = new Chromasome();
    	int index = 0;
		while (index < child.chromasome.length) {//Copy the current chromasome to the child as a base, before we flip it
			child.chromasome[index] = currentChromasome.chromasome[index];
			index++;
		}
		/*int toSwap = rand.nextInt(child.chromasome.length);
		if(child.chromasome[toSwap] == 1)child.chromasome[toSwap] = 0;
		else child.chromasome[toSwap] = 1;*/
		child.mutate();
		
        if ((child.getFitness() > currentChromasome.getFitness()) || (child.getFitness() > 0 && 
           !Constants.foolish &&  Math.exp(((double)(currentChromasome.getFitness() - child.getFitness())) / temperature) > rand.nextDouble()))
        {
            currentChromasome = child;
            if(child.isFeasible()) GA.currentFeasibleBest = child;
            GA.currentBest = child;
        }
    }