aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasonerConfiguration.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/ViatraReasonerConfiguration.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasonerConfiguration.xtend70
1 files changed, 53 insertions, 17 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasonerConfiguration.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasonerConfiguration.xtend
index 96bf014d..e73a52b6 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasonerConfiguration.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasonerConfiguration.xtend
@@ -4,21 +4,37 @@ import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
4import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration 4import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration
5import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration 5import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration
6import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration 6import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration
7import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethod
8import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.TypeInferenceMethod 7import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.TypeInferenceMethod
8import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.LinearTypeConstraintHint
9import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.PolyhedralScopePropagatorConstraints
10import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.PolyhedralScopePropagatorSolver
11import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.ScopePropagatorStrategy
12import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.UnitPropagationPatternGenerator
9import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualiser 13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualiser
14import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.CostObjectiveHint
15import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.ObjectiveKind
16import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.ObjectiveThreshold
10import java.util.LinkedList 17import java.util.LinkedList
11import java.util.List 18import java.util.List
12import java.util.Set 19import java.util.Set
13import org.eclipse.xtext.xbase.lib.Functions.Function1 20import org.eclipse.xtext.xbase.lib.Functions.Function1
14 21
15public enum StateCoderStrategy { 22enum StateCoderStrategy {
16 Neighbourhood, NeighbourhoodWithEquivalence, IDBased, DefinedByDiversity 23 Neighbourhood,
24 PairwiseNeighbourhood,
25 NeighbourhoodWithEquivalence,
26 IDBased,
27 DefinedByDiversity
17} 28}
18 29
19class ViatraReasonerConfiguration extends LogicSolverConfiguration{ 30enum PunishSizeStrategy {
20 //public var Iterable<PQuery> existingQueries 31 NONE,
21 32 SMALLER_IS_BETTER,
33 LARGER_IS_BETTER
34}
35
36class ViatraReasonerConfiguration extends LogicSolverConfiguration {
37 // public var Iterable<PQuery> existingQueries
22 public var nameNewElements = false 38 public var nameNewElements = false
23 public var StateCoderStrategy stateCoderStrategy = StateCoderStrategy.Neighbourhood 39 public var StateCoderStrategy stateCoderStrategy = StateCoderStrategy.Neighbourhood
24 public var TypeInferenceMethod typeInferenceMethod = TypeInferenceMethod.PreliminaryAnalysis 40 public var TypeInferenceMethod typeInferenceMethod = TypeInferenceMethod.PreliminaryAnalysis
@@ -26,7 +42,7 @@ class ViatraReasonerConfiguration extends LogicSolverConfiguration{
26 * Once per 1/randomBacktrackChance the search selects a random state. 42 * Once per 1/randomBacktrackChance the search selects a random state.
27 */ 43 */
28 public var int randomBacktrackChance = 20; 44 public var int randomBacktrackChance = 20;
29 45
30 /** 46 /**
31 * Describes the required diversity between the solutions. 47 * Describes the required diversity between the solutions.
32 * Null means that the solutions have to have different state codes only. 48 * Null means that the solutions have to have different state codes only.
@@ -40,7 +56,7 @@ class ViatraReasonerConfiguration extends LogicSolverConfiguration{
40 /** 56 /**
41 * Configuration for debugging support. 57 * Configuration for debugging support.
42 */ 58 */
43 public var DebugConfiguration debugCongiguration = new DebugConfiguration 59 public var DebugConfiguration debugConfiguration = new DebugConfiguration
44 /** 60 /**
45 * Configuration for cutting search space. 61 * Configuration for cutting search space.
46 */ 62 */
@@ -48,12 +64,11 @@ class ViatraReasonerConfiguration extends LogicSolverConfiguration{
48 64
49 public var runIntermediateNumericalConsistencyChecks = true 65 public var runIntermediateNumericalConsistencyChecks = true
50 66
51 public var punishSize = true 67 public var punishSize = PunishSizeStrategy.NONE
52 public var scopeWeight = 1 68 public var scopeWeight = 1
53 public var conaintmentWeight = 2 69 public var conaintmentWeight = 2
54 public var nonContainmentWeight = 1 70 public var nonContainmentWeight = 1
55 public var unfinishedWFWeight = 1 71 public var unfinishedWFWeight = 1
56
57 public var calculateObjectCreationCosts = false 72 public var calculateObjectCreationCosts = false
58 73
59 public var RealisticGuidance realisticGuidance = RealisticGuidance.Composite; 74 public var RealisticGuidance realisticGuidance = RealisticGuidance.Composite;
@@ -63,9 +78,18 @@ class ViatraReasonerConfiguration extends LogicSolverConfiguration{
63 public var allowMustViolations = false; 78 public var allowMustViolations = false;
64 79
65 public var String domain = ''; 80 public var String domain = '';
81 public var ScopePropagatorStrategy scopePropagatorStrategy = new ScopePropagatorStrategy.Polyhedral(
82 PolyhedralScopePropagatorConstraints.Relational, PolyhedralScopePropagatorSolver.Clp)
83// public var ScopePropagatorStrategy scopePropagatorStrategy = ScopePropagatorStrategy.BasicTypeHierarchy
84
85 public var List<LinearTypeConstraintHint> hints = newArrayList
86
87 public var List<CostObjectiveConfiguration> costObjectives = newArrayList
88
89 public var List<UnitPropagationPatternGenerator> unitPropagationPatternGenerators = newArrayList
66} 90}
67 91
68public class DiversityDescriptor { 92class DiversityDescriptor {
69 public var ensureDiversity = false 93 public var ensureDiversity = false
70 public static val FixPointRange = -1 94 public static val FixPointRange = -1
71 public var int range = FixPointRange 95 public var int range = FixPointRange
@@ -75,19 +99,18 @@ public class DiversityDescriptor {
75 public var Set<RelationDeclaration> relevantRelations = null 99 public var Set<RelationDeclaration> relevantRelations = null
76} 100}
77 101
78public class DebugConfiguration { 102class DebugConfiguration {
79 public var logging = false 103 public var PartialInterpretationVisualiser partialInterpretatioVisualiser = null
80 public var PartialInterpretationVisualiser partialInterpretatioVisualiser = null;
81 public var partalInterpretationVisualisationFrequency = 1 104 public var partalInterpretationVisualisationFrequency = 1
82} 105}
83 106
84public class InternalConsistencyCheckerConfiguration { 107class InternalConsistencyCheckerConfiguration {
85 public var LogicReasoner internalIncosnsitencyDetector = null 108 public var LogicReasoner internalIncosnsitencyDetector = null
86 public var LogicSolverConfiguration internalInconsistencDetectorConfiguration = null 109 public var LogicSolverConfiguration internalInconsistencDetectorConfiguration = null
87 public var incternalConsistencyCheckingFrequency = 1 110 public var incternalConsistencyCheckingFrequency = 1
88} 111}
89 112
90public class SearchSpaceConstraint { 113class SearchSpaceConstraint {
91 public static val UNLIMITED_MAXDEPTH = Integer.MAX_VALUE 114 public static val UNLIMITED_MAXDEPTH = Integer.MAX_VALUE
92 public var int maxDepth = UNLIMITED_MAXDEPTH 115 public var int maxDepth = UNLIMITED_MAXDEPTH
93 public var List<Function1<ModelGenerationMethod, ModelGenerationMethodBasedGlobalConstraint>> additionalGlobalConstraints = new LinkedList 116 public var List<Function1<ModelGenerationMethod, ModelGenerationMethodBasedGlobalConstraint>> additionalGlobalConstraints = new LinkedList
@@ -101,4 +124,17 @@ public enum RealisticGuidance{
101 Composite, 124 Composite,
102 Composite_Without_Violations, 125 Composite_Without_Violations,
103 Violations 126 Violations
104} \ No newline at end of file 127}
128class CostObjectiveConfiguration {
129 public var List<CostObjectiveElementConfiguration> elements = newArrayList
130 public var ObjectiveKind kind
131 public var ObjectiveThreshold threshold
132 public var boolean findExtremum
133 public var CostObjectiveHint hint
134}
135
136class CostObjectiveElementConfiguration {
137 public var String patternQualifiedName
138 public var int weight
139}
140