aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner
diff options
context:
space:
mode:
Diffstat (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner')
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbinbin5693 -> 6363 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbinbin11104 -> 11104 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.gitignore4
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java22
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbinbin7626 -> 7626 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbinbin5189 -> 5189 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsSolver.xtendbinbin7336 -> 7336 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.gitignore6
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbinbin8807 -> 8807 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.gitignore2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbinbin0 -> 4969 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbinbin0 -> 7559 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NonRedundantAllocationsConstraint.xtendbinbin0 -> 3332 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotAllocatedAppInstancesConstraint.xtendbinbin0 -> 3440 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotSatisfiedRequirementsConstraint.xtendbinbin0 -> 3412 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ResourceUtilizationUtil.xtendbinbin0 -> 3546 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageHddConstraint.xtendbinbin0 -> 3790 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageMemoryConstraint.xtendbinbin0 -> 3797 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TotalCostFitnessFunction.xtendbinbin0 -> 2975 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableHddConstraint.xtendbinbin0 -> 3131 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableMemoryConstraint.xtendbinbin0 -> 3130 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore15
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java46
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedMoeaOptimisation.java54
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.java31
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedRun.java24
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.java54
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.java47
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.java55
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.java67
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageHddConstraint.java59
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.java59
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.java44
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.java45
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableMemoryConstraint.java45
35 files changed, 678 insertions, 1 deletions
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbin
index 3f9e895d..1ba73ccf 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin
index d8814a3b..b8ff0f95 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.gitignore
index 9f908c7a..011600b4 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.gitignore
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.gitignore
@@ -1,2 +1,6 @@
1/.CpsToLpTranslator.java._trace 1/.CpsToLpTranslator.java._trace
2/.CbcCpsMain.java._trace 2/.CbcCpsMain.java._trace
3/.CbcCpsMain.xtendbin
4/.CpsToLpTranslator.xtendbin
5/CbcCpsMain.java
6/CpsToLpTranslator.java
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java
index d36cdccd..00a4887b 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java
@@ -2,12 +2,15 @@ package hu.bme.mit.inf.dslreasoner.domains.cps.cplex;
2 2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage; 3import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage;
4import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; 4import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
5import hu.bme.mit.inf.dslreasoner.domains.cps.Request;
6import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement;
5import hu.bme.mit.inf.dslreasoner.domains.cps.cplex.CpsToLpTranslator; 7import hu.bme.mit.inf.dslreasoner.domains.cps.cplex.CpsToLpTranslator;
6import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator; 8import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator;
7import java.io.BufferedReader; 9import java.io.BufferedReader;
8import java.io.BufferedWriter; 10import java.io.BufferedWriter;
9import java.io.FileReader; 11import java.io.FileReader;
10import java.io.FileWriter; 12import java.io.FileWriter;
13import java.util.List;
11import java.util.Map; 14import java.util.Map;
12import java.util.concurrent.TimeUnit; 15import java.util.concurrent.TimeUnit;
13import java.util.function.Consumer; 16import java.util.function.Consumer;
@@ -15,7 +18,11 @@ import org.eclipse.emf.ecore.EPackage;
15import org.eclipse.emf.ecore.resource.Resource; 18import org.eclipse.emf.ecore.resource.Resource;
16import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; 19import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
17import org.eclipse.xtext.xbase.lib.Exceptions; 20import org.eclipse.xtext.xbase.lib.Exceptions;
21import org.eclipse.xtext.xbase.lib.Functions.Function1;
22import org.eclipse.xtext.xbase.lib.Functions.Function2;
18import org.eclipse.xtext.xbase.lib.InputOutput; 23import org.eclipse.xtext.xbase.lib.InputOutput;
24import org.eclipse.xtext.xbase.lib.IterableExtensions;
25import org.eclipse.xtext.xbase.lib.ListExtensions;
19 26
20@SuppressWarnings("all") 27@SuppressWarnings("all")
21public class CbcCpsMain { 28public class CbcCpsMain {
@@ -33,7 +40,7 @@ public class CbcCpsMain {
33 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); 40 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
34 _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl); 41 _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl);
35 EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE); 42 EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE);
36 final CpsGenerator generator = new CpsGenerator(1, 4, 1); 43 final CpsGenerator generator = new CpsGenerator(1, 4, 2);
37 final CyberPhysicalSystem problem = generator.generateCpsProblem(); 44 final CyberPhysicalSystem problem = generator.generateCpsProblem();
38 final CpsToLpTranslator toLp = new CpsToLpTranslator(problem, 10, true); 45 final CpsToLpTranslator toLp = new CpsToLpTranslator(problem, 10, true);
39 final CharSequence lp = toLp.getLpProblem(); 46 final CharSequence lp = toLp.getLpProblem();
@@ -70,6 +77,19 @@ public class CbcCpsMain {
70 } finally { 77 } finally {
71 reader.close(); 78 reader.close();
72 } 79 }
80 final Function1<Request, List<Integer>> _function_1 = (Request it) -> {
81 final Function1<Requirement, Integer> _function_2 = (Requirement it_1) -> {
82 return Integer.valueOf(it_1.getCount());
83 };
84 return ListExtensions.<Requirement, Integer>map(it.getRequirements(), _function_2);
85 };
86 final Function2<Integer, Integer, Integer> _function_2 = (Integer p1, Integer p2) -> {
87 return Integer.valueOf(((p1).intValue() + (p2).intValue()));
88 };
89 Integer _reduce = IterableExtensions.<Integer>reduce(IterableExtensions.<Request, Integer>flatMap(problem.getRequests(), _function_1), _function_2);
90 int _multiply = ((_reduce).intValue() * 5);
91 String _plus_1 = ("Additional cost: " + Integer.valueOf(_multiply));
92 InputOutput.<String>println(_plus_1);
73 } catch (Throwable _e) { 93 } catch (Throwable _e) {
74 throw Exceptions.sneakyThrow(_e); 94 throw Exceptions.sneakyThrow(_e);
75 } 95 }
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin
index cdfe3921..a727fe17 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbin
index 9be64b30..8217bf52 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsSolver.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsSolver.xtendbin
index 02fb74ef..1462e776 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsSolver.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsSolver.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.gitignore
index e24f10f4..2338336b 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.gitignore
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.gitignore
@@ -1,3 +1,9 @@
1/.RuleBasedCpsSolver.java._trace 1/.RuleBasedCpsSolver.java._trace
2/.RuleBasedCpsMain.java._trace 2/.RuleBasedCpsMain.java._trace
3/.CpsStateCoder.java._trace 3/.CpsStateCoder.java._trace
4/.CpsStateCoder.xtendbin
5/.RuleBasedCpsMain.xtendbin
6/.RuleBasedCpsSolver.xtendbin
7/CpsStateCoder.java
8/RuleBasedCpsMain.java
9/RuleBasedCpsSolver.java
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbin
index d975ffab..306f031b 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.gitignore
index d5d16f2e..716ffd30 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.gitignore
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.gitignore
@@ -1 +1,3 @@
1/.CpsGenerator.java._trace 1/.CpsGenerator.java._trace
2/.CpsGenerator.xtendbin
3/CpsGenerator.java
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin
new file mode 100644
index 00000000..9d288343
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbin
new file mode 100644
index 00000000..46cce8d1
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NonRedundantAllocationsConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NonRedundantAllocationsConstraint.xtendbin
new file mode 100644
index 00000000..667c165b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NonRedundantAllocationsConstraint.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotAllocatedAppInstancesConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotAllocatedAppInstancesConstraint.xtendbin
new file mode 100644
index 00000000..b1b1967a
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotAllocatedAppInstancesConstraint.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotSatisfiedRequirementsConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotSatisfiedRequirementsConstraint.xtendbin
new file mode 100644
index 00000000..b4385fa3
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.NotSatisfiedRequirementsConstraint.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ResourceUtilizationUtil.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ResourceUtilizationUtil.xtendbin
new file mode 100644
index 00000000..a46e86d4
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ResourceUtilizationUtil.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageHddConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageHddConstraint.xtendbin
new file mode 100644
index 00000000..5a6b7da0
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageHddConstraint.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageMemoryConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageMemoryConstraint.xtendbin
new file mode 100644
index 00000000..5b1f5002
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TooLowAverageMemoryConstraint.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TotalCostFitnessFunction.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TotalCostFitnessFunction.xtendbin
new file mode 100644
index 00000000..fdfd8717
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.TotalCostFitnessFunction.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableHddConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableHddConstraint.xtendbin
new file mode 100644
index 00000000..43ca6549
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableHddConstraint.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableMemoryConstraint.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableMemoryConstraint.xtendbin
new file mode 100644
index 00000000..aff12eca
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.UnavailableMemoryConstraint.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore
new file mode 100644
index 00000000..51a2537b
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.gitignore
@@ -0,0 +1,15 @@
1/.TotalCostFitnessFunction.java._trace
2/.CpsMdeOptimiserMain.java._trace
3/.ExcludedOptimisationInterpreter.java._trace
4/.ExcludedMoeaOptimisation.java._trace
5/.ExcludedRun.java._trace
6/.SatisfiedRequirementsConstraint.java._trace
7/.NotSatisfiedRequirementsConstraint.java._trace
8/.NotAllocatedAppInstancesConstraint.java._trace
9/.NonRedundantAllocationsConstraint.java._trace
10/.UnavailableMemoryConstraint.java._trace
11/.ResourceUtilizationUtil.java._trace
12/.UnavailableHddConstraint.java._trace
13/.TooLowAverageMemoryConstraint.java._trace
14/.TooLowAverageHddUtilization.java._trace
15/.TooLowAverageHddConstraint.java._trace
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java
new file mode 100644
index 00000000..288505a1
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java
@@ -0,0 +1,46 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import com.google.inject.Injector;
4import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage;
5import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
6import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator;
7import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedRun;
8import java.util.Map;
9import org.eclipse.emf.common.util.URI;
10import org.eclipse.emf.ecore.EPackage;
11import org.eclipse.emf.ecore.resource.Resource;
12import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
13import org.eclipse.xtext.xbase.lib.CollectionLiterals;
14import org.eclipse.xtext.xbase.lib.Exceptions;
15import uk.ac.kcl.inf.mdeoptimiser.languages.MoptStandaloneSetup;
16
17@SuppressWarnings("all")
18public class CpsMdeOptimiserMain {
19 private static final String PROJECT_PATH = ".";
20
21 private static final String PROBLEM_PATH = "model/problem.xmi";
22
23 private static final String MOPT_PATH = "src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/cps.mopt";
24
25 private CpsMdeOptimiserMain() {
26 new IllegalStateException("This is a static utility class and should not be instantiated directly.");
27 }
28
29 public static void main(final String[] args) {
30 try {
31 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
32 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
33 _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl);
34 EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE);
35 final CpsGenerator generator = new CpsGenerator(1, 4, 2);
36 final CyberPhysicalSystem problem = generator.generateCpsProblem();
37 Resource _eResource = problem.eResource();
38 _eResource.setURI(URI.createFileURI(CpsMdeOptimiserMain.PROBLEM_PATH));
39 problem.eResource().save(CollectionLiterals.<Object, Object>emptyMap());
40 final Injector injector = new MoptStandaloneSetup().createInjectorAndDoEMFRegistration();
41 injector.<ExcludedRun>getInstance(ExcludedRun.class).run(CpsMdeOptimiserMain.PROJECT_PATH, CpsMdeOptimiserMain.MOPT_PATH);
42 } catch (Throwable _e) {
43 throw Exceptions.sneakyThrow(_e);
44 }
45 }
46}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedMoeaOptimisation.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedMoeaOptimisation.java
new file mode 100644
index 00000000..52d3f665
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedMoeaOptimisation.java
@@ -0,0 +1,54 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import java.util.Properties;
4import org.moeaframework.Executor;
5import org.moeaframework.Instrumenter;
6import org.moeaframework.algorithm.PeriodicAction;
7import org.moeaframework.core.TerminationCondition;
8import org.moeaframework.core.spi.AlgorithmFactory;
9import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.AlgorithmSpec;
10import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.SolverSpec;
11import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.executor.SolutionGenerator;
12import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.MoeaOptimisation;
13import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.algorithms.MoeaOptimisationAlgorithmProvider;
14import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.instrumentation.PopulationCollector;
15import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.problem.MoeaOptimisationProblem;
16import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.operators.adaptation.MutationStepSizeStrategy;
17import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.operators.adaptation.MutationStepSizeStrategyFactory;
18
19@SuppressWarnings("all")
20public class ExcludedMoeaOptimisation extends MoeaOptimisation {
21 private SolutionGenerator solutionGenerator;
22
23 private Instrumenter algorithmStepSizeInstrumenter;
24
25 @Override
26 public Instrumenter execute(final SolverSpec solverSpec, final SolutionGenerator solutionGenerator) {
27 Instrumenter _xblockexpression = null;
28 {
29 this.solutionGenerator = solutionGenerator;
30 _xblockexpression = super.execute(solverSpec, solutionGenerator);
31 }
32 return _xblockexpression;
33 }
34
35 @Override
36 public Instrumenter runOptimisation(final SolverSpec solverSpec, final Properties optimisationProperties) {
37 final AlgorithmFactory algorithmFactory = new AlgorithmFactory();
38 MoeaOptimisationAlgorithmProvider _moeaOptimisationAlgorithmProvider = new MoeaOptimisationAlgorithmProvider();
39 algorithmFactory.addProvider(_moeaOptimisationAlgorithmProvider);
40 Instrumenter _attachPopulationSizeCollector = new Instrumenter().addExcludedPackage("org.eclipse").withProblemClass(
41 MoeaOptimisationProblem.class, this.solutionGenerator).attachApproximationSetCollector().attachElapsedTimeCollector().attachPopulationSizeCollector();
42 PopulationCollector _populationCollector = new PopulationCollector();
43 this.algorithmStepSizeInstrumenter = _attachPopulationSizeCollector.attach(_populationCollector).withFrequency(1).withFrequencyType(
44 PeriodicAction.FrequencyType.STEPS);
45 AlgorithmSpec _algorithm = solverSpec.getAlgorithm();
46 MutationStepSizeStrategy stepSizeStrategy = new MutationStepSizeStrategyFactory(_algorithm, this.algorithmStepSizeInstrumenter).getStrategy();
47 this.solutionGenerator.setMutationStepSizeStrategy(stepSizeStrategy);
48 this.algorithmStepSizeInstrumenter.addExcludedPackage("jdk");
49 Object _get = optimisationProperties.get("terminationCondition");
50 new Executor().usingAlgorithmFactory(algorithmFactory).withAlgorithm(solverSpec.getAlgorithm().getName()).withProblemClass(MoeaOptimisationProblem.class, this.solutionGenerator).withProperties(optimisationProperties).withInstrumenter(this.algorithmStepSizeInstrumenter).withTerminationCondition(
51 ((TerminationCondition) _get)).run();
52 return this.algorithmStepSizeInstrumenter;
53 }
54}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.java
new file mode 100644
index 00000000..90641d73
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedOptimisationInterpreter.java
@@ -0,0 +1,31 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedMoeaOptimisation;
4import java.util.List;
5import org.eclipse.emf.ecore.EPackage;
6import org.eclipse.emf.henshin.model.Unit;
7import org.moeaframework.Instrumenter;
8import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.Optimisation;
9import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IModelProvider;
10import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.OptimisationInterpreter;
11import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.executor.SolutionGenerator;
12
13@SuppressWarnings("all")
14public class ExcludedOptimisationInterpreter extends OptimisationInterpreter {
15 private final Optimisation model;
16
17 public ExcludedOptimisationInterpreter(final String projectPath, final Optimisation model) {
18 super(projectPath, model);
19 this.model = model;
20 }
21
22 @Override
23 public Instrumenter start() {
24 List<Unit> _breedingOperators = this.getBreedingOperators();
25 List<Unit> _mutationOperators = this.getMutationOperators();
26 IModelProvider _modelProvider = this.getModelProvider();
27 EPackage _metamodel = this.getMetamodel();
28 SolutionGenerator solutionGenerator = new SolutionGenerator(this.model, _breedingOperators, _mutationOperators, _modelProvider, _metamodel);
29 return new ExcludedMoeaOptimisation().execute(this.model.getSolver(), solutionGenerator);
30 }
31}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedRun.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedRun.java
new file mode 100644
index 00000000..76f12e79
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ExcludedRun.java
@@ -0,0 +1,24 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedOptimisationInterpreter;
4import java.util.List;
5import java.util.Map;
6import org.eclipse.emf.ecore.EPackage;
7import org.moeaframework.Instrumenter;
8import uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run;
9import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.Optimisation;
10import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.output.MDEOBatch;
11
12@SuppressWarnings("all")
13public class ExcludedRun extends Run {
14 @Override
15 public MDEOBatch runBatch(final String moptProjectPath, final Optimisation optimisationModel, final Integer batch, final boolean singleBatch) {
16 final ExcludedOptimisationInterpreter optimisationInterpreter = new ExcludedOptimisationInterpreter(moptProjectPath, optimisationModel);
17 final long startTime = System.nanoTime();
18 final Instrumenter optimisationOutcome = optimisationInterpreter.start();
19 final long endTime = System.nanoTime();
20 final long experimentDuration = ((endTime - startTime) / 1000000);
21 final Map<EPackage, List<org.eclipse.emf.henshin.model.Module>> generatedRules = optimisationInterpreter.getRulegenOperators();
22 return new MDEOBatch(batch, experimentDuration, optimisationOutcome, generatedRules, singleBatch);
23 }
24}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.java
new file mode 100644
index 00000000..6100d821
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NonRedundantAllocationsConstraint.java
@@ -0,0 +1,54 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import com.google.common.collect.HashMultiset;
4import com.google.common.collect.Multiset;
5import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
6import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
7import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
8import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
9import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement;
10import java.util.Set;
11import org.eclipse.emf.common.util.EList;
12import org.eclipse.emf.ecore.EObject;
13import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
14import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
15
16@SuppressWarnings("all")
17public class NonRedundantAllocationsConstraint implements IGuidanceFunction {
18 @Override
19 public String getName() {
20 return "NonRedundantAllocations";
21 }
22
23 @Override
24 public double computeFitness(final Solution solution) {
25 int _xblockexpression = (int) 0;
26 {
27 EObject _model = solution.getModel();
28 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
29 int cost = 0;
30 EList<HostType> _hostTypes = cps.getHostTypes();
31 for (final HostType hostType : _hostTypes) {
32 EList<HostInstance> _instances = hostType.getInstances();
33 for (final HostInstance host : _instances) {
34 {
35 final HashMultiset<Requirement> bins = HashMultiset.<Requirement>create();
36 EList<ApplicationInstance> _applications = host.getApplications();
37 for (final ApplicationInstance app : _applications) {
38 bins.add(app.getRequirement());
39 }
40 Set<Multiset.Entry<Requirement>> _entrySet = bins.entrySet();
41 for (final Multiset.Entry<Requirement> entry : _entrySet) {
42 int _cost = cost;
43 int _count = entry.getCount();
44 int _minus = (_count - 1);
45 cost = (_cost + _minus);
46 }
47 }
48 }
49 }
50 _xblockexpression = cost;
51 }
52 return _xblockexpression;
53 }
54}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.java
new file mode 100644
index 00000000..e9ade5de
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotAllocatedAppInstancesConstraint.java
@@ -0,0 +1,47 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import com.google.common.base.Objects;
4import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
7import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
8import hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement;
9import org.eclipse.emf.common.util.EList;
10import org.eclipse.emf.ecore.EObject;
11import org.eclipse.xtext.xbase.lib.Functions.Function1;
12import org.eclipse.xtext.xbase.lib.IterableExtensions;
13import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
14import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
15
16@SuppressWarnings("all")
17public class NotAllocatedAppInstancesConstraint implements IGuidanceFunction {
18 @Override
19 public String getName() {
20 return "NotAllocatedAppInstances";
21 }
22
23 @Override
24 public double computeFitness(final Solution solution) {
25 int _xblockexpression = (int) 0;
26 {
27 EObject _model = solution.getModel();
28 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
29 int cost = 0;
30 EList<ApplicationType> _applicationTypes = cps.getApplicationTypes();
31 for (final ApplicationType appType : _applicationTypes) {
32 EList<ApplicationInstance> _instances = appType.getInstances();
33 for (final ApplicationInstance app : _instances) {
34 if (((app.getAllocatedTo() == null) || (!IterableExtensions.<ResourceRequirement>exists(appType.getRequirements(), ((Function1<ResourceRequirement, Boolean>) (ResourceRequirement it) -> {
35 HostType _hostType = it.getHostType();
36 HostType _type = app.getAllocatedTo().getType();
37 return Boolean.valueOf(Objects.equal(_hostType, _type));
38 }))))) {
39 cost++;
40 }
41 }
42 }
43 _xblockexpression = cost;
44 }
45 return _xblockexpression;
46 }
47}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.java
new file mode 100644
index 00000000..34f73952
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/NotSatisfiedRequirementsConstraint.java
@@ -0,0 +1,55 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import com.google.common.base.Objects;
4import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
7import hu.bme.mit.inf.dslreasoner.domains.cps.Request;
8import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement;
9import org.eclipse.emf.common.util.EList;
10import org.eclipse.emf.ecore.EObject;
11import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
12import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
13
14@SuppressWarnings("all")
15public class NotSatisfiedRequirementsConstraint implements IGuidanceFunction {
16 @Override
17 public String getName() {
18 return "NotSatisfiedRequirements";
19 }
20
21 @Override
22 public double computeFitness(final Solution solution) {
23 int _xblockexpression = (int) 0;
24 {
25 EObject _model = solution.getModel();
26 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
27 int cost = 0;
28 EList<Request> _requests = cps.getRequests();
29 for (final Request request : _requests) {
30 EList<Requirement> _requirements = request.getRequirements();
31 for (final Requirement requirement : _requirements) {
32 {
33 int _cost = cost;
34 int _count = requirement.getCount();
35 int _size = requirement.getInstances().size();
36 int _minus = (_count - _size);
37 int _abs = Math.abs(_minus);
38 cost = (_cost + _abs);
39 EList<ApplicationInstance> _instances = requirement.getInstances();
40 for (final ApplicationInstance app : _instances) {
41 ApplicationType _type = app.getType();
42 ApplicationType _type_1 = requirement.getType();
43 boolean _notEquals = (!Objects.equal(_type, _type_1));
44 if (_notEquals) {
45 cost++;
46 }
47 }
48 }
49 }
50 }
51 _xblockexpression = cost;
52 }
53 return _xblockexpression;
54 }
55}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.java
new file mode 100644
index 00000000..a03213e3
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/ResourceUtilizationUtil.java
@@ -0,0 +1,67 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import com.google.common.base.Objects;
4import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
6import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
7import hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement;
8import org.eclipse.emf.common.util.EList;
9import org.eclipse.xtext.xbase.lib.Functions.Function1;
10import org.eclipse.xtext.xbase.lib.IterableExtensions;
11
12@SuppressWarnings("all")
13public class ResourceUtilizationUtil {
14 private ResourceUtilizationUtil() {
15 new IllegalStateException("This is a static utility class and should not be instantiated directly.");
16 }
17
18 public static int getMemoryUtilization(final HostInstance host) {
19 int _xblockexpression = (int) 0;
20 {
21 int utilization = 0;
22 EList<ApplicationInstance> _applications = host.getApplications();
23 for (final ApplicationInstance app : _applications) {
24 {
25 final Function1<ResourceRequirement, Boolean> _function = (ResourceRequirement it) -> {
26 HostType _hostType = it.getHostType();
27 HostType _type = host.getType();
28 return Boolean.valueOf(Objects.equal(_hostType, _type));
29 };
30 final ResourceRequirement req = IterableExtensions.<ResourceRequirement>findFirst(app.getType().getRequirements(), _function);
31 if ((req != null)) {
32 int _utilization = utilization;
33 int _requiredMemory = req.getRequiredMemory();
34 utilization = (_utilization + _requiredMemory);
35 }
36 }
37 }
38 _xblockexpression = utilization;
39 }
40 return _xblockexpression;
41 }
42
43 public static int getHddUtilization(final HostInstance host) {
44 int _xblockexpression = (int) 0;
45 {
46 int utilization = 0;
47 EList<ApplicationInstance> _applications = host.getApplications();
48 for (final ApplicationInstance app : _applications) {
49 {
50 final Function1<ResourceRequirement, Boolean> _function = (ResourceRequirement it) -> {
51 HostType _hostType = it.getHostType();
52 HostType _type = host.getType();
53 return Boolean.valueOf(Objects.equal(_hostType, _type));
54 };
55 final ResourceRequirement req = IterableExtensions.<ResourceRequirement>findFirst(app.getType().getRequirements(), _function);
56 if ((req != null)) {
57 int _utilization = utilization;
58 int _requiredHdd = req.getRequiredHdd();
59 utilization = (_utilization + _requiredHdd);
60 }
61 }
62 }
63 _xblockexpression = utilization;
64 }
65 return _xblockexpression;
66 }
67}
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 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
4import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil;
7import org.eclipse.emf.common.util.EList;
8import org.eclipse.emf.ecore.EObject;
9import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
10import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
11
12@SuppressWarnings("all")
13public class TooLowAverageHddConstraint implements IGuidanceFunction {
14 private static final double THRESHOLD = 0.25;
15
16 @Override
17 public String getName() {
18 return "TooLowAverageHdd";
19 }
20
21 @Override
22 public double computeFitness(final Solution solution) {
23 double _xblockexpression = (double) 0;
24 {
25 EObject _model = solution.getModel();
26 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
27 double sumUtilization = 0;
28 int numHosts = 0;
29 EList<HostType> _hostTypes = cps.getHostTypes();
30 for (final HostType hostType : _hostTypes) {
31 {
32 int _numHosts = numHosts;
33 int _size = hostType.getInstances().size();
34 numHosts = (_numHosts + _size);
35 EList<HostInstance> _instances = hostType.getInstances();
36 for (final HostInstance host : _instances) {
37 {
38 final int utilization = ResourceUtilizationUtil.getHddUtilization(host);
39 double _sumUtilization = sumUtilization;
40 int _defaultHdd = hostType.getDefaultHdd();
41 double _divide = (((double) utilization) / _defaultHdd);
42 sumUtilization = (_sumUtilization + _divide);
43 }
44 }
45 }
46 }
47 final double averageUtilization = (sumUtilization / numHosts);
48 final double difference = (TooLowAverageHddConstraint.THRESHOLD - averageUtilization);
49 double _xifexpression = (double) 0;
50 if ((difference > 0)) {
51 _xifexpression = difference;
52 } else {
53 _xifexpression = 0;
54 }
55 _xblockexpression = _xifexpression;
56 }
57 return _xblockexpression;
58 }
59}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.java
new file mode 100644
index 00000000..341925bc
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TooLowAverageMemoryConstraint.java
@@ -0,0 +1,59 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
4import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil;
7import org.eclipse.emf.common.util.EList;
8import org.eclipse.emf.ecore.EObject;
9import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
10import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
11
12@SuppressWarnings("all")
13public class TooLowAverageMemoryConstraint implements IGuidanceFunction {
14 private static final double THRESHOLD = 0.25;
15
16 @Override
17 public String getName() {
18 return "TooLowAverageMemory";
19 }
20
21 @Override
22 public double computeFitness(final Solution solution) {
23 double _xblockexpression = (double) 0;
24 {
25 EObject _model = solution.getModel();
26 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
27 double sumUtilization = 0;
28 int numHosts = 0;
29 EList<HostType> _hostTypes = cps.getHostTypes();
30 for (final HostType hostType : _hostTypes) {
31 {
32 int _numHosts = numHosts;
33 int _size = hostType.getInstances().size();
34 numHosts = (_numHosts + _size);
35 EList<HostInstance> _instances = hostType.getInstances();
36 for (final HostInstance host : _instances) {
37 {
38 final int utilization = ResourceUtilizationUtil.getMemoryUtilization(host);
39 double _sumUtilization = sumUtilization;
40 int _defaultMemory = hostType.getDefaultMemory();
41 double _divide = (((double) utilization) / _defaultMemory);
42 sumUtilization = (_sumUtilization + _divide);
43 }
44 }
45 }
46 }
47 final double averageUtilization = (sumUtilization / numHosts);
48 final double difference = (TooLowAverageMemoryConstraint.THRESHOLD - averageUtilization);
49 double _xifexpression = (double) 0;
50 if ((difference > 0)) {
51 _xifexpression = difference;
52 } else {
53 _xifexpression = 0;
54 }
55 _xblockexpression = _xifexpression;
56 }
57 return _xblockexpression;
58 }
59}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.java
new file mode 100644
index 00000000..7bb80ca8
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/TotalCostFitnessFunction.java
@@ -0,0 +1,44 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType;
4import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
6import org.eclipse.emf.common.util.EList;
7import org.eclipse.emf.ecore.EObject;
8import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
9import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
10
11@SuppressWarnings("all")
12public class TotalCostFitnessFunction implements IGuidanceFunction {
13 @Override
14 public String getName() {
15 return "TotalCost";
16 }
17
18 @Override
19 public double computeFitness(final Solution solution) {
20 int _xblockexpression = (int) 0;
21 {
22 EObject _model = solution.getModel();
23 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
24 int cost = 0;
25 EList<ApplicationType> _applicationTypes = cps.getApplicationTypes();
26 for (final ApplicationType appType : _applicationTypes) {
27 int _cost = cost;
28 int _size = appType.getInstances().size();
29 int _multiply = (5 * _size);
30 cost = (_cost + _multiply);
31 }
32 EList<HostType> _hostTypes = cps.getHostTypes();
33 for (final HostType hostType : _hostTypes) {
34 int _cost_1 = cost;
35 int _cost_2 = hostType.getCost();
36 int _size_1 = hostType.getInstances().size();
37 int _multiply_1 = (_cost_2 * _size_1);
38 cost = (_cost_1 + _multiply_1);
39 }
40 _xblockexpression = cost;
41 }
42 return _xblockexpression;
43 }
44}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.java
new file mode 100644
index 00000000..00d1c4e6
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/UnavailableHddConstraint.java
@@ -0,0 +1,45 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
4import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil;
7import org.eclipse.emf.common.util.EList;
8import org.eclipse.emf.ecore.EObject;
9import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
10import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
11
12@SuppressWarnings("all")
13public class UnavailableHddConstraint implements IGuidanceFunction {
14 @Override
15 public String getName() {
16 return "UnavailableHdd";
17 }
18
19 @Override
20 public double computeFitness(final Solution solution) {
21 int _xblockexpression = (int) 0;
22 {
23 EObject _model = solution.getModel();
24 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
25 int cost = 0;
26 EList<HostType> _hostTypes = cps.getHostTypes();
27 for (final HostType hostType : _hostTypes) {
28 EList<HostInstance> _instances = hostType.getInstances();
29 for (final HostInstance host : _instances) {
30 {
31 final int utilization = ResourceUtilizationUtil.getHddUtilization(host);
32 int _defaultHdd = hostType.getDefaultHdd();
33 final int difference = (utilization - _defaultHdd);
34 if ((difference > 0)) {
35 int _cost = cost;
36 cost = (_cost + difference);
37 }
38 }
39 }
40 }
41 _xblockexpression = cost;
42 }
43 return _xblockexpression;
44 }
45}
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 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo;
2
3import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
4import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
5import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
6import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil;
7import org.eclipse.emf.common.util.EList;
8import org.eclipse.emf.ecore.EObject;
9import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction;
10import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution;
11
12@SuppressWarnings("all")
13public class UnavailableMemoryConstraint implements IGuidanceFunction {
14 @Override
15 public String getName() {
16 return "UnavailableMemory";
17 }
18
19 @Override
20 public double computeFitness(final Solution solution) {
21 int _xblockexpression = (int) 0;
22 {
23 EObject _model = solution.getModel();
24 final CyberPhysicalSystem cps = ((CyberPhysicalSystem) _model);
25 int cost = 0;
26 EList<HostType> _hostTypes = cps.getHostTypes();
27 for (final HostType hostType : _hostTypes) {
28 EList<HostInstance> _instances = hostType.getInstances();
29 for (final HostInstance host : _instances) {
30 {
31 final int utilization = ResourceUtilizationUtil.getMemoryUtilization(host);
32 int _defaultMemory = hostType.getDefaultMemory();
33 final int difference = (utilization - _defaultMemory);
34 if ((difference > 0)) {
35 int _cost = cost;
36 cost = (_cost + difference);
37 }
38 }
39 }
40 }
41 _xblockexpression = cost;
42 }
43 return _xblockexpression;
44 }
45}