package bsearch.algorithms;
import java.util.HashMap;
public strictfp class MutationHillClimber extends SimulatedAnnealing {
public MutationHillClimber()
{
}
public String getName() {
return "MutationHillClimber";
}
public String getDescription() {
return "A random mutation hill climber starts at a random location in the search space, and repeatedly tries mutating its location and moving if it improves fitness. Sometimes called a stochastic hill climber, and also very similar to a 1+1 evolutionary strategy";
}
public void setSearchParams( HashMap<String , String> searchMethodParams ) throws SearchParameterException
{
HashMap<String,String> params = new HashMap<String,String>(searchMethodParams);
params.put("initial-temperature", "0.0");
params.put("temperature-change-factor", "0.0");
super.setSearchParams(params);
}
public HashMap<String , String> getSearchParams()
{
HashMap<String,String> params = super.getSearchParams();
params.remove("initial-temperature");
params.remove("temperature-change-factor");
return params;
}
public HashMap<String , String> getSearchParamsHelp()
{
HashMap<String,String> params = new HashMap<String,String>();
params.put("mutation-rate", "controls how much mutation occurs when choosing a new location to try to climb uphill");
params.put("restart-after-stall-count", "if it can't find an uphill location after X attempts, jump to a random location in the search space and start climbing again.");
return params;
}
}