Daniel Porumbel

GI-EXT: Graph Isomorphism using EXTended graphs

The GI-EXT program is available for download as a source code form (Windows/Linux) or as a (non-optimized) Windows executable.

Notes:
1. To use the parallel version (in openMP), you do not need to change the code; please follow these instructions.
2. Before trying very large graphs (more than 10000 vertices), please make sure that the RAM memory will not overflow on to disk storage (the OS can swap some pages on disk). GI-Ext might require about 30 X |V|² bytes of free RAM, i.e. one needs 30 X 100 MBytes = 3 GBytes for |V|=10000, 12 GBytes for |V|=20000, 27 GBytes for |V|=30000.... 300 GBytes for |V|=100.000.


Graph Input Examples
Regular graphs:
  1. Two 50% density regular graphs with |V|=2000  and the solution (isomorphism):  reg2000G1.mat, reg2000G2.mat, reg2000G1G2Solution.txt
        - Download the above files and execute: ./gi-ext reg2000G1.mat reg2000G2.mat -SmySolutionFile.txt
        - The linux optimized version took 17 seconds, but the windows executable took between 20 seconds (AMD Athlon) to 32 seconds (Intel Core 2 @1.85Ghz) or 135 seconds (Intel Pentium 4 @ 2.8GHz)---the running speed depends on many CPU characteristics apart from the MHz clock rate.
  2. Another two 2000-vertex regular graphs: reg2000H1.mat, reg2000H2.mat (the solution is h(n) = [V|-n)
  3. Two regular graphs with |V|=3000 (density 50%) and the solution: reg3000G1.mat, reg2000H2.mat, reg3000G1G2Solution.txt
       - Solved in 56 seconds by the Linux version;
       - It is not possible to upload files larger than 10GBytes, but you can use the same program to generate larger regular graphs, see below.
  4. Two regular graphs with |V|=1000 in the edge-list DIMACS graph format (see below): reg1000G1.col, reg1000G2.col, reg1000G1G2Solution.txt

Strongly regular graphs
:
     The McLaughlin graph with a vertex-permuted copy and the isomorphism: mclaughlinG1.col, mclaughlinG2.col, mclaughlinSolution.txt
     -attention: unlike the solution textfile, the input graphs are 0-indexed---they are built by simple modifications of edge-list graphs from [2] (used by permission)

Pairs of graphs extracted from the graph database [1], used by permission (for research testing).
    - 
iso_b03m_m1000.A00   and iso_b03m_m1000.B00
    - iso_m4Dr6_m1296.A00  and iso_m4Dr6_m1296.B00
    - iso_r01_m1000.A00 and iso_r01_m1000.B00
Easy-to-Use GI-Ext Examples 
Very simple examples:
     1) ./gi-ext reg3000G1.mat reg3000G2.mat
          -tests two graphs for isomorphism, the extension determines the graph type, e.g. ".mat" is a very simple adjaceny matrix format (text file), see below.
     2) ./gi-ext iso_m4Dr6_m1296.A00 iso_m4Dr6_m1296.B00 -Siso_m4Dr6_m1296Solution.txt
          -generates the solution file containing the isomorphism of this two graphs: iso_m4Dr6_m1296Solution.txt
     3) ./gi-ext mclaughlinG1.col mclaughlinG2.col -SmclauglinSolution.txt
         - the output is analyzed here.
Slightly more complicated example:
     4) ./gi-ext 1000 -G 1000regG1.col -H 1000regG2.col -Ssolution.txt
      generates two random regular graphs with 1000 vertices and tests them for isomorphism. After this, it saves both graphs and the isomorphism solution.
     5) ./gi-ext without argments shows all possible options.
The times required to execute example 4) with |V| (the first argument) from 1000 to 20000: Times1000-20000.txt
Supported Input Formats

.mat adjaceny matrix format (but put only (|V|-1) lines of elements, those bellow the diagonal), see this example: adjacencyMatrixFormat.mat
.col  Dimacs graph standard format, basically a list of edges (it is enough to give any of (a,b) and (b,a); the first vertex can be 0 or 1); see this example: myciel3.col
       This format is useful because one can easily swap two vertices with a command like:
       sed -e "s/123/TMP/g;s/456/123/g;s/TMP/456/g" -i reg1000G1.col   #pay attention not to change the field "number of vertices/edges" with this command.
