aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend
diff options
context:
space:
mode:
authorLibravatar Oszkar Semerath <semerath@mit.bme.hu>2020-05-18 21:45:19 +0200
committerLibravatar Oszkar Semerath <semerath@mit.bme.hu>2020-05-18 21:45:19 +0200
commitc0568c4373fa00e2ba2e165cfd681dd7cd61add6 (patch)
tree2b896db05d2b4be163f0ea639f847fe6426c6eb4 /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend
parentMerge branch 'master' of https://github.com/viatra/VIATRA-Generator (diff)
downloadVIATRA-Generator-c0568c4373fa00e2ba2e165cfd681dd7cd61add6.tar.gz
VIATRA-Generator-c0568c4373fa00e2ba2e165cfd681dd7cd61add6.tar.zst
VIATRA-Generator-c0568c4373fa00e2ba2e165cfd681dd7cd61add6.zip
removed every occurence of check expressions
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend15
1 files changed, 11 insertions, 4 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend
index 6435806d..05ce4f6e 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend
@@ -10,13 +10,15 @@ class MultiplicityGoalConstraintCalculator {
10 val String targetRelationName; 10 val String targetRelationName;
11 val IQuerySpecification<?> querySpecification; 11 val IQuerySpecification<?> querySpecification;
12 var ViatraQueryMatcher<?> matcher; 12 var ViatraQueryMatcher<?> matcher;
13 val int minValue
13 val boolean containment 14 val boolean containment
14 val int cost 15 val int cost
15 16
16 public new(String targetRelationName, IQuerySpecification<?> querySpecification, boolean containment, int cost) { 17 public new(String targetRelationName, IQuerySpecification<?> querySpecification, int minValue, boolean containment, int cost) {
17 this.targetRelationName = targetRelationName 18 this.targetRelationName = targetRelationName
18 this.querySpecification = querySpecification 19 this.querySpecification = querySpecification
19 this.matcher = null 20 this.matcher = null
21 this.minValue = minValue
20 this.containment = containment 22 this.containment = containment
21 this.cost = cost 23 this.cost = cost
22 } 24 }
@@ -25,6 +27,7 @@ class MultiplicityGoalConstraintCalculator {
25 this.targetRelationName = other.targetRelationName 27 this.targetRelationName = other.targetRelationName
26 this.querySpecification = other.querySpecification 28 this.querySpecification = other.querySpecification
27 this.matcher = null 29 this.matcher = null
30 this.minValue = other.minValue
28 this.containment = other.containment 31 this.containment = other.containment
29 this.cost = other.cost 32 this.cost = other.cost
30 } 33 }
@@ -47,13 +50,17 @@ class MultiplicityGoalConstraintCalculator {
47 val allMatches = this.matcher.allMatches 50 val allMatches = this.matcher.allMatches
48 for(match : allMatches) { 51 for(match : allMatches) {
49 52
50 val missingMultiplicity = match.get(4) as Integer 53 val existingMultiplicity = match.get(4) as Integer
51 res += missingMultiplicity 54 if(existingMultiplicity < this.minValue) {
55 val missingMultiplicity = this.minValue-existingMultiplicity
56 res += missingMultiplicity
57 }
52// if(missingMultiplicity!=0) { 58// if(missingMultiplicity!=0) {
53// println(targetRelationName+ " missing multiplicity: "+missingMultiplicity) 59// println(targetRelationName+ " missing multiplicity: "+missingMultiplicity)
54// } 60// }
55 } 61 }
56 //println(targetRelationName+ " all missing multiplicities: "+res) 62// if(res>0)
63// println(targetRelationName+ " all missing multiplicities: "+res + "*"+cost+"="+res*cost)
57 return res*cost 64 return res*cost
58 } 65 }
59} \ No newline at end of file 66} \ No newline at end of file