Next Article in Journal
Neuro-Fuzzy Control of a Bidirectional DC-DC Converter Applied in the Powertrain of Electric Vehicles
Previous Article in Journal
Improvements to the Modified Anderson–Björck (modAB) Root-Finding Algorithm
Previous Article in Special Issue
Multi-Objective Optimized Differential Privacy with Interpretable Machine Learning for Brain Stroke and Heart Disease Diagnosis
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

A Novel and Practical Algorithmic Enhancement for Enumerating Maximal and Maximum k-Partite Cliques in k-Partite Graphs

1
Department of Electrical Engineering and Computer Science, University of Tennessee, Knoxville, TN 37996, USA
2
Department of Computer Science and Mathematics, Lebanese American University, Beirut 1102 2801, Lebanon
*
Author to whom correspondence should be addressed.
Algorithms 2026, 19(5), 333; https://doi.org/10.3390/a19050333
Submission received: 2 March 2026 / Revised: 12 April 2026 / Accepted: 19 April 2026 / Published: 25 April 2026
(This article belongs to the Special Issue 2026 and 2027 Selected Papers from Algorithms Editorial Board Members)

Abstract

A k-partite graph is one whose vertices can be partitioned into k disjoint partite sets, with edges allowed between but not within these sets. In such a graph, a maximal k-partite clique is a subgraph with at least one vertex from each partite set and every allowable edge such that the subgraph cannot be enlarged by the incorporation of additional vertices. A maximum k-partite clique is of course a maximal k-partite clique of the greatest size. The results reported here describe a novel and practical modification of the best previously published algorithm for the enumeration of these special subgraphs. The relative performance of this new method relies on implicit edge addition and search tree pruning and is evaluated on graphs constructed from both pseudorandom and real-world data.

1. Introduction

All graphs we consider are finite, simple, and undirected. Let G = ( V , E ) denote such a graph with vertex set V and edge set E. A clique in G is a subgraph in which every pair of vertices shares an edge. If G is k-partite, then V can be partitioned into k disjoint collections of independent vertices. Each such collection is called a partite set, and only interpartite edges (those between different partite sets) are permitted. A k-partite clique in such a graph is a subgraph containing at least one vertex from each partite set and an interpartite edge between every pair of its vertices not in the same partite set. A maximal k-partite clique is one that cannot be enlarged by the addition of a new vertex. A vertex (edge)-maximum k-partite clique is quite naturally a maximal k-partite clique with the largest possible number of vertices (edges). It is well known that, for any k 2 , a vertex-maximum k-partite clique may or may not also be edge-maximum and vice versa [1]. Since vertex- and edge-maximum k-partite cliques are but subsets of maximal k-partite cliques, their generation is an automatic byproduct of maximal k-partite clique enumeration. The utility of these special subgraphs is significant, with applications as diverse as data mining, functional genomics, information fusion, multiprocessor scheduling, and transportation planning. For more on applications, we again refer the reader to [1].
Enumerating all maximal cliques is an oft-needed but highly time-consuming task, and it is one generally performed with some variation of a backtracking methodology that now dates back over five decades [2]. Numerous modifications have been proposed over the years in an effort to improve the efficiency of this basic approach. Notable examples can be found for general graphs [3], for sparse graphs [4], and for bipartite ( k = 2 ) graphs as well [5]. The recent consideration of the more general k 3 case has yielded a simple algorithmic framework named Maximal Multipartite Clique Enumeration (MMCE) [1]. This exhaustive but straightforward approach begins by converting a k-partite graph into a general graph through the addition of intrapartite edges. It then generates all maximal cliques, refocuses on interpartite edges, and outputs only the k-partite cliques (those contained in maximal cliques that span all partite sets). MMCE’s main bottleneck is the time it squanders generating h-partite cliques with h less than k. To address this issue, we employ ideas based on implicit edge addition and search tree pruning to detect and eliminate entire regions of the search space that lead only to cliques that fail to cover all partite sets.
In Section 2, we present the original MMCE algorithm in considerably greater detail than that just provided so that we may then define, in  Section 3, the novel improvements we apply to streamline its runtime performance and increase its practical utility. In Section 4, we analyze the space and time requirements of these enhancements and prove that they incur no penalty in terms of asymptotic worst case behavior. In Section 5, we evaluate the relative merit of the improved method on graphs derived from both synthetic and real-world data. In the final section, we highlight the advantages of this approach and discuss a few potential directions for future research.

