S1mpleCod / cohesive_subgraph_bipartite

This is an efficient algorithm for maximal biclique enumeration

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cohesive_Subgraph_Bipartite

This repository contains a maximal biclique enumeration algorithm ooMBEA. ooMBEA implements techniques proposed in Maximal Biclique Enumeration for Large Sparse Bipartite Graphs (PVLDB 22), which inlcude order optimisation, batch-pivots technique and array-based data strcutre.

Utilities

Different formats of input are supproted such as adjlist (right and left), edge list or adjlist. Please see LCUtility.h/.cpp. Please refine delimiters according to datasets.

Data strctures

Adjacency hashset and the proposed data strcutre are implemented. Please load your graphs accrodingly. Please see bigraph.h/.cpp.

Algorithms

Please see BiCore.h/.cpp for the unilateral core related algorithms Please see ooMBE.h/.cpp for the main algorithm

How to reproduce major results

  • In main.cpp, please refine the parameter in bg.readEdgelist("---") and replace --- with an edge list of a dataset.

    Extra help: The default edge list supported should be: 1)vertex id is from 1, 2)directly start with an edge, 3) the delimiter should be an empty space between two vertices, and 3) each line contains one single edge. For instance: 1 2 2 1 3 2 The code will make ids of vertices starting from 0. Change readEdgeList(-) in bgraph.cpp if you have different delimiters or ids.

  • Build the entire project using the provided CMake scripts using CMake, and it will generate the requried makefile and compile the code to a runable file. The compiling parameters are configured in CMkaeLists.txt.

  • Run the runnable file, and you will get results following the following format:

    call adv_mbeStart()

    switched! //Which vertex set is enumerated

    Running time in milliseconds: 14327 //total running time excluding loading the data into the proposed data structure

    Number of bicliques: 4899032 // number of maximal bicliques

About

This is an efficient algorithm for maximal biclique enumeration


Languages

Language:C++ 99.7%Language:CMake 0.3%