.A00 The format used in the graph database [1] (same as for B00, A01, B01, A02, etc.)


References

[1] De Santo et. al, A large database of graphs and its use for benchmarking graph isomorphism algorithms, Pattern Recognition Letters, 24:8
    The actual graphs are available at http://amalfi.dis.unina.it/graph/
[2] http://people.csse.uwa.edu.au/gordon/constructions/mclaughlin/index.html

Other software:
bliss
saucy
nauty

Contact: daniel.porumbel AT gmail DOT.DOT com

Attachments (24)

  • Times1000-20000.txt - on Mar 1, 2009 8:40 AM by Daniel Porumbel (version 1)
    1k Download
  • adjacencyMatrixFormat.mat - on Feb 24, 2009 4:03 AM by Daniel Porumbel (version 1)
    1k Download
  • iso_b03m_m1000.A00 - on Feb 26, 2009 6:00 AM by Daniel Porumbel (version 1)
    5k Download
  • iso_b03m_m1000.B00 - on Feb 26, 2009 6:00 AM by Daniel Porumbel (version 1)
    5k Download
  • iso_m4Dr6_m1296.A00 - on Feb 26, 2009 5:59 AM by Daniel Porumbel (version 1)
    11k Download
  • iso_m4Dr6_m1296.B00 - on Feb 26, 2009 5:59 AM by Daniel Porumbel (version 1)
    11k Download
  • iso_m4Dr6_m1296Solution.txt - on Feb 26, 2009 8:05 AM by Daniel Porumbel (version 1)
    12k Download
  • iso_r01_m1000.A00 - on Feb 26, 2009 5:58 AM by Daniel Porumbel (version 1)
    197k Download
  • iso_r01_m1000.B00 - on Feb 26, 2009 5:58 AM by Daniel Porumbel (version 1)
    197k Download
  • mclaughlinG1.col - on Feb 24, 2009 4:13 AM by Daniel Porumbel (version 1)
    138k Download
  • mclaughlinG2.col - on Feb 24, 2009 4:15 AM by Daniel Porumbel (version 1)
    138k Download
  • mclaughlinSolution.txt - on Feb 24, 2009 4:17 AM by Daniel Porumbel (version 1)
    2k Download
  • output.GIF - on Feb 25, 2009 1:15 PM by Daniel Porumbel (version 1)
    8k View Download
  • reg1000G1.col - on Feb 17, 2009 5:27 AM by Daniel Porumbel (version 1)
    4779k Download
  • reg1000G1G2Solution.txt - on Feb 17, 2009 5:36 AM by Daniel Porumbel (version 1)
    8k Download
  • reg1000G2.col - on Feb 24, 2009 4:14 AM by Daniel Porumbel (version 3 / earlier versions)
    4779k Download
  • reg2000G1.mat - on Feb 17, 2009 3:13 AM by Daniel Porumbel (version 1)
    3906k Download
  • reg2000G1G2Solution.txt - on Feb 17, 2009 3:06 AM by Daniel Porumbel (version 1)
    17k Download
  • reg2000G2.mat - on Feb 17, 2009 3:20 AM by Daniel Porumbel (version 1)
    3906k Download
  • reg2000H1.mat - on Feb 17, 2009 5:22 AM by Daniel Porumbel (version 1)
    3906k Download
  • reg2000H2.mat - on Feb 17, 2009 5:23 AM by Daniel Porumbel (version 1)
    3906k Download
  • reg3000G1.mat - on Feb 17, 2009 5:20 AM by Daniel Porumbel (version 1)
    8789k Download
  • reg3000G1G2Solution.txt - on Feb 17, 2009 5:22 AM by Daniel Porumbel (version 1)
    27k Download
  • reg3000G2.mat - on Feb 17, 2009 5:21 AM by Daniel Porumbel (version 1)
    8789k Download