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

Version 1.34 / Apr 16, 2018

**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.34.tar.gz`

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.

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