aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-dse/src/main/java/tools/refinery/store/dse/strategy/BestFirstStoreManager.java
diff options
context:
space:
mode:
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.java22
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
18import tools.refinery.store.dse.transition.statespace.internal.SolutionStoreImpl; 18import tools.refinery.store.dse.transition.statespace.internal.SolutionStoreImpl;
19import tools.refinery.store.map.Version; 19import tools.refinery.store.map.Version;
20import tools.refinery.store.model.ModelStore; 20import tools.refinery.store.model.ModelStore;
21import tools.refinery.store.statecoding.StateCoderResult;
21import tools.refinery.store.statecoding.StateCoderStoreAdapter; 22import tools.refinery.store.statecoding.StateCoderStoreAdapter;
23import tools.refinery.visualization.ModelVisualizerStoreAdapter;
24import tools.refinery.visualization.statespace.VisualizationStore;
25import tools.refinery.visualization.statespace.internal.VisualizationStoreImpl;
22 26
23public class BestFirstStoreManager { 27public 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();