aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.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/UnavailableHddConstraint.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/UnavailableHddConstraint.xtend')
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.xtend27
1 files changed, 27 insertions, 0 deletions
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
new file mode 100644
index 00000000..08450f45
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.xtend
@@ -0,0 +1,27 @@
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 UnavailableHddConstraint implements IGuidanceFunction {
8 override getName() {
9 "UnavailableHdd"
10 }
11
12 override computeFitness(Solution solution) {
13 val cps = solution.model as CyberPhysicalSystem
14 var int cost = 0
15 for (hostType : cps.hostTypes) {
16 for (host : hostType.instances) {
17 val utilization = ResourceUtilizationUtil.getHddUtilization(host)
18 val difference = utilization - hostType.defaultHdd
19 if (difference > 0) {
20 cost += difference
21 }
22 }
23 }
24 cost
25 }
26
27}