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/dslreasoner/viatrasolver/reasoner/dse/HillClimbingOnRealisticMetricStrategyForModelGeneration.java | |
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/dslreasoner/viatrasolver/reasoner/dse/HillClimbingOnRealisticMetricStrategyForModelGeneration.java')
1 files changed, 6 insertions, 6 deletions
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)) { |