diff options
author | András Szabolcs Nagy | 2015-05-18 07:50:05 +0000 |
---|---|---|
committer | András Szabolcs Nagy | 2015-05-18 07:50:05 +0000 |
commit | 4847699d4088f299fe04d534ef08140c0fede276 (patch) | |
tree | 66dba13c5d1615f85efff64101c1b25bcb0fed8a | |
parent | cd8fd36d3597d9d4a5e1e15727f9746a4ef4377d (diff) | |
download | org.eclipse.viatra.examples-4847699d4088f299fe04d534ef08140c0fede276.tar.gz org.eclipse.viatra.examples-4847699d4088f299fe04d534ef08140c0fede276.tar.xz org.eclipse.viatra.examples-4847699d4088f299fe04d534ef08140c0fede276.zip |
[461205] Using the new genetic strategy API
3 files changed, 19 insertions, 36 deletions
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnGeneticTest.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnGeneticTest.java index 8b09938..4fca6bc 100644 --- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnGeneticTest.java +++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnGeneticTest.java @@ -13,18 +13,7 @@ public class BpmnGeneticTest { Logger.getRootLogger().setLevel(Level.ERROR); Logger.getLogger(this.getClass()).setLevel(Level.ALL); - new BpmnGeneticTestRunner() { - - @Override - public int getNumberOfTokens() { - return 100; - } - - @Override - public int getRateOfTokens() { - return 20; - } - }.runTests(); + new BpmnGeneticTestRunner().runTests(); } } diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnGeneticTestRunner.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnGeneticTestRunner.java index de1c055..eb2377f 100644 --- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnGeneticTestRunner.java +++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/genetic/BpmnGeneticTestRunner.java @@ -5,6 +5,7 @@ import java.util.List; import org.eclipse.incquery.runtime.exception.IncQueryException; import org.eclipse.viatra.dse.api.DSETransformationRule; +import org.eclipse.viatra.dse.api.DesignSpaceExplorer; import org.eclipse.viatra.dse.api.PatternWithCardinality; import org.eclipse.viatra.dse.base.GlobalContext; import org.eclipse.viatra.dse.examples.bpmn.dse.BpmnExamples; @@ -20,17 +21,16 @@ import org.eclipse.viatra.dse.examples.bpmn.rules.CreateResourceRule; import org.eclipse.viatra.dse.examples.bpmn.rules.MakeParallelRule; import org.eclipse.viatra.dse.examples.bpmn.rules.MakeSequentialRule; import org.eclipse.viatra.dse.examples.bpmn.statecoder.BpmnStateCoderFactory; -import org.eclipse.viatra.dse.genetic.api.GeneticDesignSpaceExplorer; +import org.eclipse.viatra.dse.genetic.api.GeneticStrategyBuilder; import org.eclipse.viatra.dse.genetic.core.GeneticSoftConstraintHardObjective; import org.eclipse.viatra.dse.genetic.core.InstanceData; import org.eclipse.viatra.dse.genetic.debug.GeneticDebugger; import org.eclipse.viatra.dse.genetic.debug.GeneticTestRunner; import org.eclipse.viatra.dse.genetic.debug.Row; -import org.eclipse.viatra.dse.genetic.selectors.NonDominatedAndCrowdingDistanceSelector; import org.eclipse.viatra.dse.objectives.Comparators; import org.eclipse.viatra.dse.objectives.impl.TrajectoryCostSoftObjective; -public abstract class BpmnGeneticTestRunner extends GeneticTestRunner { +public class BpmnGeneticTestRunner extends GeneticTestRunner { public static final int CONSTRAINT_WEIGHT = 10; public static final String MIN_RESOURCE_UTILIZATION = "MinResourceUtilization"; @@ -39,10 +39,6 @@ public abstract class BpmnGeneticTestRunner extends GeneticTestRunner { public static final String CONST_FULFILLMENT = "ConstFulfillment"; private String modelPath; - public abstract int getNumberOfTokens(); - - public abstract int getRateOfTokens(); - public BpmnGeneticTestRunner() { super(getGoals()); } @@ -58,45 +54,43 @@ public abstract class BpmnGeneticTestRunner extends GeneticTestRunner { } @Override - public GeneticDesignSpaceExplorer createGdse(Row configRow) throws IncQueryException { + public void configDSE(Row configRow, DesignSpaceExplorer dse, GeneticStrategyBuilder builder) throws IncQueryException { modelPath = configRow.getValueAsString(GeneticTestRunner.MODEL_PATH); - GeneticDesignSpaceExplorer gdse = new GeneticDesignSpaceExplorer(); - - - gdse.setStateCoderFactory(new BpmnStateCoderFactory()); + dse.setStateCoderFactory(new BpmnStateCoderFactory()); DSETransformationRule<?, ?> assignTaskRule = AssignVariantToTaskRule.createRule(); DSETransformationRule<?, ?> createResourceRule = CreateResourceRule.createRule(); DSETransformationRule<?, ?> makeParallelRule = MakeParallelRule.createRule(); DSETransformationRule<?, ?> makeSequentialRule = MakeSequentialRule.createRule(); - gdse.addTransformationRule(assignTaskRule, 3); - gdse.addTransformationRule(createResourceRule, 2); - gdse.addTransformationRule(makeParallelRule, 1); - gdse.addTransformationRule(makeSequentialRule, 1); - - gdse.setSelector(new NonDominatedAndCrowdingDistanceSelector()); + builder.setRulePriority(assignTaskRule, 3); + builder.setRulePriority(createResourceRule, 2); + builder.setRulePriority(makeParallelRule, 1); + builder.setRulePriority(makeSequentialRule, 1); + dse.addTransformationRule(assignTaskRule); + dse.addTransformationRule(createResourceRule); + dse.addTransformationRule(makeParallelRule); + dse.addTransformationRule(makeSequentialRule); - gdse.addObjective(new GeneticSoftConstraintHardObjective() + dse.addObjective(new GeneticSoftConstraintHardObjective() .withConstraint("LackOfResourceInstances", AbsenceOfResourceInstancesQuerySpecification.instance(), 1) .withConstraint("UnassignedTask", UnassignedTaskQuerySpecification.instance(), 10) .withConstraint("UnrequiredResources", UnrequiredResourceInstanceQuerySpecification.instance(), 100)); - gdse.addObjective(new AvgResponseTimeHardObjective() + dse.addObjective(new AvgResponseTimeHardObjective() .withComparator(Comparators.LOWER_IS_BETTER) .withLevel(2)); - gdse.addObjective(new MinResourceUsageSoftObjective() + dse.addObjective(new MinResourceUsageSoftObjective() .withComparator(Comparators.HIGHER_IS_BETTER) .withLevel(2)); - gdse.addObjective(new TrajectoryCostSoftObjective() + dse.addObjective(new TrajectoryCostSoftObjective() .withActivationCost(createResourceRule, new BpmnExamples.CostOfCreateResource()) .withRuleCost(makeSequentialRule, 1) .withRuleCost(makeParallelRule, 1) .withComparator(Comparators.LOWER_IS_BETTER) .withLevel(2)); - return gdse; } @Override diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/objectives/RunSimulationOnModel.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/objectives/RunSimulationOnModel.java index 4e40f7e..405c78c 100644 --- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/objectives/RunSimulationOnModel.java +++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/objectives/RunSimulationOnModel.java @@ -65,7 +65,7 @@ public class RunSimulationOnModel { return; } - Simulator simulator = new Simulator(modelRoot, 10, 20); + Simulator simulator = new Simulator(modelRoot, 100, 20); if (simulator.canSimulate()) { simulator.simulate(); |