Graph (discrete mathematics): Difference between revisions
m Reverted 1 edit by 168.216.210.207 identified as vandalism to last revision by Giftlite. using TW |
See wp:manual of style#Italics "Italics are used sparingly to emphasize words in sentences (bolding is normally not used at all for this purpose)" |
||
Line 3: | Line 3: | ||
[[Image:6n-graf.svg|thumb|250px|A [[graph drawing|drawing]] of a labeled graph on 6 vertices and 7 edges.]] |
[[Image:6n-graf.svg|thumb|250px|A [[graph drawing|drawing]] of a labeled graph on 6 vertices and 7 edges.]] |
||
In [[mathematics]] a '''graph''' is the basic object of study in [[graph theory]]. Graphs also play an important role in [[computer science]]. Informally speaking, a graph is a set of objects called |
In [[mathematics]] a '''graph''' is the basic object of study in [[graph theory]]. Graphs also play an important role in [[computer science]]. Informally speaking, a graph is a set of objects called vertices, nodes, or points, some of which may be connected by links variously called edges, lines, or arcs. Among the many variations and elaborations on the concept, these links may be understood to have an orientation or not. If not, the links are merely between vertices ''u'' and ''v'', or even among ''u'', ''v'', ''w'', ... When there ''is'' orientation, one may have a link from ''u'' to ''v'', and this arc or directed edge is distinct from a link from ''v'' to ''u''. |
||
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). |
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). |
||
Line 12: | Line 12: | ||
===Graph=== |
===Graph=== |
||
[[Image:Multigraph.svg|thumb|125px|A general example of a graph (actually, a [[pseudograph]]) with three vertices and six edges.]] |
[[Image:Multigraph.svg|thumb|125px|A general example of a graph (actually, a [[pseudograph]]) with three vertices and six edges.]] |
||
In the most common sense of the term,<ref>See, for instance, Iyanaga and Kawada, |
In the most common sense of the term,<ref>See, for instance, Iyanaga and Kawada, 69 J, p. 234.</ref> |
||
a |
a graph is an [[ordered pair]] <math>G := (V, E)</math> comprising a [[set (mathematics)|set]] <math>V</math> of vertices or nodes together with a set <math>E</math> of edges or lines, which are 2-element subsets of <math>V</math>. To avoid ambiguity, this type of graph may be described precisely as [[graph (mathematics)#undirected graph|undirected]] and [[graph (mathematics)#simple graph|simple]]. |
||
Other senses of ''graph'' stem from different conceptions of the edge set. In one more generalized notion,<ref>See, for instance, Graham et al., p. 5.</ref> <math>E</math> is a set together with a relation of |
Other senses of ''graph'' stem from different conceptions of the edge set. In one more generalized notion,<ref>See, for instance, Graham et al., p. 5.</ref> <math>E</math> is a set together with a relation of incidence that associates with each edge two vertices. In another generalized notion, <math>E</math> is a [[multiset]] of unordered pairs of (not necessarily distinct) vertices. Many authors call this type of object a [[multigraph]] or [[pseudograph]]. |
||
All of these variants and others are described more fully below. |
All of these variants and others are described more fully below. |
||
The vertices belonging to an edge are called the |
The vertices belonging to an edge are called the ends, endpoints, or end vertices of the edge. |
||
<math>V</math> and <math>E</math> are usually taken to be finite, and many of the well-known results are not true (or are rather different) for |
<math>V</math> and <math>E</math> 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 graph|infinite case]]. The order of a graph is <math>\left|V\right|</math> (the number of vertices). A graph's size is <math>\left|E\right|</math>, 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 (graph theory)|loop]]) is counted twice. |
||
The edges <math>E</math> of an undirected graph <math>G</math> induce a symmetric binary relation ~ on <math>V</math> that is called the [[adjacency matrix| |
The edges <math>E</math> of an undirected graph <math>G</math> induce a symmetric binary relation ~ on <math>V</math> that is called the [[adjacency matrix|adjacency]] relation of <math>G</math>. Specifically, for each edge {''u'',''v''} the vertices ''u'' and ''v'' are adjacent to one another, which is denoted ''u'' ~ ''v''. |
||
For an edge {''u'', ''v''}, graph theorists usually use the somewhat shorter notation ''uv''. |
For an edge {''u'', ''v''}, graph theorists usually use the somewhat shorter notation ''uv''. |
||
Line 40: | Line 40: | ||
[[Image:Directed.svg|125px|thumb|A directed graph.]] |
[[Image:Directed.svg|125px|thumb|A directed graph.]] |
||
{{main|Digraph (mathematics)}} |
{{main|Digraph (mathematics)}} |
||
A |
A directed graph or digraph is an ordered pair <math>D := (V, A)</math> with |
||
* <math>V</math> a [[set (mathematics)|set]] whose elements are called |
* <math>V</math> a [[set (mathematics)|set]] whose elements are called vertices or nodes, and |
||
* <math>A</math> a set of ordered pairs of vertices, called |
* <math>A</math> a set of ordered pairs of vertices, called arcs, directed edges, or arrows. |
||
An arc <math>a = (x, y)</math> is considered to be directed |
An arc <math>a = (x, y)</math> is considered to be directed from <math>x</math> to <math>y</math>; <math>y</math> is called the head and <math>x</math> is called the tail of the arc; <math>y</math> is said to be a direct successor of <math>x</math>, and <math>x</math> is said to be a direct predecessor of <math>y</math>. If a [[path (graph theory)|path]] leads from <math>x</math> to <math>y</math>, then <math>y</math> is said to be a successor of <math>x</math> and reachable from <math>x</math>, and <math>x</math> is said to be a predecessor of <math>y</math>. The arc <math >(y, x)</math > is called the arc <math>(x, y)</math > inverted. |
||
A directed graph ''D'' is called |
A directed graph ''D'' is called symmetric if, for every arc in ''D'', the corresponding inverted arc also belongs to ''D''. A symmetric loopless directed graph ''D'' = (''V'', ''A'') is equivalent to a simple undirected graph ''G'' = (''V'', ''E''), where the pairs of inverse arcs in ''A'' correspond 1-to-1 with the edges in ''E''; thus the edges in ''G'' number |''E''| = |''A''|/2, or half the number of arcs in ''D''. |
||
A variation on this definition is the |
A variation on this definition is the oriented graph, in which not more than one of <math>(x, y)</math> and <math>(y, x)</math> may be arcs. |
||
====Mixed graph==== |
====Mixed graph==== |
||
A |
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. |
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. |
Directed and undirected graphs are special cases. |
||
====Multigraph==== |
====Multigraph==== |
||
A [[loop (graph theory)|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 |
A [[loop (graph theory)|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. |
||
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,<ref> For example, see Balakrishnan, p. 1, Gross (2003), p. 4, and Zwillinger, p. 220.</ref> 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,<ref>For example, see. Bollobas, p. 7 and Diestel, p. 25.</ref> although many use the term "[[pseudograph]]" for this meaning.<ref>Gross (1998), p. 3, Gross (2003), p. 205, Harary, p.10, and Zwillinger, p. 220.</ref> |
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,<ref> For example, see Balakrishnan, p. 1, Gross (2003), p. 4, and Zwillinger, p. 220.</ref> 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,<ref>For example, see. Bollobas, p. 7 and Diestel, p. 25.</ref> although many use the term "[[pseudograph]]" for this meaning.<ref>Gross (1998), p. 3, Gross (2003), p. 205, Harary, p.10, and Zwillinger, p. 220.</ref> |
||
Line 70: | Line 70: | ||
====Half-edges, loose edges==== |
====Half-edges, loose edges==== |
||
In exceptional situations it is even necessary to have edges with only one end, called |
In exceptional situations it is even necessary to have edges with only one end, called half-edges, or no ends (loose edges); for example [[signed graph]]s and [[biased graph]]s. |
||
===Important graph classes=== |
===Important graph classes=== |
||
Line 89: | Line 89: | ||
{{main|Connectivity (graph theory)}} |
{{main|Connectivity (graph theory)}} |
||
In an [[undirected graph]] ''G'', two [[vertex (graph theory)|vertices]] ''u'' and ''v'' are |
In an [[undirected graph]] ''G'', two [[vertex (graph theory)|vertices]] ''u'' and ''v'' are connected if ''G'' contains a [[Path (graph theory)|path]] from ''u'' to ''v''. Otherwise, they are disconnected. A [[Graph (mathematics)|graph]] is connected if every pair of distinct vertices in the graph is connected and disconnected otherwise. |
||
A graph is called |
A graph is called ''k''-vertex-connected or ''k''-edge-connected if removal of ''k'' or more vertices (respectively, edges) makes the graph disconnected. A ''k''-vertex-connected graph is often called ''k''-connected. |
||
A [[directed graph]] is |
A [[directed graph]] is weakly connected if replacing all of its directed edges with undirected edges produces a connected (undirected) graph. It is strongly connected or strong if it contains a directed path from ''u'' to ''v'' and a directed path from ''v'' to ''u'' for every pair of vertices ''u'',''v''. |
||
==Properties of graphs== |
==Properties of graphs== |
||
:''For more definitions see [[Glossary of graph theory]].'' |
:''For more definitions see [[Glossary of graph theory]].'' |
||
Two edges of a graph are |
Two edges of a graph are adjacent (sometimes coincident) if they share a common vertex. Two arrows of a directed graph are consecutive if the head of the first one is at the [[nock]] (notch end) of the second one. Similarly, two vertices are 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 the two vertices. An edge and a vertex on that edge are incident. |
||
The graph with only one vertex and no edges is |
The graph with only one vertex and no edges is trivial graph. A graph with only vertices and no edges is 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 |
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 problem]]s 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 |
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 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.) |
||
==Examples== |
==Examples== |
Revision as of 15:47, 28 November 2008
![](https://cdn.statically.io/img/upload.wikimedia.org/wikipedia/commons/thumb/5/5b/6n-graf.svg/250px-6n-graf.svg.png)
In mathematics a graph is the basic object of study in graph theory. Graphs also play an important role in computer science. Informally speaking, a graph is a set of objects called vertices, nodes, or points, some of which may be connected by links variously called edges, lines, or arcs. Among the many variations and elaborations on the concept, these links may be understood to have an orientation or not. If not, the links are merely between vertices u and v, or even among u, v, w, ... When there is orientation, one may have a link from u to v, and this arc or directed edge is distinct from a link from v to u.
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).
Definitions
Definitions in graph theory vary. The following are some of the more basic ways of defining graphs and related mathematical structures.
Graph
![](https://cdn.statically.io/img/upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Multigraph.svg/125px-Multigraph.svg.png)
In the most common sense of the term,[1] a graph is an ordered pair comprising a set of vertices or nodes together with a set of edges or lines, which are 2-element subsets of . To avoid ambiguity, this type of graph may be described precisely as undirected and simple.
Other senses of graph stem from different conceptions of the edge set. In one more generalized notion,[2] is a set together with a relation of incidence that associates with each edge two vertices. In another generalized notion, is a multiset of unordered pairs of (not necessarily distinct) vertices. Many authors call this type of object a multigraph or pseudograph.
All of these variants and others are described more fully below.
The vertices belonging to an edge are called the ends, endpoints, or end vertices of the edge.
and 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 (the number of vertices). A graph's size is , 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 of an undirected graph induce a symmetric binary relation ~ on that is called the adjacency relation of . Specifically, for each edge {u,v} the vertices u and v are adjacent to one another, which is denoted u ~ v.
For an edge {u, v}, graph theorists usually use the somewhat shorter notation uv.
Types of graphs
Distinction in terms of the main definition
As stated above, in different contexts it may be useful to define the term graph with different degrees of generality. Whenever it is necessary to draw a strict distinction, the following terms are used. Most commonly, in modern texts in graph theory, unless stated otherwise, graph means "undirected simple finite graph" (see the definitions below).
Undirected graph
A graph in which edges have no orientation, i.e., they are not ordered pairs, but sets {u, v} (or 2-multisets) of vertices.
Directed graph
![](https://cdn.statically.io/img/upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Directed.svg/125px-Directed.svg.png)
A directed graph or digraph is an ordered pair with
- a set whose elements are called vertices or nodes, and
- a set of ordered pairs of vertices, called arcs, directed edges, or arrows.
An arc is considered to be directed from to ; is called the head and is called the tail of the arc; is said to be a direct successor of , and is said to be a direct predecessor of . If a path leads from to , then is said to be a successor of and reachable from , and is said to be a predecessor of . The arc is called the arc inverted.
A directed graph D is called symmetric if, for every arc in D, the corresponding inverted arc also belongs to D. A symmetric loopless directed graph D = (V, A) is equivalent to a simple undirected graph G = (V, E), where the pairs of inverse arcs in A correspond 1-to-1 with the edges in E; thus the edges in G number |E| = |A|/2, or half the number of arcs in D.
A variation on this definition is the oriented graph, in which not more than one of and may be arcs.
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.
Multigraph
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.
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,[3] 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,[4] although many use the term "pseudograph" for this meaning.[5]
Simple graph
![](https://cdn.statically.io/img/upload.wikimedia.org/wikipedia/commons/thumb/b/bf/Undirected.svg/125px-Undirected.svg.png)
As opposed to a multigraph, a simple graph is an undirected graph that has no 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 n vertices every vertex has a degree that is less than n (the inverse, however, is not true - there exist non-simple graphs with n vertices in which every vertex has a degree smaller than n).
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.
The weight of the graph is sum of the weights given to all edges.
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); for example signed graphs and biased graphs.
Important graph classes
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.
Complete graph
Complete graphs have the feature that each pair of vertices has an edge connecting them.
Finite and infinite graphs
A finite graph is a graph G = <V,E> such that V(G) and E(G) are finite sets. An infinite graph is the one with sets of vertices or edges or both infinite.
Most commonly in graph theory it is implied that the discussed graphs are finite, i.e., finite graphs are called simply "graphs", while the infinite graphs are called so in full.
Graph classes in terms of connectivity
In an undirected graph G, two vertices u and v are connected if G contains a path from u to v. Otherwise, they are disconnected. A graph is connected if every pair of distinct vertices in the graph is connected and disconnected otherwise.
A graph is called k-vertex-connected or k-edge-connected if removal of k or more vertices (respectively, edges) makes the graph disconnected. A k-vertex-connected graph is often simply called a k-connected.
A directed graph is weakly connected if replacing all of its directed edges with undirected edges produces a connected (undirected) graph. It is strongly connected or strong if it contains a directed path from u to v and a directed path from v to u for every pair of vertices u,v.
Properties of graphs
- For more definitions see Glossary of graph theory.
Two edges of a graph are adjacent (sometimes coincident) if they share a common vertex. Two arrows of a directed graph are consecutive if the head of the first one is at the nock (notch end) of the second one. Similarly, two vertices are 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 joins the two vertices. An edge and a vertex on that edge are incident.
The graph with only one vertex and no edges is a trivial graph. A graph with only vertices and no edges is 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 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.)
Examples
![](https://cdn.statically.io/img/upload.wikimedia.org/wikipedia/commons/thumb/5/5b/6n-graf.svg/220px-6n-graf.svg.png)
The picture is a graphic representation of the following graph
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 on a set is a directed graph. Two edges , of are connected by an arrow if .
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.
Operations on graphs
There are several operations that produce new graphs from old ones, which might be classified into the following 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.
- Graph rewrite operations replacing the occurrence of some pattern graph within the host graph by an instance of the corresponding replacement graph.
- Unary operations, which create a significantly new graph from the old one. Examples:
- Binary operations, which create new graph from two initial graphs. Examples:
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.
In computational biology, power graph analysis introduces power graphs as an alternative representation of undirected graphs.
See also
Notes
- ^ See, for instance, Iyanaga and Kawada, 69 J, p. 234.
- ^ See, for instance, Graham et al., p. 5.
- ^ For example, see Balakrishnan, p. 1, Gross (2003), p. 4, and Zwillinger, p. 220.
- ^ For example, see. Bollobas, p. 7 and Diestel, p. 25.
- ^ Gross (1998), p. 3, Gross (2003), p. 205, Harary, p.10, and Zwillinger, p. 220.
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 (2005), Graph Theory (PDF) (3rd ed.), Berlin, New York: Springer-Verlag, ISBN 978-3-540-26183-4.
- Graham, R.L., Grötschel, M., and Lovász, L (eds.), Handbood of Combinatorics, MIT Press, 1995. ISBN 0-262-07169-X.
- 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.
- Iyanaga, Shôkichi and Kawada, Yukiyosi, Encyclopedic Dictionary of Mathematics, MIT Press, 1977. ISBN 0-262-09016-3.
- Zwillinger, Daniel, CRC Standard Mathematical Tables and Formulae, Chapman & Hall/CRC; 31st edition (November 27, 2002). ISBN 1-58488-291-3.
External links
- Graph theory tutorial
- Some graph theory algorithm animations
- Step through the algorithm to understand it.
- 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 — An open source C++ template library aimed at combinatorial optimization tasks, especially those working with graphs and networks.
- Weisstein, Eric W. "Graph". MathWorld.
- TORSCHE Scheduling Toolbox for Matlab — A freely available toolbox of scheduling and graph algorithms.