2. The Original MMCE Algorithm

We begin with a highly detailed description of the basic MMCE algorithm (Algorithm 1). Given a k-partite graph G with vertex partition { V 1 , V 2 , , V k } , MMCE begins by augmenting G with all possible intrapartite edges. We denote this augmented graph as G . It then employs an efficient version of the classic maximal clique enumeration strategy [2] that recursively processes three sets as follows: set C is used to store vertices of the current clique, set M is used to contain candidate vertices that may expand C, and set X is used to hold excluded vertices that cannot be used to expand C. At each recursive call, a vertex v is added to C, the new candidate set is reset to M N G ( v ) , and the new excluded set is reset to X N G ( v ) , where N G ( v ) denotes the neighbors of v in the augmented graph G . The enumeration portion of the algorithm frequently uses an additional vertex, called the pivot, which is chosen to guide or restrict a search or computation. MMCE chooses such a pivot u from M X so that | M N G ( u ) | is maximized as in [6,7], which also ensures a worst case time complexity of O 3 n / 3 , as shown in [1]. This action reduces branching, since any maximal clique that can extend C must contain either the pivot or a vertex not adjacent to the pivot. Whenever both M and X are empty, MMCE determines whether C covers the entire partition { V 1 , V 2 , , V k } , and if so, it outputs C as a maximal k-partite clique.
Algorithm 1 Maximal Multipartite Clique Enumeration (MMCE)
  •  Input: A k-partite graph G = ( V , E ) with vertex partition { V 1 , V 2 , , V k }
  •  Output: All maximal k-partite cliques in G
1:
procedure MMCE( G = ( V , E ) )
2:
       G Add all intrapartite edges to G
3:
       C ; M V ; X
4:
      Enumerate( G , C , M , X )
5:
end procedure
6:
procedure Enumerate( G , C , M , X )
7:
      if  M =  and  X =  then
8:
            if C covers the partiton { V 1 , V 2 , , V k }  then
9:
                   report C
10:
                 return
11:
          end if
12:
    end if
13:
    Choose a pivot vertex u in M X that maximizes | M N G ( u ) |
14:
    for each vertex v in M N G ( u )  do
15:
          Enumerate( G , C { v } , M N G ( v ) , X N G ( v ) )
16:
           M M { v }
17:
           X X { v }
18:
    end for
19:
end procedure

3. Enhancements

Just as iMBEA was used in [5] to designate the improved variant of the MBEA (Maximal Biclique Enumeration Algorithm), here we use iMMCE to denote our improved version of MMCE. We first present the revised method (Algorithm 2) in detail and then explain the changes it embodies. We maintain variable definitions as in MMCE and introduce a couple of handy notational conventions. First, for any vertex v V i for some i { 1 , , k } , we define P ( v ) = { u V i u v } , that is, those vertices distinct from v that are in the same partite set as v. Second, we use N G ( v ) instead of N G ( v ) to denote the neighbors of v in the original graph G rather than the augmented graph. We also add a parameter ( l b ) so that users can specify a lower bound on partite set representation.
Algorithm 2 differs from Algorithm 1 in two ways intended to increase its efficiency (implicit edge addition and search tree pruning) and one way aimed to advance its utility (the aforementioned provision for user-specified k-partite clique bounds).
  • Implicit Intrapartite Edge Addition (Line 26): We modify the procedure for intrapartite edge augmentation as follows: rather than explicitly adding all intrapartite edges at once before calling the maximal clique enumeration subroutine, we incorporate their effect implicitly by defining a new candidate set M ( N G ( v ) P ( v ) ) and a new excluded set X ( N G ( v ) P ( v ) ) at each recursive call. This modification achieves the same effect as before through its enforcement of adjacency constraints but without the possible overhead of actual edge additions that are never required. Note that this modification is equivalent to adding all intrapartite edges, since vertices within the same partite set are treated as pairwise-adjacent. Therefore, the candidate and excluded sets maintained by iMMCE coincide with those that would be obtained under explicit edge augmentation, and the original condition of M = and X = identifies inclusion-maximal k-partite cliques as in the MMCE algorithm.
  • Search Tree Pruning (Lines 6–10 and 19–20): We prune the search tree by filtering out early in the search process any partite clique that cannot be extended to a k-partite clique. This is achieved through the following pair of strategies: first, we sever any branch in which neither C nor M contains a vertex from a still-needed partite set (lines 6–10). Second, we require that the first k vertices added to C are selected from k distinct partite sets (lines 19–20). We now demonstrate that this modification does not exclude any maximal cliques.
