Skip to content

Commit bc62c9b

Browse files
Add core algorithm, parser, models, test and python bindings
1 parent 57f2aed commit bc62c9b

32 files changed

Lines changed: 1713 additions & 3 deletions
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import desbordante
2+
Database = 'examples/datasets/cmspade/cmspade_simple_test.txt'
3+
algo = desbordante.cmspade.algorithms.CMSpade()
4+
algo.load_data(sequence_database = Database, minsup = 0.75)
5+
algo.execute()
6+
result = algo.get_frequent_patterns()
7+
print(f'Found {len(result)} frequent patterns \n')
8+
for p in result:
9+
print(p)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
1 2 -1 3 -1 6 7 -1 7 -1 5 -1 -2
2+
1 -1 2 -1 6 -1 5 -1 -2
3+
2 -1 6 7 -1 -2
4+
1 4 -1 3 -1 2 -1 1 2 5 6 -1 -2

src/core/algorithms/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ set(SUBDIRS
22
algebraic_constraints
33
association_rules
44
cfd
5+
cmspade
56
dc
67
dd
78
fd
@@ -41,6 +42,7 @@ target_link_libraries(
4142
${DESBORDANTE_PREFIX}::ar
4243
${DESBORDANTE_PREFIX}::cfd
4344
${DESBORDANTE_PREFIX}::cfd::verifier
45+
${DESBORDANTE_PREFIX}::cmspade
4446
${DESBORDANTE_PREFIX}::datastats
4547
${DESBORDANTE_PREFIX}::dd::split
4648
${DESBORDANTE_PREFIX}::fd::aid

src/core/algorithms/algorithm_types.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ using AlgorithmTypes =
1111
fd_verifier::FDVerifier, HyUCC, PyroUCC, HPIValid, cfd::FDFirstAlgorithm,
1212
ACAlgorithm, UCCVerifier, Faida, Spider, Mind, INDVerifier, Fastod, GfdValidator,
1313
EGfdValidator, NaiveGfdValidator, order::Order, dd::Split, Cords, hymd::HyMD,
14-
PFDVerifier, cfd_verifier::CFDVerifier>;
14+
PFDVerifier, cfd_verifier::CFDVerifier, cmspade::CMSpade>;
1515

1616
// clang-format off
1717
/* Enumeration of all supported non-pipeline algorithms. If you implement a new
@@ -96,7 +96,10 @@ BETTER_ENUM(AlgorithmType, char,
9696
pfd_verifier,
9797

9898
/* CFD verifier algorithm */
99-
cfd_verifier
99+
cfd_verifier,
100+
101+
/* Frequent patterns mining algorithm */
102+
cmspade
100103
)
101104
// clang-format on
102105

src/core/algorithms/algorithms.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "core/algorithms/association_rules/mining_algorithms.h"
55
#include "core/algorithms/cfd/cfd_verifier/cfd_verifier.h"
66
#include "core/algorithms/cfd/mining_algorithms.h"
7+
#include "core/algorithms/cmspade/cmspade.h"
78
#include "core/algorithms/dd/mining_algorithms.h"
89
#include "core/algorithms/fd/mining_algorithms.h"
910
#include "core/algorithms/fd/sfd/cords.h"
@@ -18,4 +19,4 @@
1819
#include "core/algorithms/od/mining_algorithms.h"
1920
#include "core/algorithms/statistics/algorithms.h"
2021
#include "core/algorithms/ucc/mining_algorithms.h"
21-
#include "core/algorithms/ucc/verification_algorithms.h"
22+
#include "core/algorithms/ucc/verification_algorithms.h"
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
add_subdirectory(model)
2+
add_subdirectory(parser)
3+
4+
set(NAME cmspade)
5+
desbordante_add_lib(NAME)
6+
7+
target_sources(
8+
${NAME}
9+
PRIVATE cmspade.cpp
10+
PUBLIC FILE_SET HEADERS BASE_DIRS "${PROJECT_SOURCE_DIR}/src"
11+
)
12+
13+
target_link_libraries(
14+
${NAME}
15+
PUBLIC
16+
${DESBORDANTE_PREFIX}::cmspade::model
17+
${DESBORDANTE_PREFIX}::cmspade::parser
18+
Boost::headers
19+
PRIVATE
20+
${DESBORDANTE_PREFIX}::algos better-enums
21+
)

0 commit comments

Comments
 (0)