diff options
Diffstat (limited to 'subprojects/store-dse/src/main/java/tools/refinery/store/dse/strategy/BestFirstStoreManager.java')
-rw-r--r-- | subprojects/store-dse/src/main/java/tools/refinery/store/dse/strategy/BestFirstStoreManager.java | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/strategy/BestFirstStoreManager.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/strategy/BestFirstStoreManager.java index 3795daa4..0b9aae9c 100644 --- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/strategy/BestFirstStoreManager.java +++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/strategy/BestFirstStoreManager.java | |||
@@ -18,14 +18,20 @@ import tools.refinery.store.dse.transition.statespace.internal.ObjectivePriority | |||
18 | import tools.refinery.store.dse.transition.statespace.internal.SolutionStoreImpl; | 18 | import tools.refinery.store.dse.transition.statespace.internal.SolutionStoreImpl; |
19 | import tools.refinery.store.map.Version; | 19 | import tools.refinery.store.map.Version; |
20 | import tools.refinery.store.model.ModelStore; | 20 | import tools.refinery.store.model.ModelStore; |
21 | import tools.refinery.store.statecoding.StateCoderResult; | ||
21 | import tools.refinery.store.statecoding.StateCoderStoreAdapter; | 22 | import tools.refinery.store.statecoding.StateCoderStoreAdapter; |
23 | import tools.refinery.visualization.ModelVisualizerStoreAdapter; | ||
24 | import tools.refinery.visualization.statespace.VisualizationStore; | ||
25 | import tools.refinery.visualization.statespace.internal.VisualizationStoreImpl; | ||
22 | 26 | ||
23 | public class BestFirstStoreManager { | 27 | public class BestFirstStoreManager { |
28 | |||
24 | ModelStore modelStore; | 29 | ModelStore modelStore; |
25 | ObjectivePriorityQueue objectiveStore; | 30 | ObjectivePriorityQueue objectiveStore; |
26 | ActivationStore activationStore; | 31 | ActivationStore activationStore; |
27 | SolutionStore solutionStore; | 32 | SolutionStore solutionStore; |
28 | EquivalenceClassStore equivalenceClassStore; | 33 | EquivalenceClassStore equivalenceClassStore; |
34 | VisualizationStore visualizationStore; | ||
29 | 35 | ||
30 | public BestFirstStoreManager(ModelStore modelStore) { | 36 | public BestFirstStoreManager(ModelStore modelStore) { |
31 | this.modelStore = modelStore; | 37 | this.modelStore = modelStore; |
@@ -35,17 +41,17 @@ public class BestFirstStoreManager { | |||
35 | objectiveStore = new ObjectivePriorityQueueImpl(storeAdapter.getObjectives()); | 41 | objectiveStore = new ObjectivePriorityQueueImpl(storeAdapter.getObjectives()); |
36 | Procedure<VersionWithObjectiveValue> whenAllActivationsVisited = x -> objectiveStore.remove(x); | 42 | Procedure<VersionWithObjectiveValue> whenAllActivationsVisited = x -> objectiveStore.remove(x); |
37 | activationStore = new ActivationStoreImpl(storeAdapter.getTransformations().size(), whenAllActivationsVisited); | 43 | activationStore = new ActivationStoreImpl(storeAdapter.getTransformations().size(), whenAllActivationsVisited); |
38 | solutionStore = new SolutionStoreImpl(10); | 44 | solutionStore = new SolutionStoreImpl(50); |
39 | equivalenceClassStore = new FastEquivalenceClassStore(modelStore.getAdapter(StateCoderStoreAdapter.class)) { | 45 | equivalenceClassStore = new FastEquivalenceClassStore(modelStore.getAdapter(StateCoderStoreAdapter.class)) { |
40 | @Override | 46 | @Override |
41 | protected void delegate(VersionWithObjectiveValue version, int[] emptyActivations, boolean accept) { | 47 | protected void delegate(VersionWithObjectiveValue version, int[] emptyActivations, boolean accept) { |
42 | objectiveStore.submit(version); | 48 | throw new UnsupportedOperationException("This equivalence storage is not prepared to resolve symmetries!"); |
43 | activationStore.markNewAsVisited(version, emptyActivations); | ||
44 | if(accept) { | ||
45 | solutionStore.submit(version); | ||
46 | } | ||
47 | } | 49 | } |
48 | }; | 50 | }; |
51 | visualizationStore = new VisualizationStoreImpl(); | ||
52 | } | ||
53 | public ModelStore getModelStore() { | ||
54 | return modelStore; | ||
49 | } | 55 | } |
50 | 56 | ||
51 | ObjectivePriorityQueue getObjectiveStore() { | 57 | ObjectivePriorityQueue getObjectiveStore() { |
@@ -64,6 +70,10 @@ public class BestFirstStoreManager { | |||
64 | return equivalenceClassStore; | 70 | return equivalenceClassStore; |
65 | } | 71 | } |
66 | 72 | ||
73 | public VisualizationStore getVisualizationStore() { | ||
74 | return visualizationStore; | ||
75 | } | ||
76 | |||
67 | public void startExploration(Version initial) { | 77 | public void startExploration(Version initial) { |
68 | BestFirstExplorer bestFirstExplorer = new BestFirstExplorer(this, modelStore.createModelForState(initial), 1); | 78 | BestFirstExplorer bestFirstExplorer = new BestFirstExplorer(this, modelStore.createModelForState(initial), 1); |
69 | bestFirstExplorer.explore(); | 79 | bestFirstExplorer.explore(); |