Comment 16 for bug 404256

Revision history for this message
Tamás Nepusz (ntamas) wrote :

Revision #1624 contains some stability improvements to igraph_community_leading_eigenvector{_naive} as follows:

- The stopping threshold for the leading eigenvalue is 0.000001 instead of strictly zero -- this eliminates the issues with non-deterministic results in case of practically indivisible graphs (e.g., small star graphs)

- The connected components of the graph are determined as a preprocessing step in igraph_community_leading_eigenvector{_naive} using igraph_clusters(). Each cluster is then subdivided further using the eigenvector method. This eliminates the issues with graphs containing isolated vertices or many small components. (The attached simpleModel.py now runs without error messages using the default ARPACK iteration theshold, which is only 3000).

However, the graphs in comment #12 still don't work really well. They can also be considered practically indivisible, and a common property of them is that the top eigenvalue is zero. (In some cases, the multiplicity of the top eigenvalue is greater than 1). I guess ARPACK struggles to find the corresponding eigenvector within machine precision.