package edu.neu.ccs.evergreen.state; import edu.neu.ccs.evergreen.model.Assignments; import edu.neu.ccs.evergreen.model.State; /** * Class used to control the next decision that is made by the system. */ public interface NextState { /** * Get the next state of the system. * * @param state * Current state * @param maxOriginalVariable * Maximum variable in original formula * @param bestAssignments Best assignment so far * @return Next state */ public State getNextState(State state, int maxOriginalVariable, Assignments bestAssignments); /** * Create the base best assignments. * @param state Base state * @return Assignments */ public Assignments initBestAssignments(State state); /** * Update the best assignments found so far. * @param state State at time of error * @param bestAssignments Current best assignments * @return Updated best assignments */ public Assignments updateBestAssignments(State state, Assignments bestAssignments); }