Algorithm 2 Improved Maximal Multipartite Clique Enumeration (iMMCE)
  • Input: A k-partite graph G = ( V , E ) with vertex partition { V 1 , V 2 , , V k } and an integer lower bound l b 1 .
  • Output: All maximal k-partite cliques in G with at least l b vertices in each partite set.
1:
procedure iMMCE( G = ( V , E ) , l b )
2:
       C ; M V ; X
3:
      Enumerate( G , C , M , X , l b )
4:
end procedure
5:
procedure Enumerate( G , C , M , X , l b )
#Terminate branch if there exists a partite set V i { V 1 , V 2 , , V k } such that neither C nor M contains a vertex in V i .
6:
      for  i 1 to k do
7:
            if  C V i = and M V i =  then
8:
             return
9:
            end if
10:
      end for
#Report C as a maximal k-partite clique
11:
      if  M =  and  X =  then
12:
            if  | C V i | l b i { 1 , , k }  then
13:
           if C covers the partition { V 1 , V 2 , , V k }  then
14:
                report C
15:
                return
16:
           end if
17:
            end if
18:
    end if
#The first k vertices of C should be selected from k different partite sets.
19:
    if  | C | < k  then
20:
           M = { v M P ( v ) C = }
21:
    else
22:
       Choose a pivot vertex u in M X that maximizes | M N G ( u ) |
23:
        M = M ( N G ( u ) P ( u ) )
24:
    end if
25:
    for each vertex v in M  do
26:
       Enumerate( G , C { v } , M ( N G ( v ) P ( v ) ) , X ( N G ( v ) P ( v ) ) , l b )
27:
        M M { v }
28:
        X X { v }
29:
    end for
30:
end procedure
Lemma 1.
Any maximal k-partite clique can be represented by a search path where the first k vertices are distinct in their partite set membership.
Proof. 
Let C be a maximal k-partite clique. Since C covers all partite sets, it contains at least one vertex from each V i for i { 1 , , k } . Therefore, the vertices of C can be ordered so that the first k selected vertices come from k distinct partite sets, with one chosen from each V i . Reordering the vertices in this way does not change the clique represented by the search path. Hence, C can be represented by a search path in which the first k vertices are distinct in their partite set membership. □
  • Lower Bound Specification (Line 12): Life sciences and other applications can produce real-world data with overwhelming volumes of maximal cliques. Worse yet, the vast majority of them may be of little interest. A classic example arises in gene phenotype analysis [8,9], in which large numbers of bicliques each with many genes but only a single phenotype can clutter and confuse the analysis. Thus, we enhance the practical utility of Algorithm 2 with a simple mechanism by which users can specify a lower bound ( l b ) in order to suppress the generation of highly unbalanced k-partite cliques. The l b parameter does not affect the notion of maximality and is applied only as a filter when recording output.

4. Space and Time Demands

