aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/UnfinishedWFObjective.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/UnfinishedWFObjective.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/UnfinishedWFObjective.xtend34
1 files changed, 22 insertions, 12 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/UnfinishedWFObjective.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/UnfinishedWFObjective.xtend
index bf34aeeb..1b61ffa5 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/UnfinishedWFObjective.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/UnfinishedWFObjective.xtend
@@ -14,41 +14,51 @@ import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher
14class UnfinishedWFObjective implements IObjective { 14class UnfinishedWFObjective implements IObjective {
15 Collection<? extends IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> unfinishedWFs 15 Collection<? extends IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> unfinishedWFs
16 val List<ViatraQueryMatcher<?>> matchers 16 val List<ViatraQueryMatcher<?>> matchers
17 17
18 new(Collection<? extends IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> unfinishedWFs) { 18 new(
19 Collection<? extends IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> unfinishedWFs) {
19 this.unfinishedWFs = unfinishedWFs 20 this.unfinishedWFs = unfinishedWFs
20 matchers = new ArrayList(unfinishedWFs.size) 21 matchers = new ArrayList(unfinishedWFs.size)
21 } 22 }
23
22 override getName() '''unfinishedWFs''' 24 override getName() '''unfinishedWFs'''
25
23 override createNew() { 26 override createNew() {
24 return new UnfinishedWFObjective(unfinishedWFs) 27 return new UnfinishedWFObjective(unfinishedWFs)
25 } 28 }
29
26 override init(ThreadContext context) { 30 override init(ThreadContext context) {
27 val engine = context.queryEngine//ViatraQueryEngine.on(new EMFScope(context.model)) 31 val engine = context.queryEngine // ViatraQueryEngine.on(new EMFScope(context.model))
28 for(unfinishedWF : unfinishedWFs) { 32 for (unfinishedWF : unfinishedWFs) {
29 matchers += unfinishedWF.getMatcher(engine) 33 matchers += unfinishedWF.getMatcher(engine)
30 } 34 }
31 } 35 }
32 36
33 override getComparator() { Comparators.LOWER_IS_BETTER } 37 override getComparator() { Comparators.LOWER_IS_BETTER }
38
34 override getFitness(ThreadContext context) { 39 override getFitness(ThreadContext context) {
35 var sumOfMatches = 0 40 var sumOfMatches = 0
36 for(matcher : matchers) { 41 for (matcher : matchers) {
37 val number = matcher.countMatches 42 val number = matcher.countMatches
38 //println('''«matcher.patternName» = «number»''') 43// if (number > 0) {
39 sumOfMatches+=number 44// println('''«matcher.patternName» = «number»''')
45// }
46 sumOfMatches += number
40 } 47 }
41 return sumOfMatches.doubleValue 48 return sumOfMatches.doubleValue
42 } 49 }
43 50
44 override getLevel() { 2 } 51 override getLevel() { 2 }
52
45 override isHardObjective() { true } 53 override isHardObjective() { true }
46 override satisifiesHardObjective(Double fitness) { return fitness <=0.01 } 54
47 55 override satisifiesHardObjective(Double fitness) { return fitness <= 0.01 }
56
48 override setComparator(Comparator<Double> comparator) { 57 override setComparator(Comparator<Double> comparator) {
49 throw new UnsupportedOperationException() 58 throw new UnsupportedOperationException()
50 } 59 }
60
51 override setLevel(int level) { 61 override setLevel(int level) {
52 throw new UnsupportedOperationException() 62 throw new UnsupportedOperationException()
53 } 63 }
54} \ No newline at end of file 64}