blob: f32078a276822cea563ecd712ee8f2c50f6153b5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
package hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner
import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration
import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration
import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration
import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.TypeInferenceMethod
import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualiser
import java.util.Set
import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery
import java.util.LinkedList
import java.util.List
import org.eclipse.xtext.xbase.lib.Functions.Function1
import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethod
public enum StateCoderStrategy {
Neighbourhood, NeighbourhoodWithEquivalence, IDBased, DefinedByDiversity
}
class ViatraReasonerConfiguration extends LogicSolverConfiguration{
public var Iterable<PQuery> existingQueries
public var nameNewElements = false
public var StateCoderStrategy stateCoderStrategy = StateCoderStrategy.Neighbourhood
public var TypeInferenceMethod typeInferenceMethod = TypeInferenceMethod.PreliminaryAnalysis
/**
* Once per 1/randomBacktrackChance the search selects a random state.
*/
public var int randomBacktrackChance = 20;
/**
* Describes the required diversity between the solutions.
* Null means that the solutions have to have different state codes only.
*/
public var DiversityDescriptor diversityRequirement = new DiversityDescriptor
/**
* A logic solver that able to check the consistency of an intermediate solution.
* Null means that no solver is called.
*/
public var InternalConsistencyCheckerConfiguration internalConsistencyCheckerConfiguration = new InternalConsistencyCheckerConfiguration
/**
* Configuration for debugging support.
*/
public var DebugConfiguration debugCongiguration = new DebugConfiguration
/**
* Configuration for cutting search space.
*/
public var SearchSpaceConstraint searchSpaceConstraints = new SearchSpaceConstraint
}
public class DiversityDescriptor {
public var ensureDiversity = false
public static val FixPointRange = -1
public var int range = FixPointRange
public var int parallels = Integer.MAX_VALUE
public var int maxNumber = Integer.MAX_VALUE
public var Set<TypeDeclaration> relevantTypes = null
public var Set<RelationDeclaration> relevantRelations = null
}
public class DebugConfiguration {
public var logging = false
public var PartialInterpretationVisualiser partialInterpretatioVisualiser = null;
public var partalInterpretationVisualisationFrequency = 1
}
public class InternalConsistencyCheckerConfiguration {
public var LogicReasoner internalIncosnsitencyDetector = null
public var LogicSolverConfiguration internalInconsistencDetectorConfiguration = null
public var incternalConsistencyCheckingFrequency = 1
}
public class SearchSpaceConstraint {
public static val UNLIMITED_MAXDEPTH = Integer.MAX_VALUE
public var int maxDepth = UNLIMITED_MAXDEPTH
public var List<Function1<ModelGenerationMethod, ModelGenerationMethodBasedGlobalConstraint>> additionalGlobalConstraints = new LinkedList
}
|