NAME

Graph::Enhanced - Extensive graph library compatible with Graph module.

Version 1.34 / Apr 16, 2018

What is Graph::Enhanced?

Graph::Enhanced is an extensive graph library, which was initially developped as extensions to Graph module developed by Jarkko Hietaniemi. But Graph::Enhanced has been completely rewritten, and it is now independent of Graph module. Graph::Enhanced implements its own data structures and functions for manipulating directed/undirected graphs.

Graph::Enhanced provides the following methods.

  new
  directed
  undirected
  multiedged
  set_graph_attribute
  get_graph_attribute
  average_degree
  expect_undirected
  expect_directed
  expect_multiedged
  vertices
  has_vertex
  add_vertex
  add_vertices
  predecessors
  successors
  neighbors
  set_vertex_attribute
  get_vertex_attribute
  set_vertex_attributes
  get_vertex_attributes
  set_vertex_weight
  get_vertex_weight
  delete_vertex
  random_vertex
  edges
  unique_edges
  has_edge
  get_multiedge_ids
  get_edge_count
  add_edge
  delete_edge
  delete_all_edges
  edges_from
  edges_to
  edges_at
  out_degree
  in_degree
  degree
  random_edge
  set_edge_attribute_by_id
  get_edge_attribute_by_id
  set_edge_attributes_by_id
  get_edge_attributes_by_id
  set_edge_weight_by_id
  get_edge_weight_by_id
  get_edge_weight
  dijkstra
  dijkstra_all_pairs
  floyd_warshall
  is_reachable
  is_connected
  explore
  copy_graph
  directed_copy
  complete_graph
  create_graph
  create_random_graph
  create_random_sparse_graph
  create_barabasi_graph
  create_barabasi_random_graph
  create_ring_graph
  create_tree_graph
  create_btree_graph
  create_treeba_graph
  create_generalized_barabasi_graph
  create_latent_graph
  create_lattice_graph
  create_voronoi_graph
  import_graph
  import_dot
  import_dot_quick
  import_dimacs
  import_inet
  import_brite
  import_gw
  import_nsnode
  import_nsagent
  import_metis
  import_edge
  export_graph
  export_dot
  export_dimacs
  export_inet
  export_brite
  export_gw
  export_nsnode
  export_nsagent
  export_nsagent_edge
  export_nsagent_udp
  export_metis
  export_pdnsnode
  export_pdnsagent
  export_gdl

Graph::Enhanced also includes several handy tools for manipulating graphs. Noticeable features of Graph::Enhanced are: (1) creation of different types of graphs, including tree, random and scale-free networks, and (2) import and export of graph data in multiple formats, such as dot, dimacs, inet, brite, gw, ns2, pdns, and metis.

Also, Graph::Enhanced includes the following programs:

graphconv - Generic graph format converter
graphgen - Generate a graph and dump in standard output
graphstat - Calcurate graph statistics
ns2dot - Parse ns2 simulation script, and visualize network topology and flows

Availability

The latest version of Graph::Enhanced can be found at the following location.

  http://www.lsnl.jp/~ohsaki/software/graphtools/Graph-Enhanced-1.34.tar.gz

Copyright

Copyright (C) 2004-2018 Hiroyuki Ohsaki (ohsaki[atmark]lsnl.jp)

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Installation

Graph::Enhanced uses standard Perl's MakeMaker module. Thus, just type the following commands.

  perl Makefile.PL
  make 
  make install

Feedback

Graph::Enhanced has been still under development process. You will encounter various bugs and troubles. If you find any bugs, first check if a newer version exists. If not, please mail bug report or fixing patch to me. I appreciate your comments and/or suggestions.

References

graphconv(1), graphgen(1), graphmergelink(1), graphstat(1), ns2dot(1)

Author

Hiroyuki Ohsaki (ohsaki[atmark]lsnl.jp)