diff options
Diffstat (limited to 'Solvers')
6 files changed, 16 insertions, 6 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend index 42aa1654..dfd8ca1a 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend | |||
@@ -10,6 +10,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage | |||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicresultFactory | 10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicresultFactory |
11 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult | 11 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult |
12 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethodProvider | 12 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethodProvider |
13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ScopePropagator | ||
13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.PartialInterpretationInitialiser | 14 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.PartialInterpretationInitialiser |
14 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | 15 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation |
15 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage | 16 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage |
@@ -55,18 +56,24 @@ class ViatraReasoner extends LogicReasoner{ | |||
55 | 56 | ||
56 | val transformationStartTime = System.nanoTime | 57 | val transformationStartTime = System.nanoTime |
57 | 58 | ||
59 | |||
60 | |||
58 | val emptySolution = initialiser.initialisePartialInterpretation(problem,viatraConfig.typeScopes).output | 61 | val emptySolution = initialiser.initialisePartialInterpretation(problem,viatraConfig.typeScopes).output |
59 | if((viatraConfig.documentationLevel == DocumentationLevel::FULL || viatraConfig.documentationLevel == DocumentationLevel::NORMAL) && workspace !== null) { | 62 | if((viatraConfig.documentationLevel == DocumentationLevel::FULL || viatraConfig.documentationLevel == DocumentationLevel::NORMAL) && workspace !== null) { |
60 | workspace.writeModel(emptySolution,"init.partialmodel") | 63 | workspace.writeModel(emptySolution,"init.partialmodel") |
61 | } | 64 | } |
62 | emptySolution.problemConainer = problem | 65 | emptySolution.problemConainer = problem |
63 | 66 | ||
67 | val ScopePropagator scopePropagator = new ScopePropagator(emptySolution) | ||
68 | scopePropagator.propagateAllScopeConstraints | ||
69 | |||
64 | val method = modelGenerationMethodProvider.createModelGenerationMethod( | 70 | val method = modelGenerationMethodProvider.createModelGenerationMethod( |
65 | problem, | 71 | problem, |
66 | emptySolution, | 72 | emptySolution, |
67 | workspace, | 73 | workspace, |
68 | viatraConfig.nameNewElements, | 74 | viatraConfig.nameNewElements, |
69 | viatraConfig.typeInferenceMethod, | 75 | viatraConfig.typeInferenceMethod, |
76 | scopePropagator, | ||
70 | viatraConfig.documentationLevel | 77 | viatraConfig.documentationLevel |
71 | ) | 78 | ) |
72 | 79 | ||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java index effc37f8..60f46033 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java | |||
@@ -383,4 +383,4 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { | |||
383 | return Arrays.equals(part, substring); | 383 | return Arrays.equals(part, substring); |
384 | } | 384 | } |
385 | } | 385 | } |
386 | } | 386 | } \ No newline at end of file |
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/ModelGenerationCompositeObjective.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/ModelGenerationCompositeObjective.xtend index 1ca2343f..2489c751 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/ModelGenerationCompositeObjective.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/ModelGenerationCompositeObjective.xtend | |||
@@ -63,7 +63,7 @@ class ModelGenerationCompositeObjective implements IObjective{ | |||
63 | sum+=multiplicity | 63 | sum+=multiplicity |
64 | sum += unfinishedWFsFitness//*0.5 | 64 | sum += unfinishedWFsFitness//*0.5 |
65 | 65 | ||
66 | // println('''Sum=«sum»|Scope=«scopeFitnes»|Multiplicity=«multiplicity»|WFs=«unfinishedWFsFitness»''') | 66 | //println('''Sum=«sum»|Scope=«scopeFitnes»|Multiplicity=«multiplicity»|WFs=«unfinishedWFsFitness»''') |
67 | 67 | ||
68 | return sum | 68 | return sum |
69 | } | 69 | } |
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/ScopeObjective.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/ScopeObjective.xtend index d3497ef2..69efe0d7 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/ScopeObjective.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/ScopeObjective.xtend | |||
@@ -23,8 +23,11 @@ class ScopeObjective implements IObjective{ | |||
23 | 23 | ||
24 | override getFitness(ThreadContext context) { | 24 | override getFitness(ThreadContext context) { |
25 | val interpretation = context.model as PartialInterpretation | 25 | val interpretation = context.model as PartialInterpretation |
26 | val res = interpretation.minNewElements | 26 | var res = interpretation.minNewElements.doubleValue |
27 | return res.doubleValue | 27 | for(scope : interpretation.scopes) { |
28 | res += scope.minNewElements*2 | ||
29 | } | ||
30 | return res | ||
28 | } | 31 | } |
29 | 32 | ||
30 | override isHardObjective() { true } | 33 | override isHardObjective() { true } |
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 0fd20fa3..e0111cf6 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 | |||
@@ -37,7 +37,7 @@ class UnfinishedWFObjective implements IObjective { | |||
37 | var sumOfMatches = 0 | 37 | var sumOfMatches = 0 |
38 | for(matcher : matchers) { | 38 | for(matcher : matchers) { |
39 | val number = matcher.countMatches | 39 | val number = matcher.countMatches |
40 | // println('''«matcher.patternName» = «number»''') | 40 | //println('''«matcher.patternName» = «number»''') |
41 | sumOfMatches+=number | 41 | sumOfMatches+=number |
42 | } | 42 | } |
43 | return sumOfMatches.doubleValue | 43 | return sumOfMatches.doubleValue |
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/WF2ObjectiveConverter.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/WF2ObjectiveConverter.xtend index 4fd297ca..5a528a9e 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/WF2ObjectiveConverter.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/WF2ObjectiveConverter.xtend | |||
@@ -18,7 +18,7 @@ class WF2ObjectiveConverter { | |||
18 | { | 18 | { |
19 | val res = new ConstraintsObjective('''unfinishedWFs''', | 19 | val res = new ConstraintsObjective('''unfinishedWFs''', |
20 | unfinishedWF.map[ | 20 | unfinishedWF.map[ |
21 | new QueryConstraint(it.fullyQualifiedName,it,1.0) | 21 | new QueryConstraint(it.fullyQualifiedName,it,2.0) |
22 | ].toList | 22 | ].toList |
23 | ) | 23 | ) |
24 | res.withComparator(Comparators.LOWER_IS_BETTER) | 24 | res.withComparator(Comparators.LOWER_IS_BETTER) |