diff options
Diffstat (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains')
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 | ||
3 | import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage; | 3 | import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage; |
4 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | 4 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; |
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.Request; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.cplex.CpsToLpTranslator; | 7 | import hu.bme.mit.inf.dslreasoner.domains.cps.cplex.CpsToLpTranslator; |
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator; | 8 | import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator; |
7 | import java.io.BufferedReader; | 9 | import java.io.BufferedReader; |
8 | import java.io.BufferedWriter; | 10 | import java.io.BufferedWriter; |
9 | import java.io.FileReader; | 11 | import java.io.FileReader; |
10 | import java.io.FileWriter; | 12 | import java.io.FileWriter; |
13 | import java.util.List; | ||
11 | import java.util.Map; | 14 | import java.util.Map; |
12 | import java.util.concurrent.TimeUnit; | 15 | import java.util.concurrent.TimeUnit; |
13 | import java.util.function.Consumer; | 16 | import java.util.function.Consumer; |
@@ -15,7 +18,11 @@ import org.eclipse.emf.ecore.EPackage; | |||
15 | import org.eclipse.emf.ecore.resource.Resource; | 18 | import org.eclipse.emf.ecore.resource.Resource; |
16 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | 19 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; |
17 | import org.eclipse.xtext.xbase.lib.Exceptions; | 20 | import org.eclipse.xtext.xbase.lib.Exceptions; |
21 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
22 | import org.eclipse.xtext.xbase.lib.Functions.Function2; | ||
18 | import org.eclipse.xtext.xbase.lib.InputOutput; | 23 | import org.eclipse.xtext.xbase.lib.InputOutput; |
24 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
25 | import org.eclipse.xtext.xbase.lib.ListExtensions; | ||
19 | 26 | ||
20 | @SuppressWarnings("all") | 27 | @SuppressWarnings("all") |
21 | public class CbcCpsMain { | 28 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import com.google.inject.Injector; | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedRun; | ||
8 | import java.util.Map; | ||
9 | import org.eclipse.emf.common.util.URI; | ||
10 | import org.eclipse.emf.ecore.EPackage; | ||
11 | import org.eclipse.emf.ecore.resource.Resource; | ||
12 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
13 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
14 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
15 | import uk.ac.kcl.inf.mdeoptimiser.languages.MoptStandaloneSetup; | ||
16 | |||
17 | @SuppressWarnings("all") | ||
18 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import java.util.Properties; | ||
4 | import org.moeaframework.Executor; | ||
5 | import org.moeaframework.Instrumenter; | ||
6 | import org.moeaframework.algorithm.PeriodicAction; | ||
7 | import org.moeaframework.core.TerminationCondition; | ||
8 | import org.moeaframework.core.spi.AlgorithmFactory; | ||
9 | import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.AlgorithmSpec; | ||
10 | import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.SolverSpec; | ||
11 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.executor.SolutionGenerator; | ||
12 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.MoeaOptimisation; | ||
13 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.algorithms.MoeaOptimisationAlgorithmProvider; | ||
14 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.instrumentation.PopulationCollector; | ||
15 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.problem.MoeaOptimisationProblem; | ||
16 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.operators.adaptation.MutationStepSizeStrategy; | ||
17 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.operators.adaptation.MutationStepSizeStrategyFactory; | ||
18 | |||
19 | @SuppressWarnings("all") | ||
20 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedMoeaOptimisation; | ||
4 | import java.util.List; | ||
5 | import org.eclipse.emf.ecore.EPackage; | ||
6 | import org.eclipse.emf.henshin.model.Unit; | ||
7 | import org.moeaframework.Instrumenter; | ||
8 | import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.Optimisation; | ||
9 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IModelProvider; | ||
10 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.OptimisationInterpreter; | ||
11 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.executor.SolutionGenerator; | ||
12 | |||
13 | @SuppressWarnings("all") | ||
14 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedOptimisationInterpreter; | ||
4 | import java.util.List; | ||
5 | import java.util.Map; | ||
6 | import org.eclipse.emf.ecore.EPackage; | ||
7 | import org.moeaframework.Instrumenter; | ||
8 | import uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run; | ||
9 | import uk.ac.kcl.inf.mdeoptimiser.languages.mopt.Optimisation; | ||
10 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.output.MDEOBatch; | ||
11 | |||
12 | @SuppressWarnings("all") | ||
13 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import com.google.common.collect.HashMultiset; | ||
4 | import com.google.common.collect.Multiset; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostType; | ||
9 | import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement; | ||
10 | import java.util.Set; | ||
11 | import org.eclipse.emf.common.util.EList; | ||
12 | import org.eclipse.emf.ecore.EObject; | ||
13 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction; | ||
14 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution; | ||
15 | |||
16 | @SuppressWarnings("all") | ||
17 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import com.google.common.base.Objects; | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostType; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement; | ||
9 | import org.eclipse.emf.common.util.EList; | ||
10 | import org.eclipse.emf.ecore.EObject; | ||
11 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
12 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
13 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction; | ||
14 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution; | ||
15 | |||
16 | @SuppressWarnings("all") | ||
17 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import com.google.common.base.Objects; | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.cps.Request; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement; | ||
9 | import org.eclipse.emf.common.util.EList; | ||
10 | import org.eclipse.emf.ecore.EObject; | ||
11 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction; | ||
12 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution; | ||
13 | |||
14 | @SuppressWarnings("all") | ||
15 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import com.google.common.base.Objects; | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostType; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement; | ||
8 | import org.eclipse.emf.common.util.EList; | ||
9 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
10 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
11 | |||
12 | @SuppressWarnings("all") | ||
13 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostType; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil; | ||
7 | import org.eclipse.emf.common.util.EList; | ||
8 | import org.eclipse.emf.ecore.EObject; | ||
9 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction; | ||
10 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution; | ||
11 | |||
12 | @SuppressWarnings("all") | ||
13 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostType; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil; | ||
7 | import org.eclipse.emf.common.util.EList; | ||
8 | import org.eclipse.emf.ecore.EObject; | ||
9 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction; | ||
10 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution; | ||
11 | |||
12 | @SuppressWarnings("all") | ||
13 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType; | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostType; | ||
6 | import org.eclipse.emf.common.util.EList; | ||
7 | import org.eclipse.emf.ecore.EObject; | ||
8 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction; | ||
9 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution; | ||
10 | |||
11 | @SuppressWarnings("all") | ||
12 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostType; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil; | ||
7 | import org.eclipse.emf.common.util.EList; | ||
8 | import org.eclipse.emf.ecore.EObject; | ||
9 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction; | ||
10 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution; | ||
11 | |||
12 | @SuppressWarnings("all") | ||
13 | public 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo; | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | ||
4 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance; | ||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.HostType; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ResourceUtilizationUtil; | ||
7 | import org.eclipse.emf.common.util.EList; | ||
8 | import org.eclipse.emf.ecore.EObject; | ||
9 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction; | ||
10 | import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution; | ||
11 | |||
12 | @SuppressWarnings("all") | ||
13 | public 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 | } | ||