# Multigraph

{{#invoke:Hatnote|hatnote}} Template:Redirect-distinguish

In mathematics, and more specifically in graph theory, a **multigraph** is a graph which is permitted to have multiple edges (also called *parallel edges*^{[1]}), that is, edges that have the same end nodes. Thus two vertices may be connected by more than one edge.

There are two distinct notions of multiple edges:

*Edges without own identity*: The identity of an edge is defined solely by the two nodes it connects. In this case, the term "multiple edges" means that the same edge can occur several times between these two nodes.*Edges with own identity*: Edges are primitive entities just like nodes. When multiple edges connect two nodes, these are different edges.

A multigraph is different from a hypergraph, which is a graph in which an edge can connect any number of nodes, not just two.

For some authors, the terms *pseudograph* and *multigraph* are synonymous. For others, a **pseudograph** is a multigraph with loops.

## Contents

## Undirected multigraph (edges without own identity)

Formally, a multigraph *G* is an ordered pair *G*:=(*V*, *E*) with

Some authors allow multigraphs to have loops, that is, an edge that connects a vertex to itself,^{[2]} while others call these **pseudographs**, reserving the term multigraph for the case with no loops.^{[3]}

A variant of this notion, "directed" multigraphs, might be used to model the possible flight connections offered by an airline. In this case the multigraph would be a directed graph with pairs of directed parallel edges connecting cities to show that it is possible to fly both *to* and *from* these locations.

## Directed multigraph (edges without own identity)

A **multidigraph** is a directed graph which is permitted to have *multiple arcs,* i.e., arcs with the same source and target nodes. A multidigraph *G* is an ordered pair *G*:=(*V*,*A*) with

*V*a set of*vertices*or*nodes*,*A*a multiset of ordered pairs of vertices called*directed edges*,*arcs*or*arrows*.

A **mixed multigraph** *G*:=(*V*,*E*, *A*) may be defined in the same way as a mixed graph.

## Directed multigraph (edges with own identity)

A multidigraph or quiver *G* is an ordered 4-tuple *G*:=(*V*, *A*, *s*, *t*) with

*V*a set of*vertices*or*nodes*,*A*a set of*edges*or*lines*,- , assigning to each edge its source node,
- , assigning to each edge its target node.

In category theory a small category can be defined as a multidigraph (with edges having their own identity) equipped with an associative composition law and a distinguished self-loop at each vertex serving as the left and right identity for composition. For this reason, in category theory the term *graph* is standardly taken to mean "multidigraph", and the underlying multidigraph of a category is called its **underlying digraph**.

## Labeling

Multigraphs and multidigraphs also support the notion of graph labeling, in a similar way. However there is no unity in terminology in this case.

The definitions of **labeled multigraphs** and **labeled multidigraphs** are similar, and we define only the latter ones here.

*Definition 1*: A labeled multidigraph is a labeled graph with *labeled* arcs.

Formally: A labeled multidigraph G is a multigraph with *labeled* vertices and arcs. Formally it is an 8-tuple where

- V is a set of vertices and A is a set of arcs.
- and are finite alphabets of the available vertex and arc labels,
- and are two maps indicating the
*source*and*target*vertex of an arc, - and are two maps describing the labeling of the vertices and arcs.

*Definition 2*: A labeled multidigraph is a labeled graph with multiple *labeled* arcs, i.e. arcs with the same end vertices and the same arc label (note that this notion of a labeled graph is different from the notion given by the article graph labeling).

## See also

## Notes

## References

- {{#invoke:citation/CS1|citation

|CitationClass=book }}

- {{#invoke:citation/CS1|citation

|CitationClass=book }}

- {{#invoke:citation/CS1|citation

|CitationClass=book }}

- {{#invoke:citation/CS1|citation

|CitationClass=book }}

- {{#invoke:citation/CS1|citation

|CitationClass=book }}

- {{#invoke:citation/CS1|citation

|CitationClass=book }}

- {{#invoke:citation/CS1|citation

|CitationClass=book }}

- {{#invoke:Citation/CS1|citation

|CitationClass=journal }}

- {{#invoke:citation/CS1|citation

|CitationClass=book }}

- {{#invoke:citation/CS1|citation

|CitationClass=book }}

## External links

- Paul E. Black, Multigraph at the NIST Dictionary of Algorithms and Data Structures.