Both MMCE and iMMCE follow the classic recursive enumeration scheme. Along any recursion path, the sets M and X are subsets of the common neighborhood of C, while the recursion depth is at most | V | . The partition structure is fixed throughout the recursion and can be accessed implicitly via vertex labels. Consequently, neither algorithm requires more than O n space, excluding the storage of reported cliques. Time complexities require more formal analyses, however, and it is already known from [1] that MMCE can take at most O 3 n / 3 steps. We will now show that iMMCE shares this worst case upper bound.
Theorem 1.
The time complexity of iMMCE is O 3 n / 3 .
Proof. 
We treat k as a constant and consider first the cost of implicit edge addition. In the recursive update of candidate and excluded sets, iMMCE replaces MMCE’s intersections using N G ( v ) with intersections using N G ( v ) P ( v ) . MMCE already performs set intersections at each recursive call, and so this modification does not increase the asymptotic cost of each recursive step. The overall time complexity therefore remains unchanged because the number of recursive calls is bounded by the number of maximal k-partite cliques.
We next consider the cost of search tree pruning. Pruning a branch for which neither C nor M contains a vertex from the same partite set can be done in at most O k time, since partite set membership can be performed in constant time, and we use a pair of auxiliary arrays to track | C i | and | M i | , which represent the number of vertices in the intersection between partite set i and the sets C and M, respectively. The same can be said for the task of selecting the first k vertices from k different partite sets. This is because, if | C | < k , the candidate set is restricted to vertices whose partite sets are not yet in C, and thus selection can be accomplished by consulting the arrays for | C i | and | M i | at each recursive call to test whether C i is empty and, when needed, to access a candidate from M i . Both actions take constant time. Alternately, if | C | k , we can apply a standard pivot-based filtering step, which has been shown in [1] to not increase the cost of multipartite clique enumeration. The overall time complexity therefore again remains unchanged because search tree pruning does not create any new recursive calls.
Finally, we observe that the optional use of l b adds at most one step per maximal clique, and thus the overall time complexity of iMMCE matches that of MMCE, namely O 3 n / 3 . □
Although we treat k as a constant, the O ( 3 n / 3 ) bound describes the maximum size of the search tree and does not depend on k [6]. Nevertheless, in applications such as conditional matching preclusion [10] and heterogeneous information networks [11], graphs can sometimes employ so many node types that k may scale with n. In such a case, the pruning mechanism of iMMCE introduces an O ( k ) overhead per recursive call, producing an implementation-level bound of O ( k · 3 n / 3 ) . At the same time, restricting vertex candidate selection to distinct partite set membership reduces branching in the early stages of recursion, which can improve practical performance.

5. Experimental Analysis

Before proceeding, it is worth noting that data with anything even close to the worst case number of maximal cliques may only rarely occur in authentic scenarios [12]. Therefore, it is highly likely that worst case bounds are overly pessimistic, and thus we evaluated MMCE and iMMCE on both synthetic graphs and real-world biological networks. Synthetic graphs allowed us to perform sensitivity analyses across specific structural properties, while real-world data permitted us to assess practical performance over naturally occurring problem instances.
Algorithms were implemented in C and ran on the University of Tennessee’s ISAAC Next Generation cluster, which is equipped with a range of modern Intel and AMD processors and at least 128 GB of main memory per compute node. All experiments were performed using the Red Hat Enterprise Linux operating system, with a wall-clock timeout limit of 24 h per experiment. Each run employed a single CPU core without GPU acceleration or distributed parallelism. Reported wall-clock times included both computation and I/O overhead, and were averaged over multiple runs.

5.1. Sample Results on Synthetic Data

We adapted the Erdős–Rényi uniform graph model [13] to generate pseudorandom multipartite graphs so that we could isolate the effects of vertex and edge variability using three graph metrics: vertex set size, partite set number, and interpartite edge density. We strove to vary these metrics as much as possible and used the aforementioned 24 h runtime limit to set upper bounds. In this fashion, we fabricated ten synthetic graphs for each multipartite configuration. See [14] for details.
We report the representative results of these experiments in Figure 1, Figure 2 and Figure 3. Figure 1 focuses on runtime efficiency and algorithmic scalability as the total number of vertices increases. It illustrates representative results obtained when the number of partite sets was set to three and interpartite edge densities were set to 15 % . As can be readily seen, iMMCE’s performance advantage is striking. Figure 2 reveals a similar trend when the emphasis is on algorithmic performance as the number of partite sets increases. It displays representative results obtained when each partite set was assigned 600 vertices and interpartite edge densities were again set to 15 % . Here too, iMMCE’s performance advantage is impressive. Figure 3 is intended to estimate the effects of increasing interpartite edge density and shows a similar picture. It depicts representative results obtained with three partite sets, each with 600 vertices. Again, iMMCE’s performance advantage is evident. Although our primary concerns were speed and efficiency, we observed that iMMCE never required more than roughly 50% to 95% of the memory consumed by MMCE.

5.2. Sample Results on Real-World Data

