Graph (mathematics)
From Wikipedia, the free encyclopedia
In mathematics and computer science, a graph is the basic object of study in graph theory. Informally speaking, a graph is a set of objects called points, nodes, or vertices connected by links called lines or edges. In a proper graph, which is by default undirected, a line from point A to point B is considered to be the same thing as a line from point B to point A. In a digraph, short for directed graph, the two directions are counted as being distinct arcs or directed edges. Typically, a graph is depicted in diagrammatic form as a set of dots (for the points, vertices, or nodes), joined by curves (for the lines or edges).
Contents |
[edit] Definitions
Definitions in graph theory vary. The following are some of the more basic ways of defining graphs and related mathematical structures.
[edit] Graph
A graph or undirected graph G is an ordered pair G: = (V,E) that is subject to the following conditions:
(Note that this defines the most general type of graph. Some authors call this a multigraph and reserve the term "graph" for simple graphs.)
The vertices belonging to an edge are called the ends, endpoints, or end vertices of the edge.
V (and hence E) are usually taken to be finite, and many of the well-known results are not true (or are rather different) for infinite graphs because many of the arguments fail in the infinite case. The order of a graph is | V | (the number of vertices). A graph's size is | E | , the number of edges. The degree of a vertex is the number of edges that connect to it, where an edge that connects to the vertex at both ends (a loop) is counted twice.
The edges E induce a symmetric binary relation ~ on V which is called the adjacency relation of G. Specifically, for each edge {u,v} the vertices u and v are said to be adjacent to one another, which is denoted u ~ v.
For an edge {u, v}, graph theorists usually use the somewhat shorter notation uv.
[edit] Types of graphs
[edit] Directed graph
A directed graph or digraph G is an ordered pair G: = (V,A) with
- V is a set, whose elements are called vertices or nodes,
- A is a set of ordered pairs of vertices, called directed edges, arcs, or arrows.
An arc e = (x,y) is considered to be directed from x to y; y is called the head and x is called the tail of the arc; y is said to be a direct successor of x, and x is said to be a direct predecessor of y. If a path leads from x to y, then y is said to be a successor of x, and x is said to be a predecessor of y. The arc (y,x) is called the arc (x,y) inverted.
A directed graph G is called symmetric if, for every arc that belongs to G, the corresponding inverted arc also belongs to G. A symmetric loopless directed graph is equivalent to an undirected graph with the pairs of inverted arcs replaced with edges; thus the number of edges is equal to the number of arcs halved.
A variation on this definition is the oriented graph, which is a graph (or multigraph; see below) with an orientation or direction assigned to each of its edges. A distinction between a directed graph and an oriented simple graph is that if x and y are vertices, a directed graph allows both (x,y) and (y,x) as edges, while only one is permitted in an oriented graph. A more fundamental difference is that, in a directed graph (or multigraph), the directions are fixed, but in an oriented graph (or multigraph), only the underlying graph is fixed, while the orientation may vary.
A directed acyclic graph, occasionally called a dag or DAG, is a directed graph with no directed cycles.
In the theory of Lie groups, a quiver Q is a directed graph serving as the domain of, and thus characterizing the shape of, a representation V defined as a functor, specifically an object of the functor category FinVctKF(Q) where F(Q) is the free category on Q consisting of paths in Q and FinVctK is the category of finite dimensional vector spaces over a field K. Representations of a quiver label its vertices with vector spaces and its edges (and hence paths) compatibly with linear transformations between them, and transform via natural transformations.
[edit] Undirected graph
A graph G = {V,E} in which every edge is undirected. This is the same as a digraph (look above) where for an edge (v,u) there is an edge from v to u and u to v.
[edit] Finite graph
A finite graph is a graph G = <V,E> such that V(G) and E(G) are finite sets.
[edit] Simple graph
A simple graph is an undirected graph that has no self-loops and no more than one edge between any two different vertices. In a simple graph the edges of the graph form a set (rather than a multiset) and each edge is a pair of distinct vertices. In a simple graph with p vertices every vertex has a degree that is less than p.
[edit] Regular graph
A regular graph is a graph where each vertex has the same number of neighbors, i.e., every vertex has the same degree or valency. A regular graph with vertices of degree k is called a k‑regular graph or regular graph of degree k.
[edit] Weighted graph
A graph is a weighted graph if a number (weight) is assigned to each edge. Such weights might represent, for example, costs, lengths or capacities, etc. depending on the problem.
Weight of the graph is sum of the weights given to all edges.
[edit] Mixed graph
A mixed graph G is a graph in which some edges may be directed and some may be undirected. It is written as an ordered triple G := (V, E, A) with V, E, and A defined as above. Directed and undirected graphs are special cases.
[edit] Complete graph
Complete graphs have the feature that each pair of vertices has an edge connecting them.
[edit] Loop
A loop is an edge (directed or undirected) which starts and ends on the same vertex; these may be permitted or not permitted according to the application. In this context, an edge with two different ends is called a link.
[edit] Multi graph
The term "multigraph" is generally understood to mean that multiple edges (and sometimes loops) are allowed. Where graphs are defined so as to allow loops and multiple edges, a multigraph is often defined to mean a graph without loops,[1] however, where graphs are defined so as to disallow loops and multiple edges, the term is often defined to mean a "graph" which can have both multiple edges and loops,[2] although many use the term "pseudograph" for this meaning.[3]
[edit] Half-edges, loose edges
In exceptional situations it is even necessary to have edges with only one end, called half-edges, or no ends (loose edges); see for example signed graphs and biased graphs.
[edit] Properties of graphs
- For more definitions see Glossary of graph theory.
Two edges of a graph are called adjacent (sometimes coincident) if they share a common vertex. Two arrows of a directed graph are called consecutive if the head of the first one is at the nock (notch end) of the second one. Similarly, two vertices are called adjacent if they share a common edge (consecutive if they are at the notch and at the head of an arrow), in which case the common edge is said to join the two vertices. An edge and a vertex on that edge are called incident.
The graph with only one vertex and no edges is called the trivial graph. A graph with only vertices and no edges is known as an edgeless graph. The graph with no vertices and no edges is sometimes called the null graph or empty graph, but not all mathematicians allow this object.
In a weighted graph or digraph, each edge is associated with some value, variously called its cost, weight, length or other term depending on the application; such graphs arise in many contexts, for example in optimal routing problems such as the traveling salesman problem.
Normally, the vertices of a graph, by their nature as elements of a set, are distinguishable. This kind of graph may be called vertex-labeled. However, for many questions it is better to treat vertices as indistinguishable; then the graph may be called unlabeled. (Of course, the vertices may be still distinguishable by the properties of the graph itself, e.g., by the numbers of incident edges). The same remarks apply to edges, so that graphs which have labeled edges are called edge-labeled graphs. Graphs with labels attached to edges or vertices are more generally designated as labeled. Consequently, graphs in which vertices are indistinguishable and edges are indistinguishable are called unlabeled. (Note that in the literature the term labeled may apply to other kinds of labeling, besides that which serves only to distinguish different vertices or edges.)
[edit] Examples
The picture is a graphic representation of the following graph
- V: = {1,2,3,4,5,6}
- E: = {{1,2},{1,5},{2,3},{2,5},{3,4},{4,5},{4,6}}
The fact that vertex 1 is adjacent to vertex 2 is sometimes denoted by 1 ~ 2.
- In category theory a category can be considered a directed multigraph with the objects as vertices and the morphisms as directed edges. The functors between categories induce then some, but not necessarily all, of the digraph morphisms.
- In computer science directed graphs are used to represent finite state machines and many other discrete structures.
- A binary relation R on a set X is a directed graph. Two edges x, y of X are connected by an arrow if xRy.
[edit] Important graphs
Basic examples are:
- In a complete graph each pair of vertices is joined by an edge, that is, the graph contains all possible edges.
- In a bipartite graph, the vertices can be divided into two sets, W and X, so that every edge has one vertex in each of the two sets.
- In a complete bipartite graph, the vertex set is the union of two disjoint subsets, W and X, so that every vertex in W is adjacent to every vertex in X but there are no edges within W or X.
- In a path of length n, the vertices can be listed in order, v0, v1, ..., vn, so that the edges are vi−1vi for each i = 1, 2, ..., n.
- A cycle or circuit of length n is a closed path without self-intersections; equivalently, it is a connected graph with degree 2 at every vertex. Its vertices can be named v1, ..., vn so that the edges are vi−1vi for each i = 2,...,n and vnv1
- A planar graph can be drawn in a plane with no crossing edges (i.e., embedded in a plane).
- A forest is a graph with no cycles.
- A tree is a connected graph with no cycles.
More advanced kinds of graphs are:
- The Petersen graph and its generalizations
- Perfect graphs
- Cographs
- Other graphs with large automorphism groups: vertex-transitive, arc-transitive, and distance-transitive graphs.
- Strongly regular graphs and their generalization distance-regular graphs.
[edit] Operations on graphs
There are several operations that produce new graphs from old ones. They may be separated into three categories
- Elementary operations, sometimes called "editing operations" on graphs, which create a new graph from the original one by a simple, local change, such as addition or deletion of a vertex or an edge, merging and splitting of vertices, etc.
- Unary operations, which create a significantly new graph from the old one. Examples:
- Binary operations, which create new graph from two initial graphs. Examples:
[edit] Generalizations
In a hypergraph, an edge can join more than two vertices.
An undirected graph can be seen as a simplicial complex consisting of 1-simplices (the edges) and 0-simplices (the vertices). As such, complexes are generalizations of graphs since they allow for higher-dimensional simplices.
Every graph gives rise to a matroid.
In model theory, a graph is just a structure. But in that case, there is no limitation on the number of edges: it can be any cardinal number.
[edit] Notes
[edit] References
- Balakrishnan, V. K., Graph Theory, McGraw-Hill; 1st edition (February 1, 1997). ISBN 0-07-005489-4.
- Berge, C., Théorie des graphes et ses applications. Collection Universitaire de Mathématiques, II Dunod, Paris 1958, viii+277 pp. (English edition, Wiley 1961; Methuen & Co, New York 1962; Russian, Moscow 1961; Spanish, Mexico 1962; Roumanian, Bucharest 1969; Chinese, Shanghai 1963; Second printing of the 1962 first English edition. Dover, New York 2001)
- Bollobas, Bela, Modern Graph Theory, Springer; 1st edition (August 12, 2002). ISBN 0-387-98488-7.
- Bang-Jensen, J. and Gutin, G., "Digraphs: Theory, Algorithms and Applications", Springer, 2000, free at www.cs.rhul.ac.uk/books/dbook/
- Diestel, Reinhard, Graph Theory, Springer; 2nd edition (February 18, 2000). ISBN 0-387-98976-5.
- Gross, Jonathan L., and Yellen, Jay, Graph Theory and Its Applications, CRC Press (December 30, 1998). ISBN 0-8493-3982-0.
- Gross, Jonathan L., and Yellen, Jay (eds.), Handbook of Graph Theory. CRC (December 29, 2003). ISBN 1-58488-090-2.
- Harary, Frank, Graph Theory, Addison Wesley Publishing Company (January 1995). ISBN 0-201-41033-8.
- Zwillinger, Daniel, CRC Standard Mathematical Tables and Formulae, Chapman & Hall/CRC; 31st edition (November 27, 2002). ISBN 1-58488-291-3.
[edit] See also
[edit] External links
- Graph theory tutorial
- Some graph theory algorithm animations
- Step through the algorithm to understand it.
- The compendium of algorithm visualisation sites
- Challenging Benchmarks for Maximum Clique, Maximum Independent Set, Minimum Vertex Cover and Vertex Coloring
- Image gallery : Some real-life graphs
- VisualComplexity.com - A visual exploration on mapping complex networks
- Grafos Spanish copyleft software
- Edge Addition Planarity Algorithm — Online version of a paper that describes the Boyer-Myrvold planarity algorithm.
- Edge Addition Planarity Algorithm Source Code — Free C source code for reference implementation of Boyer-Myrvold planarity algorithm, which provides both a combinatorial planar embedder and Kuratowski subgraph isolator.
- Library of Efficient Models and Optimization in Networks — It is an open source C++ template library aimed at combinatorial optimization tasks, especially those working with graphs and networks.
- Eric W. Weisstein, Graph at MathWorld.
- TORSCHE Scheduling Toolbox for Matlab is a freely available toolbox of scheduling and graph algorithms.