From cd63ccf6fba2a812a9b115635bbd209c92cebad0 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sun, 9 Jun 2019 15:13:00 -0400 Subject: Bump MDEOptimizer version https://github.com/mde-optimiser/mde_optimiser/issues/49 --- .../domains/cps/mdeo/CpsMdeOptimiserMain.xtend | 5 +- .../cps/mdeo/ExcludedOptimisationInterpreter.xtend | 85 --------------------- .../domains/cps/cplex/.CpsToLpTranslator.xtendbin | Bin 11104 -> 11104 bytes .../domains/cps/dse/.CpsStateCoder.xtendbin | Bin 7626 -> 7626 bytes .../domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin | Bin 6286 -> 6069 bytes .../mdeo/.ExcludedOptimisationInterpreter.xtendbin | Bin 7559 -> 0 bytes .../domains/cps/mdeo/CpsMdeOptimiserMain.java | 7 +- .../domains/cps/mdeo/ExcludedMoeaOptimisation.java | 54 ------------- .../cps/mdeo/ExcludedOptimisationInterpreter.java | 31 -------- .../dslreasoner/domains/cps/mdeo/ExcludedRun.java | 24 ------ 10 files changed, 4 insertions(+), 202 deletions(-) delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.xtend delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbin delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedMoeaOptimisation.java delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.java delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedRun.java (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps') diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.xtend index 459c6ab7..4a4b7a87 100644 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.xtend +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.xtend @@ -11,7 +11,7 @@ import org.eclipse.emf.common.util.URI import org.eclipse.emf.ecore.EPackage import org.eclipse.emf.ecore.resource.Resource import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl -import uk.ac.kcl.inf.mdeoptimiser.languages.MoptStandaloneSetup +import uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run class CpsMdeOptimiserMain { static val PROJECT_PATH = "." @@ -31,8 +31,7 @@ class CpsMdeOptimiserMain { problem.eResource.URI = URI.createFileURI(PROBLEM_PATH) problem.eResource.save(emptyMap) fixupHenshinModel("model/cps.henshin", "model/cps_fixup.henshin", #{"cps.ecore" -> CpsPackage.eNS_URI}) - val injector = new MoptStandaloneSetup().createInjectorAndDoEMFRegistration(); - injector.getInstance(ExcludedRun).run(PROJECT_PATH, MOPT_PATH) + Run.main(#["-p", PROJECT_PATH, "-m", MOPT_PATH]) } private def static void fixupHenshinModel(String originalPath, String outputPath, Map remapMap) { diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.xtend deleted file mode 100644 index 1e9c5adf..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.xtend +++ /dev/null @@ -1,85 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo - -import java.util.Properties -import org.moeaframework.Executor -import org.moeaframework.Instrumenter -import org.moeaframework.algorithm.PeriodicAction -import org.moeaframework.core.TerminationCondition -import org.moeaframework.core.spi.AlgorithmFactory -import uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run -import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.Optimisation -import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.SolverSpec -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.OptimisationInterpreter -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.executor.SolutionGenerator -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.MoeaOptimisation -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.algorithms.MoeaOptimisationAlgorithmProvider -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.instrumentation.PopulationCollector -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.problem.MoeaOptimisationProblem -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.operators.adaptation.MutationStepSizeStrategyFactory -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.output.MDEOBatch - -class ExcludedMoeaOptimisation extends MoeaOptimisation { - SolutionGenerator solutionGenerator - Instrumenter algorithmStepSizeInstrumenter - - override execute(SolverSpec solverSpec, SolutionGenerator solutionGenerator) { - this.solutionGenerator = solutionGenerator - super.execute(solverSpec, solutionGenerator) - } - - override Instrumenter runOptimisation(SolverSpec solverSpec, Properties optimisationProperties) { - val algorithmFactory = new AlgorithmFactory - algorithmFactory.addProvider(new MoeaOptimisationAlgorithmProvider) - - algorithmStepSizeInstrumenter = new Instrumenter().addExcludedPackage("org.eclipse").withProblemClass( - MoeaOptimisationProblem, solutionGenerator).attachApproximationSetCollector().attachElapsedTimeCollector(). - attachPopulationSizeCollector.attach(new PopulationCollector()).withFrequency(1).withFrequencyType( - PeriodicAction.FrequencyType.STEPS) - - var stepSizeStrategy = new MutationStepSizeStrategyFactory(solverSpec.algorithm, algorithmStepSizeInstrumenter). - strategy - - solutionGenerator.setMutationStepSizeStrategy(stepSizeStrategy) - - // TODO: Place this in a better location. - // Exclude JDK packages from Instrumenter - this.algorithmStepSizeInstrumenter.addExcludedPackage("jdk") - - new Executor().usingAlgorithmFactory(algorithmFactory).withAlgorithm(solverSpec.algorithm.name) // Initialize problem with our solution generator - .withProblemClass(MoeaOptimisationProblem, solutionGenerator).withProperties(optimisationProperties). - withInstrumenter(algorithmStepSizeInstrumenter).withTerminationCondition( - optimisationProperties.get("terminationCondition") as TerminationCondition).run() - - return algorithmStepSizeInstrumenter - } -} - -class ExcludedOptimisationInterpreter extends OptimisationInterpreter { - val Optimisation model - - new(String projectPath, Optimisation model) { - super(projectPath, model) - this.model = model - } - - override start() { - // This model provider loads the model given by the user in the DSL - var solutionGenerator = new SolutionGenerator(model, getBreedingOperators, getMutationOperators, - getModelProvider, getMetamodel); - - return new ExcludedMoeaOptimisation().execute(model.solver, solutionGenerator) - } - -} - -class ExcludedRun extends Run { - override runBatch(String moptProjectPath, Optimisation optimisationModel, Integer batch, boolean singleBatch) { - val optimisationInterpreter = new ExcludedOptimisationInterpreter(moptProjectPath, optimisationModel); - val startTime = System.nanoTime(); - val optimisationOutcome = optimisationInterpreter.start(); - val endTime = System.nanoTime(); - val experimentDuration = ((endTime - startTime) / 1000000); - val generatedRules = optimisationInterpreter.getRulegenOperators(); - return new MDEOBatch(batch, experimentDuration, optimisationOutcome, generatedRules, singleBatch); - } -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin index fd8995c0..9acd8621 100644 Binary files a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin and b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin differ diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin index afdf61a1..ee672cb1 100644 Binary files a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin and b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin differ diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin index e8035410..b9f0df1a 100644 Binary files a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin and b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin differ diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbin deleted file mode 100644 index 315d1748..00000000 Binary files a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbin and /dev/null differ diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java index 7a2a7e99..c047f255 100644 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java @@ -1,10 +1,8 @@ package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; -import com.google.inject.Injector; import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage; import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator; -import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedRun; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; @@ -19,7 +17,7 @@ import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; import org.eclipse.xtext.xbase.lib.CollectionLiterals; import org.eclipse.xtext.xbase.lib.Exceptions; import org.eclipse.xtext.xbase.lib.Pair; -import uk.ac.kcl.inf.mdeoptimiser.languages.MoptStandaloneSetup; +import uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run; @SuppressWarnings("all") public class CpsMdeOptimiserMain { @@ -46,8 +44,7 @@ public class CpsMdeOptimiserMain { problem.eResource().save(CollectionLiterals.emptyMap()); Pair _mappedTo = Pair.of("cps.ecore", CpsPackage.eNS_URI); CpsMdeOptimiserMain.fixupHenshinModel("model/cps.henshin", "model/cps_fixup.henshin", Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo))); - final Injector injector = new MoptStandaloneSetup().createInjectorAndDoEMFRegistration(); - injector.getInstance(ExcludedRun.class).run(CpsMdeOptimiserMain.PROJECT_PATH, CpsMdeOptimiserMain.MOPT_PATH); + Run.main(new String[] { "-p", CpsMdeOptimiserMain.PROJECT_PATH, "-m", CpsMdeOptimiserMain.MOPT_PATH }); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedMoeaOptimisation.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedMoeaOptimisation.java deleted file mode 100644 index 52d3f665..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedMoeaOptimisation.java +++ /dev/null @@ -1,54 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; - -import java.util.Properties; -import org.moeaframework.Executor; -import org.moeaframework.Instrumenter; -import org.moeaframework.algorithm.PeriodicAction; -import org.moeaframework.core.TerminationCondition; -import org.moeaframework.core.spi.AlgorithmFactory; -import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.AlgorithmSpec; -import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.SolverSpec; -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.executor.SolutionGenerator; -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.MoeaOptimisation; -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.algorithms.MoeaOptimisationAlgorithmProvider; -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.instrumentation.PopulationCollector; -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.problem.MoeaOptimisationProblem; -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.operators.adaptation.MutationStepSizeStrategy; -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.operators.adaptation.MutationStepSizeStrategyFactory; - -@SuppressWarnings("all") -public class ExcludedMoeaOptimisation extends MoeaOptimisation { - private SolutionGenerator solutionGenerator; - - private Instrumenter algorithmStepSizeInstrumenter; - - @Override - public Instrumenter execute(final SolverSpec solverSpec, final SolutionGenerator solutionGenerator) { - Instrumenter _xblockexpression = null; - { - this.solutionGenerator = solutionGenerator; - _xblockexpression = super.execute(solverSpec, solutionGenerator); - } - return _xblockexpression; - } - - @Override - public Instrumenter runOptimisation(final SolverSpec solverSpec, final Properties optimisationProperties) { - final AlgorithmFactory algorithmFactory = new AlgorithmFactory(); - MoeaOptimisationAlgorithmProvider _moeaOptimisationAlgorithmProvider = new MoeaOptimisationAlgorithmProvider(); - algorithmFactory.addProvider(_moeaOptimisationAlgorithmProvider); - Instrumenter _attachPopulationSizeCollector = new Instrumenter().addExcludedPackage("org.eclipse").withProblemClass( - MoeaOptimisationProblem.class, this.solutionGenerator).attachApproximationSetCollector().attachElapsedTimeCollector().attachPopulationSizeCollector(); - PopulationCollector _populationCollector = new PopulationCollector(); - this.algorithmStepSizeInstrumenter = _attachPopulationSizeCollector.attach(_populationCollector).withFrequency(1).withFrequencyType( - PeriodicAction.FrequencyType.STEPS); - AlgorithmSpec _algorithm = solverSpec.getAlgorithm(); - MutationStepSizeStrategy stepSizeStrategy = new MutationStepSizeStrategyFactory(_algorithm, this.algorithmStepSizeInstrumenter).getStrategy(); - this.solutionGenerator.setMutationStepSizeStrategy(stepSizeStrategy); - this.algorithmStepSizeInstrumenter.addExcludedPackage("jdk"); - Object _get = optimisationProperties.get("terminationCondition"); - new Executor().usingAlgorithmFactory(algorithmFactory).withAlgorithm(solverSpec.getAlgorithm().getName()).withProblemClass(MoeaOptimisationProblem.class, this.solutionGenerator).withProperties(optimisationProperties).withInstrumenter(this.algorithmStepSizeInstrumenter).withTerminationCondition( - ((TerminationCondition) _get)).run(); - return this.algorithmStepSizeInstrumenter; - } -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.java deleted file mode 100644 index 90641d73..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.java +++ /dev/null @@ -1,31 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; - -import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedMoeaOptimisation; -import java.util.List; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.henshin.model.Unit; -import org.moeaframework.Instrumenter; -import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.Optimisation; -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IModelProvider; -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.OptimisationInterpreter; -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.executor.SolutionGenerator; - -@SuppressWarnings("all") -public class ExcludedOptimisationInterpreter extends OptimisationInterpreter { - private final Optimisation model; - - public ExcludedOptimisationInterpreter(final String projectPath, final Optimisation model) { - super(projectPath, model); - this.model = model; - } - - @Override - public Instrumenter start() { - List _breedingOperators = this.getBreedingOperators(); - List _mutationOperators = this.getMutationOperators(); - IModelProvider _modelProvider = this.getModelProvider(); - EPackage _metamodel = this.getMetamodel(); - SolutionGenerator solutionGenerator = new SolutionGenerator(this.model, _breedingOperators, _mutationOperators, _modelProvider, _metamodel); - return new ExcludedMoeaOptimisation().execute(this.model.getSolver(), solutionGenerator); - } -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedRun.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedRun.java deleted file mode 100644 index 76f12e79..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedRun.java +++ /dev/null @@ -1,24 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; - -import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedOptimisationInterpreter; -import java.util.List; -import java.util.Map; -import org.eclipse.emf.ecore.EPackage; -import org.moeaframework.Instrumenter; -import uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run; -import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.Optimisation; -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.output.MDEOBatch; - -@SuppressWarnings("all") -public class ExcludedRun extends Run { - @Override - public MDEOBatch runBatch(final String moptProjectPath, final Optimisation optimisationModel, final Integer batch, final boolean singleBatch) { - final ExcludedOptimisationInterpreter optimisationInterpreter = new ExcludedOptimisationInterpreter(moptProjectPath, optimisationModel); - final long startTime = System.nanoTime(); - final Instrumenter optimisationOutcome = optimisationInterpreter.start(); - final long endTime = System.nanoTime(); - final long experimentDuration = ((endTime - startTime) / 1000000); - final Map> generatedRules = optimisationInterpreter.getRulegenOperators(); - return new MDEOBatch(batch, experimentDuration, optimisationOutcome, generatedRules, singleBatch); - } -} -- cgit v1.2.3-54-g00ecf