diff options
author | 20001LastOrder <boqi.chen@mail.mcgill.ca> | 2020-11-05 01:49:20 -0500 |
---|---|---|
committer | 20001LastOrder <boqi.chen@mail.mcgill.ca> | 2020-11-05 01:49:20 -0500 |
commit | f25435a9f151f0b24fd7f410f153ed76f8da9633 (patch) | |
tree | 00645d317175ef96f766666466eb6e99c5432d4f /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf | |
parent | fix merging issue (diff) | |
download | VIATRA-Generator-f25435a9f151f0b24fd7f410f153ed76f8da9633.tar.gz VIATRA-Generator-f25435a9f151f0b24fd7f410f153ed76f8da9633.tar.zst VIATRA-Generator-f25435a9f151f0b24fd7f410f153ed76f8da9633.zip |
fix node type distance measure
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf')
2 files changed, 18 insertions, 19 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 628844de..e8bb11df 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 | |||
@@ -62,31 +62,30 @@ class ViatraReasonerConfiguration extends LogicSolverConfiguration { | |||
62 | * Configuration for cutting search space. | 62 | * Configuration for cutting search space. |
63 | */ | 63 | */ |
64 | public var SearchSpaceConstraint searchSpaceConstraints = new SearchSpaceConstraint | 64 | public var SearchSpaceConstraint searchSpaceConstraints = new SearchSpaceConstraint |
65 | 65 | ||
66 | public var runIntermediateNumericalConsistencyChecks = true | 66 | public var runIntermediateNumericalConsistencyChecks = true |
67 | 67 | ||
68 | public var punishSize = PunishSizeStrategy.NONE | 68 | public var punishSize = PunishSizeStrategy.NONE |
69 | public var scopeWeight = 1 | 69 | public var scopeWeight = 1 |
70 | public var conaintmentWeight = 2 | 70 | public var conaintmentWeight = 2 |
71 | public var nonContainmentWeight = 1 | 71 | public var nonContainmentWeight = 1 |
72 | public var unfinishedWFWeight = 1 | 72 | public var unfinishedWFWeight = 1 |
73 | public var calculateObjectCreationCosts = false | 73 | public var calculateObjectCreationCosts = false |
74 | 74 | ||
75 | public var RealisticGuidance realisticGuidance = RealisticGuidance.Composite; | 75 | public var RealisticGuidance realisticGuidance = RealisticGuidance.Composite; |
76 | 76 | ||
77 | public var isWFOptional = false; | 77 | public var isWFOptional = false; |
78 | 78 | ||
79 | public var allowMustViolations = false; | 79 | public var allowMustViolations = false; |
80 | 80 | ||
81 | public var String domain = ''; | 81 | public var String domain = ''; |
82 | public var ScopePropagatorStrategy scopePropagatorStrategy = new ScopePropagatorStrategy.Polyhedral( | 82 | public var ScopePropagatorStrategy scopePropagatorStrategy = new ScopePropagatorStrategy.Polyhedral( |
83 | PolyhedralScopePropagatorConstraints.Relational, PolyhedralScopePropagatorSolver.Clp) | 83 | PolyhedralScopePropagatorConstraints.Relational, PolyhedralScopePropagatorSolver.Clp) |
84 | // public var ScopePropagatorStrategy scopePropagatorStrategy = ScopePropagatorStrategy.BasicTypeHierarchy | 84 | // public var ScopePropagatorStrategy scopePropagatorStrategy = ScopePropagatorStrategy.BasicTypeHierarchy |
85 | |||
86 | public var List<LinearTypeConstraintHint> hints = newArrayList | 85 | public var List<LinearTypeConstraintHint> hints = newArrayList |
87 | 86 | ||
88 | public var List<CostObjectiveConfiguration> costObjectives = newArrayList | 87 | public var List<CostObjectiveConfiguration> costObjectives = newArrayList |
89 | 88 | ||
90 | public var List<UnitPropagationPatternGenerator> unitPropagationPatternGenerators = newArrayList | 89 | public var List<UnitPropagationPatternGenerator> unitPropagationPatternGenerators = newArrayList |
91 | } | 90 | } |
92 | 91 | ||
@@ -117,7 +116,7 @@ class SearchSpaceConstraint { | |||
117 | public var List<Function1<ModelGenerationMethod, ModelGenerationMethodBasedGlobalConstraint>> additionalGlobalConstraints = new LinkedList | 116 | public var List<Function1<ModelGenerationMethod, ModelGenerationMethodBasedGlobalConstraint>> additionalGlobalConstraints = new LinkedList |
118 | } | 117 | } |
119 | 118 | ||
120 | public enum RealisticGuidance{ | 119 | public enum RealisticGuidance { |
121 | MPC, | 120 | MPC, |
122 | NodeActivity, | 121 | NodeActivity, |
123 | OutDegree, | 122 | OutDegree, |
@@ -126,6 +125,7 @@ public enum RealisticGuidance{ | |||
126 | Composite_Without_Violations, | 125 | Composite_Without_Violations, |
127 | Violations | 126 | Violations |
128 | } | 127 | } |
128 | |||
129 | class CostObjectiveConfiguration { | 129 | class CostObjectiveConfiguration { |
130 | public var List<CostObjectiveElementConfiguration> elements = newArrayList | 130 | public var List<CostObjectiveElementConfiguration> elements = newArrayList |
131 | public var ObjectiveKind kind | 131 | public var ObjectiveKind kind |
@@ -138,4 +138,3 @@ class CostObjectiveElementConfiguration { | |||
138 | public var String patternQualifiedName | 138 | public var String patternQualifiedName |
139 | public var int weight | 139 | public var int weight |
140 | } | 140 | } |
141 | |||
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/HillClimbingOnRealisticMetricStrategyForModelGeneration.java b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/HillClimbingOnRealisticMetricStrategyForModelGeneration.java index d9f84b36..293cd232 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/HillClimbingOnRealisticMetricStrategyForModelGeneration.java +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/HillClimbingOnRealisticMetricStrategyForModelGeneration.java | |||
@@ -12,6 +12,7 @@ import java.util.LinkedList; | |||
12 | import java.util.List; | 12 | import java.util.List; |
13 | import java.util.Map; | 13 | import java.util.Map; |
14 | import java.util.PriorityQueue; | 14 | import java.util.PriorityQueue; |
15 | import java.util.Queue; | ||
15 | import java.util.Random; | 16 | import java.util.Random; |
16 | import java.util.Set; | 17 | import java.util.Set; |
17 | 18 | ||
@@ -58,7 +59,7 @@ public class HillClimbingOnRealisticMetricStrategyForModelGeneration implements | |||
58 | public NumericSolver numericSolver = null; | 59 | public NumericSolver numericSolver = null; |
59 | 60 | ||
60 | // Running | 61 | // Running |
61 | private PriorityQueue<TrajectoryWithFitness> trajectoiresToExplore; | 62 | private Queue<TrajectoryWithFitness> trajectoiresToExplore; |
62 | private SolutionStore solutionStore; | 63 | private SolutionStore solutionStore; |
63 | private SolutionStoreWithCopy solutionStoreWithCopy; | 64 | private SolutionStoreWithCopy solutionStoreWithCopy; |
64 | private SolutionStoreWithDiversityDescriptor solutionStoreWithDiversityDescriptor; | 65 | private SolutionStoreWithDiversityDescriptor solutionStoreWithDiversityDescriptor; |
@@ -150,7 +151,7 @@ public class HillClimbingOnRealisticMetricStrategyForModelGeneration implements | |||
150 | this.solutionStoreWithCopy = new SolutionStoreWithCopy(); | 151 | this.solutionStoreWithCopy = new SolutionStoreWithCopy(); |
151 | this.solutionStoreWithDiversityDescriptor = new SolutionStoreWithDiversityDescriptor(configuration.diversityRequirement); | 152 | this.solutionStoreWithDiversityDescriptor = new SolutionStoreWithDiversityDescriptor(configuration.diversityRequirement); |
152 | 153 | ||
153 | trajectoiresToExplore = new PriorityQueue<TrajectoryWithFitness>(11, comparator); | 154 | trajectoiresToExplore = new LinkedList<TrajectoryWithFitness>(); |
154 | stateAndActivations = new HashMap<Object, List<Object>>(); | 155 | stateAndActivations = new HashMap<Object, List<Object>>(); |
155 | metricDistance = new PartialInterpretationMetricDistance(domain); | 156 | metricDistance = new PartialInterpretationMetricDistance(domain); |
156 | 157 | ||
@@ -218,9 +219,8 @@ public class HillClimbingOnRealisticMetricStrategyForModelGeneration implements | |||
218 | } | 219 | } |
219 | 220 | ||
220 | // calculate values for epsilon greedy | 221 | // calculate values for epsilon greedy |
221 | double epsilon = 1.0/count; | 222 | double epsilon = 1.0/model.getNewElements().size(); |
222 | double draw = Math.random(); | 223 | double draw = Math.random(); |
223 | count++; | ||
224 | this.currentNodeTypeDistance = heuristics.getNodeTypeDistance(); | 224 | this.currentNodeTypeDistance = heuristics.getNodeTypeDistance(); |
225 | numNodesToGenerate = model.getMaxNewElements(); | 225 | numNodesToGenerate = model.getMaxNewElements(); |
226 | System.out.println("NA distance: " + heuristics.getNADistance()); | 226 | System.out.println("NA distance: " + heuristics.getNADistance()); |
@@ -262,7 +262,7 @@ public class HillClimbingOnRealisticMetricStrategyForModelGeneration implements | |||
262 | if((getNumberOfViolations(mustMatchers) > 0|| getNumberOfViolations(mayMatchers) > targetDiff) && !allowMustViolation && !shouldFinish) { | 262 | if((getNumberOfViolations(mustMatchers) > 0|| getNumberOfViolations(mayMatchers) > targetDiff) && !allowMustViolation && !shouldFinish) { |
263 | context.backtrack(); | 263 | context.backtrack(); |
264 | }else { | 264 | }else { |
265 | final Fitness nextFitness = context.calculateFitness(); | 265 | final Fitness nextFitness = calculateFitness(); |
266 | 266 | ||
267 | // the only hard objectives are configured in the config file | 267 | // the only hard objectives are configured in the config file |
268 | checkForSolution(nextFitness); | 268 | checkForSolution(nextFitness); |
@@ -634,7 +634,7 @@ public class HillClimbingOnRealisticMetricStrategyForModelGeneration implements | |||
634 | } | 634 | } |
635 | 635 | ||
636 | protected void removeSubtreeFromQueue(TrajectoryWithFitness t) { | 636 | protected void removeSubtreeFromQueue(TrajectoryWithFitness t) { |
637 | PriorityQueue<TrajectoryWithFitness> previous = this.trajectoiresToExplore; | 637 | Queue<TrajectoryWithFitness> previous = this.trajectoiresToExplore; |
638 | this.trajectoiresToExplore = new PriorityQueue<>(this.comparator); | 638 | this.trajectoiresToExplore = new PriorityQueue<>(this.comparator); |
639 | for (TrajectoryWithFitness trajectoryWithFitness : previous) { | 639 | for (TrajectoryWithFitness trajectoryWithFitness : previous) { |
640 | if (!containsAsSubstring(trajectoryWithFitness.trajectory, t.trajectory)) { | 640 | if (!containsAsSubstring(trajectoryWithFitness.trajectory, t.trajectory)) { |