code: public static <A, S, C extends Comparable<C>, N extends HeuristicNode<A, S, C, N>> HillClimbing<A, S, C, N> createHillClimbing(
  			SearchProblem<A, S, N> components, boolean enforced) {
  		return new HillClimbing<A, S, C, N>(components.getInitialNode(), components.getExpander(), enforced);
  	}
docs: Instantiates a Hill Climbing algorithm given a problem definition.
  
  @param components
  search problem definition with the components of the algorithm
  @param enforced
  flag to use Enforced Hill Climbing instead of classic Hill
  Climbing algorithm
  @param <A>
  type of the actions
  @param <S>
  type of the states
  @param <C>
  type of the cost
  @param <N>
  type of the nodes
  @return instance of
  {@link es.usc.citius.hipster.algorithm.localsearch.HillClimbing}
  for the problem definition