Skip to content

Commit c66ad81

Browse files
committed
Separate optimized and original implementations
1 parent a56189e commit c66ad81

38 files changed

+113
-104
lines changed

Dockerfile-all-tools

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,5 @@ RUN pip3 install pygraphblas==5.1.8.0
8080
RUN cd /py_algo && pip3 install -r requirements.txt
8181
RUN cd /py_algo/deps/CFPQ_Data && python3 setup.py install
8282
COPY . /py_algo
83+
84+
# TODO add data downloading

src/problems/Base/template_cfg/template_cfg_all_pairs_reachability_impls.py renamed to cfpq_algo/all_pairs/all_cfl_pairs_reachability_impls.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from typing import List
22

3-
from src.problems.Base.template_cfg.matrix.incremental_all_pairs_cfl_reachability_algo import \
3+
from cfpq_algo.all_pairs.matrix.incremental_all_pairs_cfl_reachability_algo import \
44
IncrementalAllPairsCFLReachabilityMatrixAlgo
5-
from src.problems.Base.template_cfg.matrix.non_incremental_all_pairs_cfl_reachability_algo import \
5+
from cfpq_algo.all_pairs.matrix.non_incremental_all_pairs_cfl_reachability_algo import \
66
NonIncrementalAllPairsCFLReachabilityMatrixAlgo
7-
from src.problems.Base.template_cfg.template_cfg_all_pairs_reachability import AllPairsCflReachabilityAlgo
7+
from cfpq_algo.all_pairs.all_pairs_cfl_reachability_algo import AllPairsCflReachabilityAlgo
88

99
ALL_PAIRS_CFL_REACHABILITY_ALGOS: List[AllPairsCflReachabilityAlgo] = [
1010
IncrementalAllPairsCFLReachabilityMatrixAlgo(),

src/problems/Base/template_cfg/template_cfg_all_pairs_reachability.py renamed to cfpq_algo/all_pairs/all_pairs_cfl_reachability_algo.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
from graphblas.core.matrix import Matrix
55

6-
from src.algo_setting.algo_setting import AlgoSetting
7-
from src.grammar.cnf_grammar_template import CnfGrammarTemplate
8-
from src.graph.label_decomposed_graph import LabelDecomposedGraph
6+
from cfpq_algo.setting.algo_setting import AlgoSetting
7+
from cfpq_model.cnf_grammar_template import CnfGrammarTemplate
8+
from cfpq_model.label_decomposed_graph import LabelDecomposedGraph
99

1010

1111
class AllPairsCflReachabilityAlgoInstance(ABC):

src/problems/Base/template_cfg/matrix/abstract_all_pairs_cfl_reachability.py renamed to cfpq_algo/all_pairs/matrix/abstract_all_pairs_cfl_reachability.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
from graphblas.core.operator import Semiring, Monoid
66
from graphblas.semiring import any_pair
77

8-
from src.algo_setting.algo_setting import AlgoSetting
9-
from src.grammar.cnf_grammar_template import CnfGrammarTemplate
10-
from src.graph.label_decomposed_graph import OptimizedLabelDecomposedGraph, LabelDecomposedGraph
11-
from src.matrix.matrix_optimizer_setting import get_matrix_optimizer_settings
12-
from src.matrix.utils import complimentary_mask, identity_matrix
13-
from src.problems.Base.template_cfg.template_cfg_all_pairs_reachability import AllPairsCflReachabilityAlgoInstance
14-
from src.utils.subtractable_semiring import SubtractableSemiring
8+
from cfpq_algo.setting.algo_setting import AlgoSetting
9+
from cfpq_model.cnf_grammar_template import CnfGrammarTemplate
10+
from cfpq_model.label_decomposed_graph import OptimizedLabelDecomposedGraph, LabelDecomposedGraph
11+
from cfpq_algo.setting.matrix_optimizer_setting import get_matrix_optimizer_settings, create_matrix_optimizer
12+
from cfpq_matrix.utils import complimentary_mask, identity_matrix
13+
from cfpq_algo.all_pairs.all_pairs_cfl_reachability_algo import AllPairsCflReachabilityAlgoInstance
14+
from cfpq_model.subtractable_semiring import SubtractableSemiring
1515

1616

1717
class AbstractAllPairsCflReachabilityMatrixAlgoInstance(AllPairsCflReachabilityAlgoInstance, ABC):
@@ -26,8 +26,10 @@ def __init__(
2626
sub_op=lambda minuend, subtrahend: complimentary_mask(minuend, subtrahend)
2727
)
2828
):
29-
matrix_optimizers = get_matrix_optimizer_settings(settings)
30-
self.graph = OptimizedLabelDecomposedGraph.from_unoptimized(graph, matrix_optimizers)
29+
self.graph = OptimizedLabelDecomposedGraph.from_unoptimized(
30+
graph,
31+
matrix_optimizer = create_matrix_optimizer(settings)
32+
)
3133
self.grammar = grammar
3234
self.settings = settings
3335
self.algebraic_structure = algebraic_structure

src/problems/Base/template_cfg/matrix/incremental_all_pairs_cfl_reachability_algo.py renamed to cfpq_algo/all_pairs/matrix/incremental_all_pairs_cfl_reachability_algo.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from typing import List
22

