code: protected Set<Integer> getRemoveCandidates(SubsetSolution currentSolution){
          // get set of candidate IDs for removal
          Set<Integer> removeCandidates = currentSolution.getSelectedIDs();
          // remove fixed IDs, if any, from candidates
          if(fixedIDs != null && !fixedIDs.isEmpty()){
              removeCandidates = new LinkedHashSet<>(removeCandidates);
              removeCandidates.removeAll(fixedIDs);
          }
          return removeCandidates;
      }
docs: Infer the set of IDs that may be removed from the selection in the given subset solution. If no IDs
  were fixed at construction this method simply returns the set of currently selected IDs obtained
  by calling {@link SubsetSolution#getSelectedIDs()}. Else, it returns a copy of this (immutable)
  set from which all fixed IDs have been removed.
  
  @param currentSolution current subset solution
  @return set of IDs that may be removed