package edu.neu.ccs.evergreen.state; import java.util.Random; import org.apache.log4j.Logger; import edu.neu.ccs.evergreen.model.Assignments; import edu.neu.ccs.evergreen.model.State; /** * Use a fair coin to decide if the next variable is true or false. */ public class FairNextState extends BiasNextState { private static final Logger LOGGER = Logger.getLogger(FairNextState.class); /** * Create a new coin flipper with an optional seed. * @param args Arguments */ public FairNextState(String args[]) { long seed = 1; if (args.length > 0) { seed = Long.parseLong(args[0], 10); } random = new Random(seed); LOGGER.info("Using random seed of " + seed); } @Override protected double calculateBias(State state, int maxOriginalVariable, Assignments bestAssignments) { return 0.5; } @Override protected boolean doRefresh() { return doRefresh; } }