Skip to content

Commit

Permalink
Additional non-deterministic mode switching parameterization.
Browse files Browse the repository at this point in the history
  • Loading branch information
iridin committed Mar 1, 2016
1 parent 252e5c1 commit 168ad98
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,20 @@
*/
public class NonDetModeSwitchAnnealStateSpace {

public static final double startingNondeterminism = 0.0001;
public static final double DEFAULT_STARTING_NONDETERMINISM = 0.0001;

public final double startingNondeterminism;

private Map<Double, NonDetModeSwitchAnnealState> states;

public NonDetModeSwitchAnnealStateSpace(){
states = new HashMap<>();
startingNondeterminism = DEFAULT_STARTING_NONDETERMINISM;
}

public NonDetModeSwitchAnnealStateSpace(double startingNondeterminism){
states = new HashMap<>();
this.startingNondeterminism = startingNondeterminism;
}

public NonDetModeSwitchAnnealState getState(double nondeterminism){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,13 +85,27 @@ public class NonDeterministicModeSwitchingManager {
public Map<Double, NonDetModeSwitchFitness> energies;



public NonDeterministicModeSwitchingManager(long startTime, Class<? extends NonDetModeSwitchFitnessEval> evalClass) {
public NonDeterministicModeSwitchingManager(long startTime,
Class<? extends NonDetModeSwitchFitnessEval> evalClass) {
this.startTime = startTime;

init(NonDetModeSwitchAnnealStateSpace.DEFAULT_STARTING_NONDETERMINISM,
evalClass);
}

public NonDeterministicModeSwitchingManager(long startTime,
double startingNondeterminism,
Class<? extends NonDetModeSwitchFitnessEval> evalClass) {
this.startTime = startTime;
init(startingNondeterminism, evalClass);
}

public void init(double startingNondeterminism,
Class<? extends NonDetModeSwitchFitnessEval> evalClass) {
this.evalClass = evalClass;

currentNonDeterminismLevel = NonDetModeSwitchAnnealStateSpace.startingNondeterminism;
stateSpace = new NonDetModeSwitchAnnealStateSpace();
stateSpace = new NonDetModeSwitchAnnealStateSpace(startingNondeterminism);
currentNonDeterminismLevel = startingNondeterminism;
evaluators = new HashMap<>();
energies = new HashMap<>();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public class NonDeterministicModeSwitchingPlugin implements DEECoPlugin {
private Class<? extends NonDetModeSwitchFitnessEval> evalClass = null;
private long evalPeriod = 100;
private long reconfPeriod = 1000;
private double startingNondeterminism = 0.0001;

/** Plugin dependencies. */
@SuppressWarnings("unchecked")
Expand All @@ -66,6 +67,10 @@ public NonDeterministicModeSwitchingPlugin withReconfigPeriod(long reconfPeriod)
return this;
}

public NonDeterministicModeSwitchingPlugin withStartingNondetermoinism(double nondeterminism) {
this.startingNondeterminism = nondeterminism;
return this;
}

/* (non-Javadoc)
* @see cz.cuni.mff.d3s.deeco.runtime.DEECoPlugin#getDependencies()
Expand All @@ -84,7 +89,9 @@ public void init(DEECoContainer container) throws PluginInitFailedException {
container.getProcessor().addExtension(nonDetModeAwareAnnotationProcessor);

try {
final NonDeterministicModeSwitchingManager manager = new NonDeterministicModeSwitchingManager(startTime, evalClass);
final NonDeterministicModeSwitchingManager manager =
new NonDeterministicModeSwitchingManager(startTime,
startingNondeterminism, evalClass);

container.deployComponent(manager);
} catch (AnnotationProcessorException e) {
Expand Down

0 comments on commit 168ad98

Please sign in to comment.