public List<String> getBestViterbiPath() {
	  Iterator<String> myIt=ViterbiEndpoint.keySet().iterator();
	  String myStr, bestStr="";
	  double bestVal=0;
	  boolean entered=false;
	  while (myIt.hasNext()) {
		myStr=myIt.next();
		if (!entered || bestVal< ViterbiEndpoint.get(myStr)) 
		{bestVal=ViterbiEndpoint.get(myStr);bestStr=myStr;entered=true;}		
	  }
	  if (!entered) { return (new ArrayList<String>()); }
	  return ViterbiPath.get(bestStr);
	}