In contrast with multipartite graphs constructed from synthetic data, multipartite graphs based on real-world data often employ disparate data types across partite sets, which can complicate the analysis and make it difficult to assign interpartite edges. Thus, when feasible, researchers frequently assign these edges through the use of correlation followed by thresholding [15] specific to each pair of data types. A useful example can be found in the context of drug repositioning, where k = 3 , and where partite sets were used to represent diseases, drugs, and gene products (mostly proteins), respectively [16]. We will therefore employ the rich suite of tripartite graphs used in this investigation as a natural and convenient testbed to evaluate the performance of iMMCE relative to that of MMCE.
Data for this study were obtained from the Stanford Biomedical Network Dataset Collection (BioSNAP) [17], with interpartite edges based on three association lists: DCh-Miner for diseases and drugs, DG-Miner for diseases and gene products, and ChG-Miner for drugs and gene products. From these data, we constructed five disease–drug–protein tripartite graphs, each concentrated on one of these disease categories: eye diseases, heart diseases, hemic and lymphatic conditions, infections, and wounds and injuries. The structural characteristics of these graphs are noted in Table 1. In addition to application fidelity, these data produce imbalances in both partite set size and interpartite edge density, providing structural heterogeneity not easily reproduced in synthetic data.
Runtime and peak memory demands for this BioSNAP testbed are recorded in Table 2. In all cases, iMMCE runs considerably faster than MMCE and uses less memory as well.

6. Review and Discussion

We have devised, presented, and analyzed a general purpose enhanced maximal multipartite clique enumeration algorithm. Through the incorporation of implicit edge additions and timely search tree pruning, this algorithm represents a significant improvement over the original MMCE framework. Its worst case time complexity remains unaffected, while its practical utility appears to be much improved on both synthetic and real-world data.
Future research directions are crucial. For example, parallel branch-level enumeration strategies [12,18,19] have the potential to reduce wall-clock times, although inherently skewed search trees can present challenges for load balancing and pruning efficiency. Alternately, iMMCE could easily be modified for GPU-friendly execution [20]. The implicit edge addition strategy using N G ( v ) P ( v ) is well-suited for SIMD and GPU architectures, as it avoids explicit graph augmentation and instead relies on set operations that can be efficiently implemented using bit-parallel representations that may enable a data-parallel evaluation of candidate sets. A potentially more interesting but equally more demanding task might be that of extending iMMCE to support incremental updates under real-time edge and vertex insertions and deletions, thereby addressing the problem of maximal multipartite clique exploration in dynamic graph settings [21,22,23].

Author Contributions

Conceptualization, F.N.A.-K.; methodology, C.C.; software, C.C.; validation, C.C. and L.D.; formal analysis, C.C., F.N.A.-K., L.D. and M.A.L.; investigation, C.C.; resources, M.A.L.; data curation, C.C.; writing—original draft preparation, C.C.; writing—review and editing, F.N.A.-K., L.D. and M.A.L.; visualization, L.D.; supervision, M.A.L.; project administration, M.A.L. All authors have read and agreed to the published version of the manuscript.

Funding

This research was supported in part by the National Institutes of Health under grant R01DK125586 and by the Environmental Protection Agency under grant G17D112354237.

Data Availability Statement

Source codes in C for both MMCE and iMMCE can be found on GitHub at https://github.com/Cheng111/iMMCE (commit 27a0879; accessed on 30 March 2026).

Acknowledgments

