private static int determineNext(
     List<TransitionTable> frontier, IntSet remainingVariableIds, int countPerSplit) {
   double maxEntropy = -Double.MAX_VALUE;
   int maxVariable = remainingVariableIds.iterator().nextInt();
   for (int variable : remainingVariableIds) {
     double entropy = frontierEntropy(frontier, variable, countPerSplit);
     if (entropy > maxEntropy) {
       maxEntropy = entropy;
       maxVariable = variable;
     }
   }
   return maxVariable;
 }