/**
  * Constructor
  */
 public NondeterministicProblem(S initialState,
                                IActionsFunction <S, A> actionsFn, IResultsFunction <S, A> resultsFn,
                                GoalTest <S> goalTest, IStepCostFunction <S, A> stepCostFn)
 {
     this.initialState = initialState;
     this.actionsFn    = actionsFn;
     this.resultsFn    = resultsFn;
     this.goalTest     = goalTest;
     this.stepCostFn   = stepCostFn;
 }
 /**
  * Constructor
  */
 public NondeterministicProblem(S initialState,
                                IActionsFunction <S, A> actionsFn, IResultsFunction <S, A> resultsFn,
                                GoalTest <S> goalTest)
     : this(initialState, actionsFn, resultsFn, goalTest, new DefaultStepCostFunction <S, A>())
 {
 }