The MMCE and iMMCE algorithms were inspired in part by the biclique methodology described in [5].

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Phillips, C.A.; Wang, K.; Baker, E.J.; Bubier, J.A.; Chesler, E.J.; Langston, M.A. On finding and enumerating maximal and maximum k-partite cliques in k-partite graphs. Algorithms 2019, 12, 23. [Google Scholar] [CrossRef] [PubMed]
  2. Bron, C.; Kerbosch, J. Algorithm 457: Finding all cliques of an undirected graph. Commun. ACM 1973, 16, 575–577. [Google Scholar] [CrossRef]
  3. Conte, A.; Tomita, E. On the overall and delay complexity of the CLIQUES and Bron-Kerbosch algorithms. Theor. Comput. Sci. 2022, 899, 1–24. [Google Scholar] [CrossRef]
  4. Eppstein, D.; Löffler, M.; Strash, D. Listing all maximal cliques in sparse graphs in near-optimal time. In Algorithms and Computation. ISAAC 2010. Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2010; Volume 6506. [Google Scholar]
  5. Zhang, Y.; Phillips, C.A.; Rogers, G.L.; Baker, E.J.; Chesler, E.J.; Langston, M.A. On finding bicliques in bipartite graphs: A novel algorithm and its application to the integration of diverse biological data types. BMC Bioinform. 2014, 15, 110. [Google Scholar] [CrossRef]
  6. Tomita, E.; Tanaka, A.; Takahashi, H. The worst-case time complexity for generating all maximal cliques and computational experiments. Theor. Comput. Sci. 2006, 363, 28–42. [Google Scholar] [CrossRef]
  7. Eppstein, D.; Löffler, M.; Strash, D. Listing all maximal cliques in large sparse real-world graphs. J. Exp. Algorithmics (JEA) 2013, 18, 3.1–3.21. [Google Scholar] [CrossRef] [PubMed]
  8. Baldwin, N.E.; Chesler, E.J.; Kirov, S.; Langston, M.A.; Snoddy, J.R.; Williams, R.W.; Zhang, B. Computational, integrative, and comparative methods for the elucidation of genetic coexpression networks. J. Biomed. Biotechnol. 2005, 2005, 172–180. [Google Scholar] [CrossRef]
  9. Baker, E.J.; Jay, J.J.; Bubier, J.A.; Langston, M.A.; Chesler, E.J. GeneWeaver: A web-based system for integrative functional genomics. Nucleic Acids Res. 2011, 40, D1067–D1076. [Google Scholar] [CrossRef]
  10. Wang, M.; Yang, W.; Wang, S. Conditional matching preclusion number for the Cayley graph on the symmetric group. Acta Math. Appl. Sin. 2013, 36, 813–820. [Google Scholar]
  11. Sun, Y.; Han, J. Mining heterogeneous information networks: A structural analysis approach. SIGKDD Explor. 2012, 14, 20–28. [Google Scholar] [CrossRef]
  12. Schmidt, M.C.; Samatova, N.F.; Thomas, K.; Park, B.H. A scalable, parallel algorithm for maximal clique enumeration. J. Parallel Distrib. Comput. 2009, 69, 417–428. [Google Scholar] [CrossRef]
  13. Erdős, P.; Rényi, A. On random graphs. Publ. Math. Debr. 1959, 6, 290–297. [Google Scholar] [CrossRef]
  14. Chen, C. Novel Graph Algorithms for Life Science Applications. Ph.D. Thesis, University of Tennessee, Knoxville, TN, USA, 2025. [Google Scholar]
  15. Bleker, C.; Grady, S.K.; Langston, M.A. A comparative study of gene co-expression thresholding algorithms. J. Comput. Biol. 2024, 31, 539–548. [Google Scholar] [CrossRef]
  16. Chen, C.; Grady, S.K.; Dojcsak, L.; Ellingson, S.R.; Langston, M.A. Link prediction in multipartite graphs with application to drug repositioning studies. IEEE Trans. Comput. Biol. Bioinform. 2025, 22, 3055–3064. [Google Scholar] [CrossRef] [PubMed]
  17. Zitnik, M.; Sosič, R.; Maheshwari, S.; Leskovec, J. BioSNAP Datasets: Stanford Biomedical Network Dataset Collection. 2018. Available online: http://snap.stanford.edu/biodata (accessed on 12 September 2025).
  18. Das, A.; Sanei-Mehri, S.V.; Tirthapura, S. Shared-memory parallel maximal clique enumeration from static and dynamic graphs. ACM Trans. Parallel Comput. (TOPC) 2020, 7, 1–28. [Google Scholar] [CrossRef]
  19. Chen, Q.; Fang, C.; Wang, Z.; Suo, B.; Li, Z.; Ives, Z.G. Parallelizing maximal clique enumeration over graph data. In Proceedings of the Database Systems for Advanced Applications: 21st International Conference, DASFAA 2016 Proceedings, Part II 21, Dallas, TX, USA, 16–19 April 2016; Springer: Cham, Switzerland, 2016; pp. 249–264. [Google Scholar]
  20. Wei, Y.W.; Chen, W.M.; Tsai, H.H. Accelerating the Bron-Kerbosch algorithm for maximal clique enumeration using GPUs. IEEE Trans. Parallel Distrib. Syst. 2021, 32, 2352–2366. [Google Scholar] [CrossRef]
  21. Yang, Y.; Hao, F.; Pang, B.; Min, G.; Wu, Y. Dynamic maximal cliques detection and evolution management in social Internet of Things: A formal concept analysis approach. IEEE Trans. Netw. Sci. Eng. 2022, 9, 1020–1032. [Google Scholar] [CrossRef]
  22. Khoshraftar, S.; An, A.; Babanejad, N. Temporal graph representation learning via maximal cliques. In 2022 IEEE International Conference on Big Data (Big Data); IEEE: Piscataway, NJ, USA, 2022; pp. 606–615. [Google Scholar] [CrossRef]
  23. Lahby, M.; Essouiri, A.; Sekkaki, A. A novel modeling approach for vertical handover based on dynamic k-partite graph in heterogeneous networks. Digit. Commun. Netw. 2019, 5, 297–307. [Google Scholar] [CrossRef]
