aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.xtend
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-05-22 20:38:53 -0400
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-05-22 20:38:53 -0400
commitb7ed3353ba34dd837bfc15f7e48c30a2cdc7ce75 (patch)
tree53e966837f2403b47e62f978bc777d6fe93ce10a /Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.xtend
parentVIATRA DSE and COIN-OR CBC implementations of CPS case study (diff)
downloadVIATRA-Generator-b7ed3353ba34dd837bfc15f7e48c30a2cdc7ce75.tar.gz
VIATRA-Generator-b7ed3353ba34dd837bfc15f7e48c30a2cdc7ce75.tar.zst
VIATRA-Generator-b7ed3353ba34dd837bfc15f7e48c30a2cdc7ce75.zip
MDEOptimiser implementation of CPS benchmark
Diffstat (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.xtend')
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.xtend24
1 files changed, 24 insertions, 0 deletions
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 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem
4import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction
5import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution
6
7class NotAllocatedAppInstancesConstraint implements IGuidanceFunction {
8 override getName() {
9 "NotAllocatedAppInstances"
10 }
11
12 override computeFitness(Solution solution) {
13 val cps = solution.model as CyberPhysicalSystem
14 var int cost = 0
15 for (appType : cps.applicationTypes) {
16 for (app : appType.instances) {
17 if (app.allocatedTo === null || !appType.requirements.exists[hostType == app.allocatedTo.type]) {
18 cost++
19 }
20 }
21 }
22 cost
23 }
24}