Fast Enumeration of Large k-Plexes

Overview

This page contains the software and data used in the paper "Fast Enumeration of Large k-Plexes" authored by Alessio Conte, Donatella Firmani, Caterina Mordente, Maurizio Patrignani, and Riccardo Torlone and published at the 23rd SIGKDD Conference on Knowledge Discovery and Data Mining (KDD 2017). The purpose of this work is the enumeration of large k-plexes in networks.

A k-plex is a set of nodes such that each of them has edges with all the others with the possible exception of k missing neighbours (including itself). So, for example, for k=1 k-plexes are cliques, for k=2, each node may miss one edge, etc.

Our software speeds up the search of several orders of magnitude with respect to traditional k-plex enumeration algorithm.

Software Instructions

General instructions

To launch the computations two ways are possible:
  1. Using the .sh script
  2. Directly issuing the commands

Input file format

The input is a graph in NDE (Nodes-Degrees-Edges) format that has to be placed in the main project directory. A file specifying a graph in the NDE format should contain the following information: As our code does not require information on the input/output degrees (our graphs are undirected), some parts of the NDE format are intentionally left blank. An example (example.nde) can be found in the compressed files.

Finding all largest k-plexes

Example of command:
 
     java -jar max_kplex.jar example.nde 2
Parameters: Output example:
      cliqueness time:0.115
      coreness time:0.007
      Launching Berlowitz...
      Building graph from file graph.txt...
      Graph is ready
      Starts enumerating connected k-plexes..
      Output will be found at output_file_connected
      time for enumerating 6 kplexes: 0.035848
      max:4 4,5,6,7
      Running time for enumerating 6 kplexes: 0.035997
Where "max:4" indicates that 4 is the size of the maximum k-plex found and "4,5,6,7" are the ids of the nodes composing the maximum k-plex

Finding all maximal k-plexes non-smaller than S

Example of command:
 
     java -jar all_kplex.jar example.nde 2 2
Parameters: Output example:
      total time6.303
      13
      printing k-plexes:
      3,5,6
      1,3,5
      3,4,5
      2,4,7
      2,3,4
      5,6,7
      2,4,5
      4,6,7
      1,3
      1,2,3
      3,5
      5,6
      4,7
      final # of k-plexes found:13

Data Used in the Experiments

We tested the software on a mix of real-world networks with various sizes and characteristics. All our networks are taken from the LASAGNE repository.

Software Download

Contacts

References

[Berlowitz et al.]Devora Berlowitz, Sara Cohen, and Benny Kimelfeld. "Efficient enumeration of maximal k-plexes". In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, SIGMOD '15, pages 431-444, New York, NY, USA, 2015. ACM.
[Conte et al.]Alessio Conte, Donatella Firmani, Caterina Mordente, Maurizio Patrignani, Riccardo Torlone. Fast Enumeration of Large k-Plexes. In, Tina Eliassi-Rad, Ravi Kumar, editors, 23rd SIGKDD Conference on Knowledge Discovery and Data Mining (KDD 2017), ACM, pages 115-124, 2017.
[LASAGNE]LASAGNE Laboratory of Algorithms, modelS, and Analysis of Graphs and NEtworks. https://www.pilucrescenzi.it/wp/networks/

 

This page is maintained by Maurizio Patrignani (patrigna@dia.uniroma3.it).