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 --- .../cps/mdeo/UnavailableMemoryConstraint.java | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.java (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.java') diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.java new file mode 100644 index 00000000..a9be9f1f --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.java @@ -0,0 +1,45 @@ +package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; + +import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; +import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance; +import hu.bme.mit.inf.dslreasoner.domains.cps.HostType; +import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction; +import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution; + +@SuppressWarnings("all") +public class UnavailableMemoryConstraint implements IGuidanceFunction { + @Override + public String getName() { + return "UnavailableMemory"; + } + + @Override + public double computeFitness(final Solution solution) { + int _xblockexpression = (int) 0; + { + EObject _model = solution.getModel(); + final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model); + int cost = 0; + EList _hostTypes = cps.getHostTypes(); + for (final HostType hostType : _hostTypes) { + EList _instances = hostType.getInstances(); + for (final HostInstance host : _instances) { + { + final int utilization = ResourceUtilizationUtil.getMemoryUtilization(host); + int _defaultMemory = hostType.getDefaultMemory(); + final int difference = (utilization - _defaultMemory); + if ((difference > 0)) { + int _cost = cost; + cost = (_cost + difference); + } + } + } + } + _xblockexpression = cost; + } + return _xblockexpression; + } +} -- cgit v1.2.3-70-g09d2