aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf
diff options
context:
space:
mode:
authorLibravatar 20001LastOrder <boqi.chen@mail.mcgill.ca>2020-11-05 01:49:20 -0500
committerLibravatar 20001LastOrder <boqi.chen@mail.mcgill.ca>2020-11-05 01:49:20 -0500
commitf25435a9f151f0b24fd7f410f153ed76f8da9633 (patch)
tree00645d317175ef96f766666466eb6e99c5432d4f /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf
parentfix merging issue (diff)
downloadVIATRA-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')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasonerConfiguration.xtend25
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/HillClimbingOnRealisticMetricStrategyForModelGeneration.java12
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
120public enum RealisticGuidance{ 119public 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
129class CostObjectiveConfiguration { 129class 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;
12import java.util.List; 12import java.util.List;
13import java.util.Map; 13import java.util.Map;
14import java.util.PriorityQueue; 14import java.util.PriorityQueue;
15import java.util.Queue;
15import java.util.Random; 16import java.util.Random;
16import java.util.Set; 17import 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)) {