diff options
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.xtend | 70 |
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 | |||
4 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration | 4 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration |
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration | 5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration |
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration | 6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration |
7 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethod | ||
8 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.TypeInferenceMethod | 7 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.TypeInferenceMethod |
8 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.LinearTypeConstraintHint | ||
9 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.PolyhedralScopePropagatorConstraints | ||
10 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.PolyhedralScopePropagatorSolver | ||
11 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.ScopePropagatorStrategy | ||
12 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.UnitPropagationPatternGenerator | ||
9 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualiser | 13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualiser |
14 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.CostObjectiveHint | ||
15 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.ObjectiveKind | ||
16 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.ObjectiveThreshold | ||
10 | import java.util.LinkedList | 17 | import java.util.LinkedList |
11 | import java.util.List | 18 | import java.util.List |
12 | import java.util.Set | 19 | import java.util.Set |
13 | import org.eclipse.xtext.xbase.lib.Functions.Function1 | 20 | import org.eclipse.xtext.xbase.lib.Functions.Function1 |
14 | 21 | ||
15 | public enum StateCoderStrategy { | 22 | enum StateCoderStrategy { |
16 | Neighbourhood, NeighbourhoodWithEquivalence, IDBased, DefinedByDiversity | 23 | Neighbourhood, |
24 | PairwiseNeighbourhood, | ||
25 | NeighbourhoodWithEquivalence, | ||
26 | IDBased, | ||
27 | DefinedByDiversity | ||
17 | } | 28 | } |
18 | 29 | ||
19 | class ViatraReasonerConfiguration extends LogicSolverConfiguration{ | 30 | enum PunishSizeStrategy { |
20 | //public var Iterable<PQuery> existingQueries | 31 | NONE, |
21 | 32 | SMALLER_IS_BETTER, | |
33 | LARGER_IS_BETTER | ||
34 | } | ||
35 | |||
36 | class 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 | ||
68 | public class DiversityDescriptor { | 92 | class 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 | ||
78 | public class DebugConfiguration { | 102 | class 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 | ||
84 | public class InternalConsistencyCheckerConfiguration { | 107 | class 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 | ||
90 | public class SearchSpaceConstraint { | 113 | class 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 | } |
128 | class 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 | |||
136 | class CostObjectiveElementConfiguration { | ||
137 | public var String patternQualifiedName | ||
138 | public var int weight | ||
139 | } | ||
140 | |||