In the mathematical domain of graph theory, a bidirected graph (introduced by Edmonds & Johnson 1970) is a graph in which each edge is given an independent orientation (or direction, or arrow) at each end. Thus, there are three kinds of bidirected edges: those where the arrows point outward, towards the vertices, at both ends; those where both arrows point inward, away from the vertices; and those in which one arrow points away from its vertex and towards the opposite end, while the other arrow points in the same direction as the first, away from the opposite end and towards its own vertex.
Edges of these three types may be called, respectively, extraverted, introverted, and directed. The "directed" edges are the same as ordinary directed edges in a directed graph; thus, a directed graph is a special kind of bidirected graph.
It is sometimes desirable to have also edges with only one end (half-edges); these get only one arrow. An edge with no ends (a loose edge) has no arrows. The edges that are neither half nor loose edges may be called ordinary edges.
A symmetric directed graph (that is, a directed graph in which the reverse of every edge is also an edge) is sometimes also called a "bidirected graph".
- Edmonds, Jack; Johnson, Ellis L. (1970), "Matching: a well-solved class of linear programs", Combinatorial Structures and their Applications: Proceedings of the Calgary Symposium, June 1969, New York: Gordon and Breach. Reprinted in Combinatorial Optimization — Eureka, You Shrink!, Springer-Verlag, Lecture Notes in Computer Science 2570, 2003, pp. 27–30, doi:10.1007/3-540-36478-1_3.
- Mehlhorn, Kurt; Sanders, Peter (2008), Algorithms and Data Structures: The Basic Toolbox, Springer Science & Business Media, pp. 49 and 170–171, ISBN 978-3-540-77978-0