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

Version 1.31 / Jul 2, 2016

**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**graphmergelink**- Merge multiple links between nodes into a single one**graphstat**- Calcurate graph statistics**ns2dot**- Parse ns2 simulation script, and visualize network topology and flows

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

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

Copyright (C) 2004-2016 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.

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

```
perl Makefile.PL
make
make install
```

**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.

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

Hiroyuki Ohsaki (ohsaki[atmark]lsnl.jp)