1. Introduction
Recent years have seen a dramatic increase in the amount of research on fuzzy cognitive maps. Numerous applications of FCMs have been made in a variety of fields due to their capacity to improve accuracy and handle uncertainties in data. Network science is one such field in which FCMs’ potential is being intensively studied. Identifying the focal nodes that make up a network is a significant challenge in network analysis. It has various applications ranging from speeding up the propagation of information through the network to understanding a particular network’s organization [
1,
2,
3,
4]. The term “focal nodes” refers to the most prominent nodes that make up a network that have a substantial role in the network’s overall organisation.
The various possibilities for identifying focal nodes in a given network have been explored in many works in recent years. Many methods based on node centralities, such as degree, closeness [
5], betweenness [
6], and eigenvector [
7], as well as diffusion-based or random-walk-based methods, like PageRank [
8] and LeaderRank [
2,
9], exist. Some of these techniques already account for the effects of neighbouring nodes, but they do not make direct use of the interactions between them. Most of the existing techniques for the discovery of focal nodes do not perform well in large networks. Identifying the focal nodes in the graphs becomes increasingly difficult as the size and complexity of the graphs increase. This paper explores the possibility of using a fuzzy-cognitive-map-based approach to identify the focal nodes in a given network. The fuzzy cognitive map is a system motivated by the human capability of reasoning. It embodies a perception-based system. It uses an iterative learning method to acquire knowledge about a particular system and to determine the system’s various attributes. One of the largest impediments to utilising FCM for complicated systems is the difficulty of the algorithm in handling huge datasets. The suggested study tackles this specific issue and discusses a parallel fuzzy cognitive map method. When a genetic algorithm is employed to detect the community structure of the network, there is a quotient of randomness associated with the initial population selection. The focal nodes identified are then used to detect the community structure in the network thus reducing the randomness of the genetic algorithm. Following that, a distributed genetic algorithm is employed to detect the network’s communities.
The key contributions of this research study can be summarised as follows:
A parallel fuzzy cognitive map is used for the identification of focal nodes, which reduces the time complexity of the problem;
A novel distributed approach for community detection using a genetic algorithm is proposed;
To accelerate the convergence of the genetic algorithm, the focal nodes of the network are provided as input, thus reducing the randomness of the initial population.
The paper is organized as follows. In
Section 2, recent works in fuzzy cognitive maps and the use of genetic algorithms for community detection are discussed. In
Section 3, a detailed elucidation of the proposed methods is given.
Section 4 elaborates on the experimental framework used. In
Section 5, the results obtained are compared and analysed while in
Section 6, conclusions are provided.
2. Literature Review
Fuzzy cognitive maps, a soft computing technique based on a human reasoning approach, were proposed by Bart Kosko in 1986 [
10]. They were inspired from cognitive maps, proposed by Axelrod in 1976 [
11]. Fuzzy cognitive maps, unlike conventional cognitive maps, integrate the power of fuzzy logic into their framework. FCMs have proved to be a good tool for modelling complex systems due to their capability of addressing uncertainties and improving the dataset’s accuracy. Recent years have seen a tremendous increase in research related to FCMs. In 2003, an FCM was used along with decision trees for urinary bladder grading [
12]. A hybrid model of an FCM with neural networks was used for pattern classification in 2008 [
13]. A new text categorization method based on a similar rough set and an FCM was proposed in 2008 [
14]. An extension of an FCM to aid in decision making regarding pulmonary infections, known as the intuitionistic fuzzy cognitive map, was introduced by Iakovidis and Papageorgiou [
15] and considered the expert’s hesitancy in decision making. An FCM combined with ensemble learning for autism identification problems was proposed by Papageorgiou and Kannappan in 2012 [
16]. Salmeron presented fuzzy grey cognitive maps for modelling uncertainties [
17]. Aguilar proposed dynamic random fuzzy cognitive maps (DRFCM) to model dynamic systems [
18]. In 2013, particle swarm optimization and FCMs were used for autism classification [
19]. Nápoles et al. proposed a two-step learning process for FCM in which the first step was particle swarm optimization, and the second step was ant colony optimization [
20]. A time-dependent FCM used for diagnosing pulmonary diseases was introduced by Bourgani et al. [
21]. Ruan et al. developed the belief-degree-distributed fuzzy cognitive maps (BDD-FCMs), where causal connections were represented by a belief structure [
22]. In 2018, a fuzzy cognitive map model utilising map-reduce was introduced, presenting a parallel fuzzy cognitive map approach [
23]. Choi et al. proposed a big-data-driven fuzzy cognitive map model to handle big datasets using a fuzzy cognitive map [
24]. Puerto et al. proposed multilayer fuzzy cognitive maps to diagnose autism spectrum disorder [
25]. A model for identifying the pattern of load distribution on the plantar muscle of the foot to detect a flat or cavus foot using fuzzy cognitive maps (FCMs) trained by a genetic algorithm (GA) against a multilayer perceptron neural network (MLPNN) was proposed in 2020 [
26].
Community detection recognizes clusters of nodes that are more intimately connected to one another than they are to other nodes in the network. These connected nodes in networks are of crucial importance across different research domains, providing valuable insights [
27]. In social network analysis, identifying communities helps uncover hidden social structures, such as groups of friends or communities of interest, facilitating targeted marketing, understanding information diffusion, and analysing online behaviour [
28,
29]. In biology, community detection aids in uncovering functional modules in protein–protein interaction networks, shedding light on cellular processes, disease mechanisms, and potential drug targets [
30]. In financial networks, community detection assists in identifying risk concentrations, systemic vulnerabilities, and contagion paths [
31]. A multitude of techniques have been developed to identify communities within networks, such as the Louvain method [
32], the Walktrap algorithm [
33], the Newman–Girvan algorithm [
34], simulated annealing [
35], the random walk algorithm [
36], influence-guided label propagation [
37], IGLP-weighted-ensemble [
37], etc. Genetic algorithms are one of the widely adopted techniques for the identification of the community structure of the network [
38,
39,
40,
41,
42,
43]. It is essential to encode the chromosome when utilising genetic algorithms to solve problems. For community detection, several encoding methods have been employed. The most widely used encoding methods are label-based encoding [
38,
44,
45,
46,
47,
48,
49] and locus-based encoding [
39,
50,
51,
52,
53,
54]. The bulk of the implementations of genetic algorithms make use of modularity as the fitness function [
38,
44,
45,
48,
49,
52,
54]. Additionally, fitness functions such as the community score [
40,
51] and modularity density [
46,
47] are utilised. The initial population determination is conducted randomly in most of the existing methods. Also, the network’s centrality is not considered while evaluating its community structure.
Many methods have been used in literature to detect the most influential nodes in the network. The existing methods can be classified into topology-based methods and diffusion-based methods. Degree-based methods [
55], centrality-based methods [
5,
6,
7], and K-Shell [
56] decomposition methods are topology-based. PageRank [
8], LeaderRank [
2,
9], and HITS Score [
57] methods are diffusion-based. The topology-based methods take into consideration the attributes of the nodes in the network, like degree, centrality, etc., whereas the diffusion-based methods take into consideration the nodes visited by the diffusion process. Based on the findings of the preceding investigation, we determined that the existing techniques take longer to converge as the size of the network increases in scale. The existing algorithms are incapable of dealing with the massive amounts of data generated across the world.
3. Proposed Methodology
This research introduces a model that utilizes a parallel fuzzy cognitive map approach for the purpose of identifying the most prominent nodes within a designated network. Though an FCM has been implemented in a variety of domains, the use of an FCM in network science is limited. A focal node detection mechanism based on a fuzzy cognitive map was proposed in [
58]. Focal nodes have a profound influence on community formation within a network. Focal nodes tend to attract other nodes due to their property of a high degree of centrality. Nodes seeking connectivity, influence, or access to resources are more likely to gravitate towards focal nodes. As nodes join the network, they often form communities around these central figures. Focal nodes often become the core of a community, around which other nodes cluster. They provide a focal point of connectivity and influence, shaping the community’s structure and dynamics. Peripheral nodes in the community are connected to the focal node but may have fewer connections with each other. Focal nodes also act as bridges or connectors between communities. Their connections to multiple communities facilitate the exchange of information, resources, or influence across otherwise separate groups. Focal nodes enable the formation of cross-community interactions and integration, contributing to a more cohesive network. Focal nodes also influence the boundaries of communities within a network. Their connections and interactions with nodes from different communities can determine the extent of overlap or separation between these communities. Focal nodes may attract nodes from different communities, leading to the merging or expansion of communities. Alternatively, they may repel nodes from certain communities, resulting in the formation of distinct isolated groups. Focal nodes play a crucial role in maintaining community cohesion. Their high connectivity ensures efficient communication and information flow within the community. Focal nodes often possess a greater influence over decision-making processes and can shape the community’s shared goals, norms, and values.
To uncover the community structure of the network, the identified focal nodes are provided to a distributed genetic algorithm. The overall framework of the proposed algorithm is depicted in
Figure 1. To identify the focal nodes within a network, the fuzzy cognitive map is provided with the network as input. The focal nodes, thus detected, aid the genetic algorithm in detecting the community structure of the network.
3.1. Focal Node Identification Using Distributed Fuzzy Cognitive Map
Fuzzy cognitive maps have a broad spectrum of application domains. Their ability to model uncertainties and improve the accuracy of the modelled system makes them an ideal choice to model extremely simple to highly complex systems. A fuzzy cognitive map (FCM) is a directed graph that contains weighted edges with signed values that represent the fuzzy causal relationships between its nodes; hence, an FCM can be adopted to represent complex networks that comprise nodes and relationships between the nodes. The three components of an FCM are:
Concepts (Ci)
Concepts are the fundamental components of a system that have a significant role in resolving the issue at hand.
State Vector (A) [0, 1]
A vector is formulated through the process of integrating the values of each individual concept from the given system, which usually falls within the range of 0 to 1.
Weight Matrix (Wij)
The weight matrix represents a collection of weights that corresponds to all the causal relationships within the system. The presence of a link between the concepts is represented by its weight value; otherwise, it is 0. The diagonal elements are always zero. The weight values can be positive or negative. A positive weight value indicates a positive causality between the concepts, and a negative value indicates a negative causality.
The steps in using an FCM for focal node identification are initializing the state vector, initializing the weight matrix, applying FCM learning, and finally identifying the focal nodes. An initial state vector that contains the initial values of all the system concepts is determined either by expert knowledge or computationally. The initial state vector is obtained by examining all of the system’s characteristics. The initial state vector is subjected to FCM learning until it converges to provide the desired outcome.
3.1.1. Initializing the State Vector and Weight Matrix
The state vector comprises all the values of the concepts. Since the problem under consideration is the identification of focal nodes in a given network, the concept values should depict the degree of connections between the nodes in the network and consider the structural properties of the network. The betweenness centrality [
59] measure was used for this purpose. Betweenness centrality was chosen to measure the degree of connections between nodes because it captures the flow of information by considering the number of shortest paths passing through a node. This provides insight into its role in facilitating communication within the network. Additionally, betweenness centrality takes into account the weights of the edges, assigning higher scores to nodes that lie on paths with greater weights. This aspect is especially pertinent in the context of fuzzy cognitive maps (FCMs), where the weights represent the causal relationships between nodes. Equation (1) determines the betweenness centrality measure, which quantifies the number of shortest routes passing through a specific vertex.
The overall number of shortest routes from the source to the target is equal to , given in Equation (1), and the count of shortest routes that traverse through the vertex v can be determined by . High centrality ratings imply that a particular vertex is included in a significant percentage of the shortest routes that link pairs of vertices.
For a weighted undirected graph, the weight matrix of the fuzzy cognitive map is initialized with the weight values of the connections between nodes of the network; when there is no connection between two nodes the weight value is set to 0. In the case of unweighted undirected networks, if a connection exists between two nodes, the corresponding weights are set to 1; otherwise, it is 0. A resilient distributed dataset is employed for the storage of both the weight matrix and the state vector.
Figure 2 represents the initial state vector and weight matrix evaluated for a sample weighted network.
3.1.2. FCM Learning
Equation (2) was utilised to apply FCM learning on the initial state vector:
where
indicates the weight of the connection between concepts
and
, and
denotes the concept
at step
. The threshold function
selected is the sigmoid function defined in Equation (3).
Repetitively, the calculation of the state vector continued until epsilon was reached, which represents a residual value indicating the difference in error between successive concepts, with the aim of minimizing this difference. The ε value was set as 0.001. The maximum number of iterations of the FCM was set to 1000. State vector data were then filtered on the basis of a predefined threshold, and the outcome indicated the total number of focal nodes. The value was computed using a grid search method where the possible values of were assigned in the grid in the range of 1 to 10. The optimum value was determined using exhaustive evaluation.
3.1.3. Parallelization of FCM
This FCM learning process was parallelized in the proposed work. The weight matrix RDD was provided as an input to the parallelize function. By employing the parallelize function, the weight matrix RDD was partitioned into distinct subsets, each representing specific causal relations within the system. This division led to the creation of multiple new RDDs, each containing a specific subset of weight matrix values. These RDDs were then distributed across individual nodes within the distributed system.
The process of FCM learning entails operating on both the weight matrix and the state vector. In order to enable this process, it is necessary for the state vector to be readily available across all the nodes in which the weight matrix is spread out. To accomplish this task, the broadcast function was utilised on the state vector RDD, thereby replicating the state vector spanning every node in the network. Moreover, the state vector was cached on each of the distributed nodes. The state vector RDD was a unidimensional vector; thus, its replication across nodes resulted in negligible effects on the memory capability of each node. In contrast, the RDD for the weight matrix was characterised by a considerable number of rows and columns, resulting in a substantial spatial requirement. As a result, it was disseminated across the various nodes within the cluster. At each node, the FCM learning process was applied using Equation (1), generating partial results. The final state vector, representing the final global solution, was derived by amalgamating the aforementioned partial outcomes. The parallel learning of the FCM is depicted in
Figure 3, which was adopted from [
60].
3.2. Parallel Genetic Algorithm to Determine the Community Structure of the Network
A genetic algorithm was used to detect the communities in the network. A genetic algorithm is an optimization method that works with a population of individuals and updates the population until the optimal result is reached. A genetic algorithm maintains the population’s genetic diversity through crossovers and mutations. The fitness function was used to determine the generated result’s efficiency. Each generation incorporated the best characteristics of the previous generations, resulting in a genetically enhanced generation.
3.2.1. Initialization of the Population:
The initial communities in the network were created using a deterministic strategy that took into account the focal nodes identified by the FCM. Each prominent node was chosen as a seed node, and the community was expanded by iteratively adding neighbouring nodes based on different similarity criteria such as connectivity, distance measures, etc. A distributed genetic algorithm model was adopted. The population for the genetic algorithm was initialized using the population size and the number of focal nodes obtained from the FCM. Every chromosome within the population was depicted using a label-based encoding technique. Each chromosomal gene related to a community.
3.2.2. Parallelizing the Population and Calculating the Fitness Function
The initialized population was then parallelized using the
parallelize method into populationRDD. The entire population was divided into segments, and each segment of the population was assigned to an individual node in the distributed environment to process as depicted in
Figure 4. The island model was used to parallelize the genetic algorithm in which the entire population was subdivided into finite populations. After mapping the parallel population segments with a fitness function, each population partition was assessed in parallel. Modularity [
34] was employed as the fitness function to optimise the solutions until the network achieved the optimal community structure. Modularity is a metric that is used to analyse the different communities in a network, and the ideal community structure has the maximum modularity value. Modularity exists within the range [−1, 1]. Equation (4) can be used to accurately estimate the modularity.
where
where the Kronecker delta function
is 1 if there is a link between vertex
i and
j, and it is 0 otherwise. Following that, the evolution operations were carried out.
3.2.3. Selection, Crossovers, and Mutation
A roulette selection mechanism was used to choose chromosomes depending on their fitness scores. On the basis of a crossover probability value, the crossover technique was implemented in a small subsection of the chromosomes. The descendants were generated using the single-point crossover technique. After applying the crossovers, mutation was applied on randomly chosen chromosomes based on the mutation rate [
28]. When the stopping condition was met, the fittest individual in the population was returned; otherwise, the evolution continued. Since the genetic algorithm is a non-deterministic technique, the final results were computed by taking an average of the results of five runs of the model. The pseudocode for the distributed genetic algorithm is given in Algorithm 1.
Algorithm 1 Distributed Genetic Algorithm. |
|
3.2.4. Evaluation of the Effectiveness of the Detected Communities
The effectiveness of the detected communities can be evaluated using mainly two methods: normalised mutual information (NMI) and modularity. Normalized mutual information [
61] is an evaluation measure to determine the quality of the clusters formed and to determine how accurately the community detection algorithm has performed. Normalized mutual information determines the similarity of the detected communities to the existing communities in the network. It requires the groundtruth information to evaluate a community. It is predicated on a theory known as mutual information (MI), which attempts to quantify the amount of information that is shared between two distinct random variables. The NMI is a normalised variant of the MI that takes into consideration both the overall number of data points as well as the size of the clusters. Calculating the NMI requires first calculating the mutual information that exists between the two clusters and then normalising that value by the entropy that exists in each cluster:
where
X and Y are the two different clusters.
MI(X, Y) is the mutual information between X and Y, which measures the amount of shared information.
H(X) and H(Y) are the entropies of clusters X and Y, respectively, which measure the uncertainty or randomness in each cluster.
The mutual information is given by
where
P(i,j) is the probability of data occurring in cluster i (actual) and cluster j (predicted);
P(i) is the probability of data occurring in cluster i (actual);
P(j) is the probability of data occurring in cluster j (predicted).
The entropy is given by
where
Another measure used to evaluate the communities detected is modularity. Modularity gives the strength of the partitions in the network. In modularity, the groundtruth information is not needed, which means that the modularity-based community detection algorithms do not require information about the real communities in order to detect communities in a network. The equation for modularity is given in Equation (4).
3.3. Time Complexity Analysis
In this section, we analyse the time complexity of the proposed distributed genetic algorithm for community detection along with the parallel fuzzy cognitive map. The time complexity of the algorithm can be analysed by examining each step and considering the dominant factors that contribute to the overall complexity. In the given distributed genetic algorithm for community detection, modularity was used as the fitness function. To compute its time complexity, we analysed each step of the algorithm. The algorithm involved mainly two steps, the focal node identification using a parallel fuzzy cognitive map and the community detection using the distributed genetic algorithm.
We let G be a network, where n was the number of nodes, and m was the number of edges in the network. Firstly, the state vector was computed using the betweenness centrality measure for the focal node identification part, which took O(n × (n + m)) for serial execution. Since a distributed approach was adopted, and the data were partitioned across PR physical nodes, the complexity was O((n × (n + m))/PR). Also, the weight matrix was distributed to the PR nodes of the network; hence, it took the complexity O(PR). Subsequently, the FCM iterations were performed, which involved updating the state vector based on the weights and biases, which took O((max_iterations × n2)/PR). Therefore, the total time complexity of the FCM algorithm was expressed as O(PR) + O((n × (n + m))/PR) + O((max_iterations × n2)/PR), and simplifying this expression, the total complexity of the FCM was O((max_iterations × n2)/PR).
The next step was to calculate the time complexity of the distributed genetic algorithm. For the GA, the main operations that contributed to the time complexity were the evaluation of the fitness, selection, crossover, and the mutation. The first step was initialising the population, which took O(p), where p was the size of the population. The fitness was evaluated for the population using modularity as the fitness function. The time complexity for the fitness function was O(p × n × m). The selection operation had a complexity of O(plogp). The crossover and mutation operations had a complexity of O(p). Hence, combining these, the total complexity of the distributed GA was O((max_generations × (p × n × m + p × log(p)))/PR), which was further simplified to O((n × m × log(p))/PR).
5. Results and Discussion
In this work, the efficiency of the proposed model was tested on 11 real-world benchmark network datasets and five synthetic network datasets.
5.1. Real-World Benchmark Network Datasets
The results obtained for the real-world benchmark datasets compared the time difference between the FCM focal-node identification in normal mode and in parallel mode, as the proportions of the network grew. The results depicted that while there was no considerable difference in the time taken to detect the focal nodes in the case of smaller networks, the time taken by the simple FCM increased exponentially as the size of the network increased, whereas the parallel FCM took just fractions of a second to process even the largest network being considered. The results are depicted in
Table 1.
The focal nodes identified by the fuzzy cognitive map were given as input to the genetic algorithm. The proposed GA identified the community structure in the network by maximizing the modularity (Equation (4)) values. To assess the performance of the proposed model in detecting the community structure of the network, a comparison of the execution times of the distributed GA with a parallel FCM and other genetic algorithms in the literature for community detection is depicted in
Figure 6.
The results show that the use of a distributed genetic algorithm with parallel FCM significantly reduced the execution time. It is visible that while there was not much improvement in the execution times when smaller networks were considered, as the network size increased, there was a massive difference between the execution times. In the case of community detection, when the size of the network was small, the use of the distributed algorithm did not yield a considerable difference in the execution time because, in smaller networks, the overhead of distributing the network across the nodes outweighed the processing time. In larger networks, the time necessary to disseminate the data was trivial in comparison to the time required for processing. It can be observed that while the time taken by other algorithms increased exponentially as the scale of the network expanded, the time taken by the distributed GA with a parallel FCM increased linearly with the size of the network. Additionally, the comparison study demonstrated that when compared to alternative techniques for calculating chromosomal fitness in a GA, such as the community score, NED index, and so on, using modularity as the fitness function produced the best outcome. Furthermore, in all the cases, we observed that the adoption of a parallel fuzzy cognitive map to determine the initial community composition, along with a distributed genetic algorithm, considerably reduced the program’s overall computational time and helped it to converge faster.
5.2. Synthetic Benchmark Network Datasets
In order to assess the effectiveness of our algorithm, we also utilised the benchmark network introduced by Lancichinetti and Fortunato in 2009 [
70]. In
Table 2, synthetic benchmark networks with a range of nodes from 110 to 10,000 are shown. As in the case of real-world networks, the model did not show much performance improvement in the case of smaller networks due to the distribution overhead being more than the performance improvement. But as the size of the network increased, the performance of the model also increased.
5.3. Accuracy Analysis of the Communities Detected
To determine the quality of the communities formed, two methods were used, normalised mutual information (NMI) and modularity.
Table 3 and
Table 4 represent the normalized mutual information results obtained when evaluated on networks with the ground truth available, and
Table 5 depicts the modularity obtained for the networks without the ground truth available.
5.4. Evaluation of the Time Complexity Estimates versus the Parallel Execution Time
The goal of parallelization is to execute processes in parallel by distributing the computing workload across numerous processors or computers. This makes it possible to perform multiple tasks at the same time. It has the potential to cut down on the total amount of time required for the algorithm’s execution and to improve its adaptability to larger networks. However, this does not have a direct effect on the algorithm’s asymptotic complexity. The complexity analysis typically considers the sequential execution of the algorithm, without accounting for parallelization. So, the theoretical complexity of the algorithm remains the same. However, parallelization can offer a practical performance improvement by exploiting the available parallel processing resources. This improvement is often reflected in reduced execution time, which is valuable for large-scale networks.
Figure 7 and
Figure 8 represent the comparison of the derived time complexity and the actual running time for Lancichinetti–Fortunato–Radicchi (LFR) datasets [
70] of varying sizes.
It can be observed that when parallel execution was introduced to the proposed model, there was a considerable reduction in the execution time for each of the networks. This observation highlights the positive impact of parallelization on the overall performance of the algorithm.
6. Conclusions
This article discussed a parallel fuzzy cognitive map method for identifying the network’s focal nodes. Using a distributed genetic algorithm, these focal nodes are employed to determine a community structure in the network. When finding focal nodes, the fuzzy cognitive map takes the network’s centrality traits into consideration. A distributed genetic algorithm is used to discover the communities within the network that optimize the modularity of the network in order to achieve optimal solutions. On 11 different benchmark networks, the method was evaluated. The proposed model was compared to existing genetic algorithm-based community detection models to assess its performance. Also, it was evaluated on five synthetic benchmark datasets. It was discovered that combining a distributed genetic algorithm with a parallel fuzzy cognitive map considerably reduced the time required to find communities in a network. The quality of the communities produced was also evaluated using NMI and modularity measures. The results obtained are on par with the values obtained by different community detection algorithms in the literature.
Future work is oriented toward adopting the proposed parallel fuzzy cognitive map model, which is much more efficient and faster than the normal FCM, to be used by decision makers to perform various prediction and classification tasks in the cases where the size of the dataset is considerably large. Also, the possibility of adopting a genetic algorithm with a fuzzy cognitive map to tackle various problems associated with community detection in large networks such as biological networks, social networks, disease spread networks, and other weighted networks can be explored. Also, the proposed algorithm can be extended to detect overlapping communities in the network. The different possibilities where the focal nodes identified by the fuzzy cognitive map model can be used need to be inspected. Another potential avenue for future research involves enhancing the efficiency of community detection in large graphs through the parallelization of established high-quality algorithms, such as Infomap and IGLP-DP.