From b7ed3353ba34dd837bfc15f7e48c30a2cdc7ce75 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Wed, 22 May 2019 20:38:53 -0400 Subject: MDEOptimiser implementation of CPS benchmark --- .../mdeo/NotAllocatedAppInstancesConstraint.xtend | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.xtend (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.xtend') 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 new file mode 100644 index 00000000..663aa26c --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.xtend @@ -0,0 +1,24 @@ +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 + } +} -- cgit v1.2.3-70-g09d2