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/TooLowAverageHddConstraint.java | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.java (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.java') diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.java new file mode 100644 index 00000000..0ff3c795 --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.java @@ -0,0 +1,59 @@ +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 TooLowAverageHddConstraint implements IGuidanceFunction { + private static final double THRESHOLD = 0.25; + + @Override + public String getName() { + return "TooLowAverageHdd"; + } + + @Override + public double computeFitness(final Solution solution) { + double _xblockexpression = (double) 0; + { + EObject _model = solution.getModel(); + final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model); + double sumUtilization = 0; + int numHosts = 0; + EList _hostTypes = cps.getHostTypes(); + for (final HostType hostType : _hostTypes) { + { + int _numHosts = numHosts; + int _size = hostType.getInstances().size(); + numHosts = (_numHosts + _size); + EList _instances = hostType.getInstances(); + for (final HostInstance host : _instances) { + { + final int utilization = ResourceUtilizationUtil.getHddUtilization(host); + double _sumUtilization = sumUtilization; + int _defaultHdd = hostType.getDefaultHdd(); + double _divide = (((double) utilization) / _defaultHdd); + sumUtilization = (_sumUtilization + _divide); + } + } + } + } + final double averageUtilization = (sumUtilization / numHosts); + final double difference = (TooLowAverageHddConstraint.THRESHOLD - averageUtilization); + double _xifexpression = (double) 0; + if ((difference > 0)) { + _xifexpression = difference; + } else { + _xifexpression = 0; + } + _xblockexpression = _xifexpression; + } + return _xblockexpression; + } +} -- cgit v1.2.3-70-g09d2