This commit is contained in:
Tiago Batista Cardoso
2026-02-28 22:41:19 +01:00
parent 500e03af35
commit 2d3865079d
21 changed files with 1072 additions and 570 deletions

View File

@@ -21,6 +21,18 @@ struct community_result_t {
};
typedef struct community_result_t community_result_t;
typedef struct {
int **list;
int count;
int capacity;
int k;
} clique_store_t;
int find_max_clique_size(const graph_t *graph);
void compute_kclique_distribution(const graph_t *graph);
void store_clique(clique_store_t *store, int *current);
void enumerate_cliques(const graph_t *graph, clique_store_t *store,
int *current, int depth, int start);
community_result_t *find_k_clique_communities(const graph_t *graph, int k);
void free_community_result(community_result_t *result);
@@ -35,14 +47,14 @@ typedef struct louvain_result_t louvain_result_t;
louvain_result_t *compute_louvain(const graph_t *graph);
void free_louvain_result(louvain_result_t *result);
// -- hybrid algorithm
struct hybrid_result_t {
// -- cbla algorithm
struct cbla_result_t {
int *node_community; // node_community[i] = community id of node i
int count; // total number of communities
};
typedef struct hybrid_result_t hybrid_result_t;
typedef struct cbla_result_t cbla_result_t;
hybrid_result_t *hybrid_community_detection(const graph_t *graph, int k);
void free_hybrid_result(hybrid_result_t *result);
cbla_result_t *cbla_community_detection(const graph_t *graph, int k);
void free_cbla_result(cbla_result_t *result);
#endif