private int[] simulatedAnnealingDecode(DecodeHelper helper, int steps, int tries){
		Sentence globalBest = null;
		for(int n=0; n<tries; n++){
			Sentence curr = new Sentence(helper);
			if(n == 0) globalBest = curr;
			boolean betterSentenceFound = true;
			while(betterSentenceFound){
				betterSentenceFound = false;
				for(int i=0; i<steps; i++){
					Sentence s = new Sentence(curr);
					for(int m=0; m<5; m++){
						s.mutate();
						s.recalculateScore();
						if(s.score > curr.score){
							betterSentenceFound = true;
							curr = s;
							if(curr.score > globalBest.score){
								globalBest = curr;
								//helper.printAlignmentArray(curr.sentence);
							}
							break;
						}
					}
					if(betterSentenceFound) break;
				}
			}		
		}
		return globalBest.sentence;
	}