Figure 1. Vertex variation: Performance analysis of MMCE vs. iMMCE on tripartite graphs with varying numbers of vertices. Interpartite edge densities were held steady at 15 % .
Figure 1. Vertex variation: Performance analysis of MMCE vs. iMMCE on tripartite graphs with varying numbers of vertices. Interpartite edge densities were held steady at 15 % .
Algorithms 19 00333 g001
Figure 2. Partite set variation: Performance analysis of MMCE vs iMMCE on multipartite graphs with varying numbers of partite sets. A total of 600 vertices were assigned to each partite set. Interpartite edge densities were held steady at 15 % .
Figure 2. Partite set variation: Performance analysis of MMCE vs iMMCE on multipartite graphs with varying numbers of partite sets. A total of 600 vertices were assigned to each partite set. Interpartite edge densities were held steady at 15 % .
Algorithms 19 00333 g002
Figure 3. Interpartite density variation: Performance analysis of MMCE vs iMMCE on tripartite graphs with varying interpartite edge densities. A total of 600 vertices were assigned to each partite set.
Figure 3. Interpartite density variation: Performance analysis of MMCE vs iMMCE on tripartite graphs with varying interpartite edge densities. A total of 600 vertices were assigned to each partite set.
Algorithms 19 00333 g003
Table 1. Structural characteristics of five real-world tripartite graphs.
Table 1. Structural characteristics of five real-world tripartite graphs.
Graph AttributeTripartite Graphs
Eye DiseasesHeart DiseasesHemic & Lymphatic ConditionsInfectionsWounds & Injuries
Disease Vertices88407915071
Drug Vertices844963925814885
Protein Vertices19871992199119771986
Disease–Drug Density7.5%17.2%12.7%18.9%9.7%
Disease–Protein Density34.2%42.1%47.4%38.9%22.2%
Drug–Protein Density3.2%3.0%3.1%3.9%3.2%
Number of Tricliques64,82643,378486,98160,77632,532
Table 2. Runtime and peak memory demands.
Table 2. Runtime and peak memory demands.
PerformanceTripartite Graphs
Eye DiseasesHeart DiseasesHemic & Lymphatic ConditionsInfectionsWounds & Injuries
MMCE Runtime (s)1332.87105.86558.80544.6576.10
iMMCE Runtime (s)9.2310.4713.996.403.55
Peak MMCE Memory (MB)7.067.217.137.187.05
Peak iMMCE Memory (MB)2.643.033.003.133.15
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Chen, C.; Abu-Khzam, F.N.; Dojcsak, L.; Langston, M.A. A Novel and Practical Algorithmic Enhancement for Enumerating Maximal and Maximum k-Partite Cliques in k-Partite Graphs. Algorithms 2026, 19, 333. https://doi.org/10.3390/a19050333

AMA Style

Chen C, Abu-Khzam FN, Dojcsak L, Langston MA. A Novel and Practical Algorithmic Enhancement for Enumerating Maximal and Maximum k-Partite Cliques in k-Partite Graphs. Algorithms. 2026; 19(5):333. https://doi.org/10.3390/a19050333

Chicago/Turabian Style

Chen, Cheng, Faisal N. Abu-Khzam, Levente Dojcsak, and Michael A. Langston. 2026. "A Novel and Practical Algorithmic Enhancement for Enumerating Maximal and Maximum k-Partite Cliques in k-Partite Graphs" Algorithms 19, no. 5: 333. https://doi.org/10.3390/a19050333

APA Style

Chen, C., Abu-Khzam, F. N., Dojcsak, L., & Langston, M. A. (2026). A Novel and Practical Algorithmic Enhancement for Enumerating Maximal and Maximum k-Partite Cliques in k-Partite Graphs. Algorithms, 19(5), 333. https://doi.org/10.3390/a19050333

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop