I am wondering if there are algorithms to cluster graphs; what I meant is to cluster many graphs, not cluster the nodes in a graph.
For example, we have N graphs, G1, G2, G3, …..GN. Then we can identify [G1, G2, G3] have high similarity in topology, [G4, G5] another one, and so on.
Best Answer
The main problem here seems to me to be about defining and finding the (dis)similarity between different graphs.
The 'graph edit distance' (defining distance in terms of number of operations neccesary to convert one graph into the other) is a common way that has been described here on stack overflow.
In section 4.2 of "Exact and inexact graph matching: methodology and applications" you find alternative methods for inexact graph matching.
These are: artificial neural networks, relaxation labeling, spectral methods and kernel methods.
Riesen, Kaspar, Xiaoyi Jiang, and Horst Bunke. "Exact and inexact graph matching: Methodology and applications." Managing and Mining Graph Data (2010): 217-247.
Then, after solving that problem, to perform clustering you can use any clustering method that uses a distance matrix.