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