This file is essentially a wrapper around the JGraphT library, allowing it to be called from within Matlab on Matgraph graph objects. Since all the processing is done in Java, this is a very quick method for listing the maximal independent sets of a graph.
To use this file, first download the Matgraph library (http://www.ams.jhu.edu/~ers/matgraph/) which allows one to manipulate graph objects in Matlab. Then, you need to get the JGraphT Java library that contains Java algorithms that run on graphs (http://jgrapht.sourceforge.net/). In order to use these Java functions in Matlab, perform the following configuration steps:
Locate the classpath.txt file (its location can be found by typing 'which classpath.txt'.
Add the following line to the end of this file:
where path is the location where you copied the JGraphT library.
Type 'which org.matjgraph.MaximalCliques.getMaximalCliques' to make sure the class is loaded.
All you have to do now is put the Jmaximal.m file in a folder called '@graph' (since it will be called on Matgraph graph objects) that is in your path. Here's a sample use:
>> g = graph;
1 1 0 0 0
0 0 1 1 0
1 0 0 0 1
0 1 1 0 0
0 0 0 1 1
As a speed comparison with my other file BKMaximal that does the same thing in Matlab, consider the following results obtained on a graph with 36 vertices and 252 edges:
Elapsed time is 47.721192 seconds.
Elapsed time is 0.056165 seconds.
Berk Birand (2021). Maximal Independent Sets using JGraphT (https://www.mathworks.com/matlabcentral/fileexchange/27074-maximal-independent-sets-using-jgrapht), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!