3-
from src.algo_setting.algo_setting import AlgoSetting
4-
from src.grammar.cnf_grammar_template import CnfGrammarTemplate
5-
from src.graph.label_decomposed_graph import OptimizedLabelDecomposedGraph, LabelDecomposedGraph
6-
from src.problems.Base.template_cfg.matrix.abstract_all_pairs_cfl_reachability import \
3+
from cfpq_algo.setting.algo_setting import AlgoSetting
4+
from cfpq_model.cnf_grammar_template import CnfGrammarTemplate
5+
from cfpq_model.label_decomposed_graph import LabelDecomposedGraph
6+
from cfpq_algo.all_pairs.matrix.abstract_all_pairs_cfl_reachability import \
77
AbstractAllPairsCflReachabilityMatrixAlgoInstance
8-
from src.problems.Base.template_cfg.template_cfg_all_pairs_reachability import AllPairsCflReachabilityAlgoInstance, \
8+
from cfpq_algo.all_pairs.all_pairs_cfl_reachability_algo import AllPairsCflReachabilityAlgoInstance, \
99
AllPairsCflReachabilityAlgo
1010

1111

src/problems/Base/template_cfg/matrix/non_incremental_all_pairs_cfl_reachability_algo.py renamed to cfpq_algo/all_pairs/matrix/non_incremental_all_pairs_cfl_reachability_algo.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from typing import List
22

3-
from src.algo_setting.algo_setting import AlgoSetting
4-
from src.grammar.cnf_grammar_template import CnfGrammarTemplate
5-
from src.graph.label_decomposed_graph import OptimizedLabelDecomposedGraph, LabelDecomposedGraph
6-
from src.problems.Base.template_cfg.matrix.abstract_all_pairs_cfl_reachability import \
3+
from cfpq_algo.setting.algo_setting import AlgoSetting
4+
from cfpq_model.cnf_grammar_template import CnfGrammarTemplate
5+
from cfpq_model.label_decomposed_graph import OptimizedLabelDecomposedGraph, LabelDecomposedGraph
6+
from cfpq_algo.all_pairs.matrix.abstract_all_pairs_cfl_reachability import \
77
AbstractAllPairsCflReachabilityMatrixAlgoInstance
8-
from src.problems.Base.template_cfg.template_cfg_all_pairs_reachability import AllPairsCflReachabilityAlgoInstance, \
8+
from cfpq_algo.all_pairs.all_pairs_cfl_reachability_algo import AllPairsCflReachabilityAlgoInstance, \
99
AllPairsCflReachabilityAlgo
1010

1111

File renamed without changes.

src/algo_setting/algo_settings_manager.py renamed to cfpq_algo/setting/algo_settings_manager.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
from argparse import ArgumentParser, Namespace
33
from typing import List
44

5-
from src.algo_setting.algo_setting import AlgoSetting
6-
from src.algo_setting.preprocessor_setting import IndexExplodingPreProcessorSetting
7-
from src.matrix.matrix_optimizer_setting import OptimizeEmptyMatrixSetting, LazyAddMatrixSetting, \
5+
from cfpq_algo.setting.algo_setting import AlgoSetting
6+
from cfpq_algo.setting.preprocessor_setting import IndexExplodingPreProcessorSetting
7+
from cfpq_algo.setting.matrix_optimizer_setting import OptimizeEmptyMatrixSetting, LazyAddMatrixSetting, \
88
OptimizeFormatMatrixSetting
99

1010

src/matrix/matrix_optimizer_setting.py renamed to cfpq_algo/setting/matrix_optimizer_setting.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
from abc import ABC, abstractmethod
22
from argparse import Namespace, ArgumentParser
3-
from typing import List
3+
from typing import List, Callable
44

55
from graphblas.core.matrix import Matrix
66

7-
from src.algo_setting.algo_setting import AlgoSetting
8-
from src.matrix.optimized_matrix import OptimizedMatrix
9-
from src.matrix.format_optimized_matrix import FormatOptimizedMatrix
10-
from src.matrix.lazy_add_optimized_matrix import LazyAddOptimizedMatrix
11-
from src.matrix.matrix_to_optimized_adapter import MatrixToOptimizedAdapter
12-
from src.matrix.empty_optimized_matrix import EmptyOptimizedMatrix
7+
from cfpq_algo.setting.algo_setting import AlgoSetting
8+
from cfpq_matrix.optimized_matrix import OptimizedMatrix
9+
from cfpq_matrix.format_optimized_matrix import FormatOptimizedMatrix
10+
from cfpq_matrix.lazy_add_optimized_matrix import LazyAddOptimizedMatrix
11+
from cfpq_matrix.matrix_to_optimized_adapter import MatrixToOptimizedAdapter
12+
from cfpq_matrix.empty_optimized_matrix import EmptyOptimizedMatrix
13+
14+
15+
def create_matrix_optimizer(algo_settings: List[AlgoSetting]) -> Callable[[Matrix], OptimizedMatrix]:
16+
optimizer_settings = get_matrix_optimizer_settings(algo_settings)
17+
return lambda matrix: optimize_matrix(matrix, optimizer_settings)
1318

1419

1520
class MatrixOptimizerSetting(AlgoSetting, ABC):

src/algo_setting/preprocessor_setting.py renamed to cfpq_algo/setting/preprocessor_setting.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
from argparse import Namespace, ArgumentParser
33
from typing import List
44

5-
from src.algo_setting.algo_setting import AlgoSetting
6-
from src.grammar.cnf_grammar_template import CnfGrammarTemplate, Symbol
7-
from src.graph.label_decomposed_graph import LabelDecomposedGraph
8-
from src.problems.Base.template_cfg.utils import explode_indices
5+
from cfpq_algo.setting.algo_setting import AlgoSetting
6+
from cfpq_model.cnf_grammar_template import CnfGrammarTemplate
7+
from cfpq_model.label_decomposed_graph import LabelDecomposedGraph
8+
from cfpq_model.utils import explode_indices
99

1010

1111
class PreProcessorSetting(AlgoSetting, ABC):

0 commit comments

Comments
 (0)