About igraph releases and other things
igraph 0.6 is a major new release of igraph. It contains many new features and major changes, a lot of bug fixes and improvements. As always, we are grateful to the people who sent comments, bug reports, questions, and specially to people who contributed code.
See below a list of major changes, with links to the relevant sections of the documentation. New features in R, Python, and C are all listed here.
See at the end for a (more) complete list of changes.
Community structure detection via exact modularity optimization. As
modularity optimization in an NP-complete problem, this works only for
small graphs. See
igraph_community_optimal_modularity
.
The multi-level modularity optimization algorithm by Blondel et
al. was added. See
igraph_community_multilevel
.
Hierarchical random graphs and community finding, based on the code from Aaron Clauset. See In the manual for details.
We support now the InfoMAP community finding method, thanks to
Emmanuel Navarro for the code. See
igraph_community_infomap
.
The edge betweenness community detection method of Newman and Girvan now also works on weighted graphs. See the Reference manual.
We have added some functions to compare various community structures.
See
igraph_compare_communities
.
Igraph now implements the Spectral Coarse Graining method, by David Morton, our implementation is based on his code. See the manual.
The cohesive block finding functions were rewritten from scratch in
C. They are much faster now, and they have a nicer API, too. See
igraph_cohesive_blocks
.
Centralization scores for degree, closeness, betweenness and eigenvector centrality. See the manual.
Personalized PageRank scores. See the manual.
Authority and hub scores, betweenness and closeness calculations all support edge weights now. See the manual.
Igraph now implements the Sugiyama layout algorithm for layered
directed acyclic graphs. See
igraph_layout_sugiyama
.
Igraph now implements the push-relabel algorithm and the Kuhn-Munkres algorithm (also known as the Hungarian method) to find maximum matchings in unweighted and weighted bipartite graphs. See the manual.
igraph_maximum_cardinality_search()
and
chordality test: igraph_is_chordal()
.igraph_read_graph_dl()
. See
http://www.analytictech.com/networks/dataentry.htm.igraph_bfs()
, igraph_dfs()
).igraph_centralization()
.igraph_sparsemat_t
, a type that implements sparse
matrices based on the CXSparse library by Tim Davis.
See http://www.cise.ufl.edu/research/sparse/CXSparse/.igraph_personalized_pagerank()
and
igraph_personalized_pagerank_vs()
.igraph_assortativity()
,
igraph_assortativity_nominal()
, and igraph_assortativity_degree()
.igraph_community_multilevel()
.igraph_version()
function.igraph_layout_star()
.igraph_subgraph_edges()
.igraph_compare_communities()
.igraph_community_optimal_community()
.igraph_maxflow()
, igraph_mincut()
,
igraph_all_st_cuts()
, igraph_all_st_mincuts()
.igraph_layout_mds()
.igraph_get_all_shortest_paths_dijkstra
, for calculating all
non-negatively weighted shortest paths.igraph_is_dag()
.igraph_cohesive_blocks()
.igraph_status()
and related functions.igraph_write_graph_leda()
.igraph_contract_vertices()
.igraph_hrg_game()
, igraph_hrg_fit()
, etc.igraph_has_multiple()
to decide whether a graph has multiple edges.igraph_layout_grid()
and igraph_layout_grid_3d()
.igraph_integer_t
is really an integer now, it used to be a double.igraph_minimum_spanning_tree()
, calls either the weighted or
the unweighted implementation.igraph_eccentricity()
), and radius (igraph_radius()
)
calculations.igraph_deterministic_optimal_imitation()
,
igraph_stochastic_imitation()
, igraph_roulette_wheel_imitation()
,
igraph_moran_process()
,igraph_layout_sugiyama()
.igraph_static_fitness_game()
,
igraph_static_power_law_game()
.igraph_community_infomap()
.igraph_scg()
.igraph_diversity()
.igraph_authority_score()
) and hub (igraph_hub_score()
) scores
support edge weights now.igraph_laplacian()
) supports edge
weights now.igraph_betweenness()
) and closeness
(igraph_closeness()
) calculations.igraph_isomorphic_vf2()
, igraph_count_isomorphisms_vf2()
,
igraph_get_isomorphisms_vf2()
, igraph_subisomorphic_vf2()
,
igraph_count_subisomorphisms_vf2()
, igraph_get_subisomorphisms_vf2()
).igraph_vector*_t
, igraph_matrix*_t
and
igraph_strvector_t
types.igraph_biconnected_components()
)
can now return the components themselves.igraph_eigenvector_centrality()
now works for directed graphs.get_shortest_paths()
and
get_shortest_paths_dijkstra()
can now return the edges along the paths.igraph_bipartite_projection()
calculates multiplicity of edges.igraph_barabasi_game()
was rewritten and it supports three
algorithms now, the default algorithm does not generate multiple or
loop edges.igraph_watts_strogatz()
can
now create graphs without loop edges.We also fixed numerous bugs, too many to include them here, sorry. You may look at our bug tracker at https://bugs.launchpad.net/igraph to check whether a bug was fixed or not. Thanks for all the people reporting bugs. Special thanks to Minh Van Nguyen for a lot of bug reports, documentation fixes and contributed code!