From d46494bb753225652f48e42f47411297693a03ab Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Tue, 29 Oct 2019 16:40:23 +0100 Subject: Remove MDEOptimiser dependency --- .../domains/cps/mdeo/CpsMdeOptimiserMain.xtend | 57 ---------------------- .../mdeo/NonRedundantAllocationsConstraint.xtend | 29 ----------- .../mdeo/NotAllocatedAppInstancesConstraint.xtend | 24 --------- .../mdeo/NotSatisfiedRequirementsConstraint.xtend | 27 ---------- .../domains/cps/mdeo/ResourceUtilizationUtil.xtend | 31 ------------ .../cps/mdeo/TooLowAverageHddConstraint.xtend | 33 ------------- .../cps/mdeo/TooLowAverageMemoryConstraint.xtend | 33 ------------- .../cps/mdeo/TotalCostFitnessFunction.xtend | 23 --------- .../cps/mdeo/UnavailableHddConstraint.xtend | 27 ---------- .../cps/mdeo/UnavailableMemoryConstraint.xtend | 27 ---------- .../mit/inf/dslreasoner/domains/cps/mdeo/cps.mopt | 43 ---------------- 11 files changed, 354 deletions(-) delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.xtend delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.xtend delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.xtend delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.xtend delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.xtend delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.xtend delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.xtend delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.xtend delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.xtend delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.xtend delete mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/cps.mopt (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner') 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 deleted file mode 100644 index 4a4b7a87..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.xtend +++ /dev/null @@ -1,57 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo - -import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage -import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator -import java.io.BufferedReader -import java.io.BufferedWriter -import java.io.FileReader -import java.io.FileWriter -import java.util.Map -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.interfaces.cli.Run - -class CpsMdeOptimiserMain { - static val PROJECT_PATH = "." - static val PROBLEM_PATH = "model/problem.xmi" - static val MOPT_PATH = "src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/cps.mopt" - - private new() { - new IllegalStateException("This is a static utility class and should not be instantiated directly.") - } - - public static def void main(String[] args) { - Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, - new XMIResourceFactoryImpl) - EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE) - val generator = new CpsGenerator(1, 4, 1) - val problem = generator.generateCpsProblem - problem.eResource.URI = URI.createFileURI(PROBLEM_PATH) - problem.eResource.save(emptyMap) - fixupHenshinModel("model/cps.henshin", "model/cps_fixup.henshin", #{"cps.ecore" -> CpsPackage.eNS_URI}) - Run.main(#["-p", PROJECT_PATH, "-m", MOPT_PATH]) - } - - private def static void fixupHenshinModel(String originalPath, String outputPath, Map remapMap) { - val reader = new BufferedReader(new FileReader(originalPath)) - try { - val writer = new BufferedWriter(new FileWriter(outputPath)) - try { - var String line - while ((line = reader.readLine) !== null) { - for (entry : remapMap.entrySet) { - line = line.replace(entry.key, entry.value) - } - writer.write(line) - writer.write("\n") - } - } finally { - writer.close - } - } finally { - reader.close - } - } -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.xtend deleted file mode 100644 index 1a9286b3..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.xtend +++ /dev/null @@ -1,29 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo - -import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution -import com.google.common.collect.HashMultiset - -class NonRedundantAllocationsConstraint implements IGuidanceFunction { - override getName() { - "NonRedundantAllocations" - } - - override computeFitness(Solution solution) { - val cps = solution.model as CyberPhysicalSystem - var int cost = 0 - for (hostType : cps.hostTypes) { - for (host : hostType.instances) { - val bins = HashMultiset.create - for (app : host.applications) { - bins.add(app.requirement) - } - for (entry : bins.entrySet) { - cost += entry.count - 1 - } - } - } - cost - } -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.xtend deleted file mode 100644 index 663aa26c..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.xtend +++ /dev/null @@ -1,24 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo - -import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution - -class NotAllocatedAppInstancesConstraint implements IGuidanceFunction { - override getName() { - "NotAllocatedAppInstances" - } - - override computeFitness(Solution solution) { - val cps = solution.model as CyberPhysicalSystem - var int cost = 0 - for (appType : cps.applicationTypes) { - for (app : appType.instances) { - if (app.allocatedTo === null || !appType.requirements.exists[hostType == app.allocatedTo.type]) { - cost++ - } - } - } - cost - } -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.xtend deleted file mode 100644 index e44381ec..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.xtend +++ /dev/null @@ -1,27 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo - -import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution - -class NotSatisfiedRequirementsConstraint implements IGuidanceFunction { - override getName() { - "NotSatisfiedRequirements" - } - - override computeFitness(Solution solution) { - val cps = solution.model as CyberPhysicalSystem - var int cost = 0 - for (request : cps.requests) { - for (requirement : request.requirements) { - cost += Math.abs(requirement.count - requirement.instances.size) - for (app : requirement.instances) { - if (app.type != requirement.type) { - cost++ - } - } - } - } - cost - } -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.xtend deleted file mode 100644 index fc1d666f..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.xtend +++ /dev/null @@ -1,31 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo - -import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance - -class ResourceUtilizationUtil { - private new() { - new IllegalStateException("This is a static utility class and should not be instantiated directly.") - } - - static def getMemoryUtilization(HostInstance host) { - var int utilization = 0 - for (app : host.applications) { - val req = app.type.requirements.findFirst[hostType == host.type] - if (req !== null) { - utilization += req.requiredMemory - } - } - utilization - } - - static def getHddUtilization(HostInstance host) { - var int utilization = 0 - for (app : host.applications) { - val req = app.type.requirements.findFirst[hostType == host.type] - if (req !== null) { - utilization += req.requiredHdd - } - } - utilization - } -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.xtend deleted file mode 100644 index 85cc8115..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.xtend +++ /dev/null @@ -1,33 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo - -import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution - -class TooLowAverageHddConstraint implements IGuidanceFunction { - static val THRESHOLD = 0.25 - - override getName() { - "TooLowAverageHdd" - } - - override computeFitness(Solution solution) { - val cps = solution.model as CyberPhysicalSystem - var double sumUtilization - var int numHosts - for (hostType : cps.hostTypes) { - numHosts += hostType.instances.size - for (host : hostType.instances) { - val utilization = ResourceUtilizationUtil.getHddUtilization(host) - sumUtilization += (utilization as double) / hostType.defaultHdd - } - } - val averageUtilization = sumUtilization / numHosts - val difference = THRESHOLD - averageUtilization - if (difference > 0) { - difference - } else { - 0 - } - } -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.xtend deleted file mode 100644 index e9b47d4c..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.xtend +++ /dev/null @@ -1,33 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo - -import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution - -class TooLowAverageMemoryConstraint implements IGuidanceFunction { - static val THRESHOLD = 0.25 - - override getName() { - "TooLowAverageMemory" - } - - override computeFitness(Solution solution) { - val cps = solution.model as CyberPhysicalSystem - var double sumUtilization - var int numHosts - for (hostType : cps.hostTypes) { - numHosts += hostType.instances.size - for (host : hostType.instances) { - val utilization = ResourceUtilizationUtil.getMemoryUtilization(host) - sumUtilization += (utilization as double) / hostType.defaultMemory - } - } - val averageUtilization = sumUtilization / numHosts - val difference = THRESHOLD - averageUtilization - if (difference > 0) { - difference - } else { - 0 - } - } -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.xtend deleted file mode 100644 index af65e442..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.xtend +++ /dev/null @@ -1,23 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo - -import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution - -class TotalCostFitnessFunction implements IGuidanceFunction { - override getName() { - "TotalCost" - } - - override computeFitness(Solution solution) { - val cps = solution.model as CyberPhysicalSystem - var int cost = 0 - for (appType : cps.applicationTypes) { - cost += 5 * appType.instances.size - } - for (hostType : cps.hostTypes) { - cost += hostType.cost * hostType.instances.size - } - cost - } -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.xtend deleted file mode 100644 index 08450f45..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.xtend +++ /dev/null @@ -1,27 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo - -import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution - -class UnavailableHddConstraint implements IGuidanceFunction { - override getName() { - "UnavailableHdd" - } - - override computeFitness(Solution solution) { - val cps = solution.model as CyberPhysicalSystem - var int cost = 0 - for (hostType : cps.hostTypes) { - for (host : hostType.instances) { - val utilization = ResourceUtilizationUtil.getHddUtilization(host) - val difference = utilization - hostType.defaultHdd - if (difference > 0) { - cost += difference - } - } - } - cost - } - -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.xtend deleted file mode 100644 index e46d59a6..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.xtend +++ /dev/null @@ -1,27 +0,0 @@ -package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo - -import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction -import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution - -class UnavailableMemoryConstraint implements IGuidanceFunction { - override getName() { - "UnavailableMemory" - } - - override computeFitness(Solution solution) { - val cps = solution.model as CyberPhysicalSystem - var int cost = 0 - for (hostType : cps.hostTypes) { - for (host : hostType.instances) { - val utilization = ResourceUtilizationUtil.getMemoryUtilization(host) - val difference = utilization - hostType.defaultMemory - if (difference > 0) { - cost += difference - } - } - } - cost - } - -} diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/cps.mopt b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/cps.mopt deleted file mode 100644 index 67fe7508..00000000 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/cps.mopt +++ /dev/null @@ -1,43 +0,0 @@ -problem { - basepath - metamodel - model -} - -goal { - objective TotalCost minimise java { "hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.TotalCostFitnessFunction" } - constraint NotSatisfiedRequriements java { "hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.NotSatisfiedRequirementsConstraint" } - constraint NotAllocatedAppInstances java { "hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.NotAllocatedAppInstancesConstraint" } - constraint NonRedundantAllocations java { "hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.NonRedundantAllocationsConstraint" } - constraint UnavailableMemory java { "hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.UnavailableMemoryConstraint" } - constraint UnavailableHdd java { "hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.UnavailableHddConstraint" } - constraint TooLowAverageMemory java { "hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.TooLowAverageMemoryConstraint" } - constraint TooLowAverageHdd java { "hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.TooLowAverageHddConstraint" } -} - -search { -// mutate using unit "createAppInstance" -// mutate using unit "deleteAppInstance" -// mutate using unit "createHostInstance" -// mutate using unit "deleteHostInstance" -// mutate using unit "allocate" -// mutate using unit "unallocate" -// mutate using unit "reallocate" - mutate { "ApplicationInstance" } - mutate { "HostInstance" } -} - -solver { - optimisation provider moea algorithm NSGAII { - variation: mutation - population: 25 - mutation.step: 3 - mutation.strategy: random - } - - termination { - time: 120 - } - - batches 1 -} -- cgit v1.2.3-54-g00ecf