## Maximal Independent Sets using JGraphT

version 1.0.0.0 (1.2 KB) by
Compute all the maximal independent sets of a given graph using the JGraphT library.

Updated 24 Mar 2010

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:
/path/jgrapht-0.7.3/lib
/path/jgrapht-0.7.3/build
where path is the location where you copied the JGraphT library.
Restart Matlab.
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;
>> cycle(g,5);
>>Jmaximal(g)
ans =

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:

Using BKMaximal:
Elapsed time is 47.721192 seconds.

Using JMaximal:
Elapsed time is 0.056165 seconds.

### Cite As

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
Created with R2008b
Compatible with any release
##### Platform Compatibility
Windows macOS Linux