Graph (discrete mathematics): Difference between revisions

Content deleted Content added
Undid revision 1305550508 by EulerianTrail (talk) the sentence doesn't make sense with "simply" moved like that; the second form is the simple one
 
Line 1:
{{about|sets of vertices connected by edges|graphs of mathematical functions|Graph of a function|other uses|Graph (disambiguation)}}
{{dablink|This article presents the essential definitions. For a more complete account see ''[[graph theory]]''. For another use of the term "graph" in mathematics, see ''[[graph of a function]]''. For the more general concept of the graph of a relation, see ''[[relation (mathematics)|relation]]''.}}
{{short description|Vertices connected in pairs by edges}}
[[File:6n-graf.svg|thumb|A graph with six vertices and seven edges]]
 
In [[discrete mathematics]], particularly in [[graph theory]], a '''graph''' is a structure consisting of a [[Set (mathematics)|set]] of objects where some pairs of the objects are in some sense "related". The objects are represented by abstractions called ''[[Vertex (graph theory)|vertices]]'' (also called ''nodes'' or ''points'') and each of the related pairs of vertices is called an ''edge'' (also called ''link'' or ''line'').<ref>{{cite book|last=Trudeau|first=Richard J.|title=Introduction to Graph Theory|year=1993|publisher=Dover Pub.|___location=New York|isbn=978-0-486-67870-2|pages=19|url=http://store.doverpublications.com/0486678709.html|edition=Corrected, enlarged republication.|access-date=8 August 2012|quote=A graph is an object consisting of two sets called its ''vertex set'' and its ''edge set''.|archive-date=5 May 2019|archive-url=https://web.archive.org/web/20190505192352/http://store.doverpublications.com/0486678709.html|url-status=live}}</ref> Typically, a graph is depicted in [[diagrammatic form]] as a set of dots or circles for the vertices, joined by lines or curves for the edges.
[[Image:6n-graf.svg|thumb|250px|A labeled graph on 6 vertices and 7 edges.]]
 
The edges may be directed or undirected. For example, if the vertices represent people at a party, and there is an edge between two people if they shake hands, then this graph is undirected because any person ''A'' can shake hands with a person ''B'' only if ''B'' also shakes hands with ''A''. In contrast, if an edge from a person ''A'' to a person ''B'' means that ''A'' owes money to ''B'', then this graph is directed, because owing money is not necessarily reciprocated.
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'' or ''vertices'' connected by links called ''lines'' or ''edges''. In a graph proper, 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).
 
Graphs are the basic subject studied by graph theory. The word "graph" was first used in this sense by [[James Joseph Sylvester|J. J. Sylvester]] in 1878 due to a direct relation between mathematics and [[chemical structure]] (what he called a chemico-graphical image).<ref>See:
==Definitions==
* J. J. Sylvester (February 7, 1878) [https://books.google.com/books?id=KcoKAAAAYAAJ&q=Sylvester&pg=PA284 "Chemistry and algebra"], {{Webarchive|url=https://web.archive.org/web/20230204142956/https://books.google.com/books?id=KcoKAAAAYAAJ&vq=Sylvester&pg=PA284 |date=2023-02-04 }} ''Nature'', ''17'' : 284. {{doi|10.1038/017284a0}}. From page 284: "Every invariant and covariant thus becomes expressible by a ''graph'' precisely identical with a Kekuléan diagram or chemicograph."
* J. J. Sylvester (1878) [https://books.google.com/books?id=1q0EAAAAYAAJ&pg=PA64 "On an application of the new atomic theory to the graphical representation of the invariants and covariants of binary quantics, – with three appendices"], {{Webarchive|url=https://web.archive.org/web/20230204142957/https://books.google.com/books?id=1q0EAAAAYAAJ&pg=PA64 |date=2023-02-04 }} ''American Journal of Mathematics, Pure and Applied'', ''1'' (1) : 64–90. {{doi|10.2307/2369436}}. {{JSTOR|2369436}}. The term "graph" first appears in this paper on page 65.</ref><ref>{{Cite book
| title = Handbook of graph theory
| first1 = Jonathan L.
| last1 = Gross
| first2 = Jay
| last2 = Yellen
| publisher = [[CRC Press]]
| year = 2004
| page = [https://books.google.com/books?id=mKkIGIea_BkC&pg=PA35 35]
| isbn = 978-1-58488-090-5
| url = https://books.google.com/books?id=mKkIGIea_BkC
| access-date = 2016-02-16
| archive-date = 2023-02-04
| archive-url = https://web.archive.org/web/20230204142959/https://books.google.com/books?id=mKkIGIea_BkC
| url-status = live
}}</ref>
 
== Definitions ==
Definitions in graph theory vary in the literature. The following are some of the more basic ways of defining graphs and related structures.
Definitions in graph theory vary. The following are some of the more basic ways of defining graphs and related [[mathematical structure]]s.
 
=== {{anchor|Undirected graph}} Graph ===
[[ImageFile:Undirected.pngsvg|rightthumb|upright|A graph with three vertices and three edges]]
A '''graph''' or '''undirected graph''' ''G'' is an [[ordered pair]] ''G'' := (''V'', ''E'') that is subject to the following conditions:
:* ''V'' is a [[set]] of '''vertices''' or '''nodes''',
:* ''E'' is a set of unordered pairs of distinct vertices, called '''edges''' or '''lines'''.
:* The vertices belonging to an edge are called the '''ends''', '''endpoints''', or '''end vertices''' of the edge.
 
A '''graph''' (sometimes called an ''undirected graph'' to distinguish it from a [[#Directed graph|directed graph]], or a ''simple graph'' to distinguish it from a [[multigraph]]){{sfn|Bender|Williamson|2010|p=148}}<ref>See, for instance, Iyanaga and Kawada, ''69 J'', p. 234 or Biggs, p. 4.</ref> is a [[ordered pair|pair]] {{math|1=''G'' = (''V'', ''E'')}}, where {{mvar|V}} is a set whose elements are called ''vertices'' (singular: vertex), and {{mvar|E}} is a set of unordered pairs <math>\{v_1, v_2\}</math> of vertices, whose elements are called ''edges'' (sometimes ''links'' or ''lines'').
''V'' (and hence ''E'') are usually taken to be finite sets, 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 vertices {{mvar|u}} and {{mvar|v}} of an edge {{math|{''u'', ''v''} }} are called the edge's ''endpoints''. The edge is said to ''join'' {{mvar|u}} and {{mvar|v}} and to be ''incident'' on them. A vertex may belong to no edge, in which case it is not joined to any other vertex and is called ''isolated''. When an edge <math>\{u,v\}</math> exists, the vertices {{mvar|u}} and {{mvar|v}} are called ''adjacent''.
===Directed graph===
 
A [[multigraph]] is a generalization that allows multiple edges to have the same pair of endpoints. In some texts, multigraphs are simply called graphs.{{sfn|Bender|Williamson|2010|p=149}}<ref>Graham et al., p. 5.</ref>
[[Image:Directed.png|right]]
A '''directed graph''' or '''digraph''' ''G'' is an ordered pair ''G'':=(''V'', ''A'') with
* ''V'', a [[set]] of '''vertices''' or '''nodes''',
* ''A'', a set of ordered pairs of vertices, called '''directed edges''', '''arcs''', or '''arrows'''. An edge ''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 edge.
 
Sometimes, graphs are allowed to contain ''[[Loop (graph theory)|loop]]s'', which are edges that join a vertex to itself. To allow loops, the pairs of vertices in {{mvar|E}} must be allowed to have the same node twice. Such generalized graphs are called ''graphs with loops'' or simply ''graphs'' when it is clear from the context that loops are allowed.
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.
 
Generally, the vertex set {{mvar|V}} is taken to be finite (which implies that the edge set {{mvar|E}} is also finite). Sometimes [[infinite graph]]s are considered, but they are usually viewed as a special kind of [[binary relation]], because most results on finite graphs either do not extend to the infinite case or need a rather different proof.
A [[directed acyclic graph]], also called a '''dag''' or '''DAG''', is a directed graph with no [[directed cycle]]s.
 
An [[empty graph]] is a graph that has an [[empty set]] of vertices (and thus an empty set of edges). The ''order'' of a graph is its number {{math|{{abs|''V''}}}} of vertices, usually denoted by {{mvar|n}}. The ''size'' of a graph is its number {{math|{{abs|''E''}}}} of edges, typically denoted by {{mvar|m}}. However, in some contexts, such as for expressing the [[computational complexity]] of algorithms, the term ''size'' is used for the quantity {{math|{{abs|''V''}} + {{abs|''E''}}}} (otherwise, a non-empty graph could have size 0). The ''degree'' or ''valency'' of a vertex is the number of edges that are incident to it; for graphs with loops, a loop is counted twice.
A '''quiver''' is sometimes said to be simply a directed graph, but in practice it is a directed graph with [[vector space]]s attached to the vertices and [[linear transformation]]s attached to the arcs.
 
In a graph of order {{math|''n''}}, the maximum degree of each vertex is {{math|''n'' − 1}} (or {{math|''n'' + 1}} if loops are allowed, because a loop contributes 2 to the degree), and the maximum number of edges is {{math|''n''(''n'' − 1)/2}} (or {{math|''n''(''n'' + 1)/2}} if loops are allowed).
===Mixed graph===
 
The edges of a graph define a [[symmetric relation]] on the vertices, called the ''adjacency relation''. Specifically, two vertices {{mvar|x}} and {{mvar|y}} are ''adjacent'' if {{math|{''x'', ''y''} }} is an edge. A graph is fully determined by its [[adjacency matrix]] {{mvar|A}}, which is an {{math|''n'' × ''n''}} square matrix, with {{mvar|A{{sub|ij}}}} specifying the number of connections from vertex {{mvar|i}} to vertex {{mvar|j}}. For a simple graph, {{math|''A{{sub|ij}}''}} is either 0, indicating disconnection, or 1, indicating connection; moreover {{math|1=''A{{sub|ii}}'' = 0}} because an edge in a simple graph cannot start and end at the same vertex. Graphs with self-loops will be characterized by some or all {{mvar|A{{sub|ii}}}} being equal to a positive integer, and multigraphs (with multiple edges between vertices) will be characterized by some or all {{mvar|A{{sub|ij}}}} being equal to a positive integer. Undirected graphs will have a [[symmetric matrix|symmetric]] adjacency matrix (meaning {{math|1=''A{{sub|ij}}'' = ''A{{sub|ji}}''}}).
A '''mixed graph''' ''G'' is an ordered triple ''G'' := (''V'',''E'',''A'') with ''V'', ''E'' and ''A'' defined as above.
 
===Variations inDirected thegraph definitions===
{{main|Directed graph}}
[[File:Directed.svg|thumb|upright|A directed graph with three vertices and four directed edges, where the double arrow represents two directed edges in opposite directions]]
 
A '''directed graph''' or '''digraph''' is a graph in which edges have orientations.
As defined above, edges of undirected graphs have two distinct ends, and ''E'' and ''A'' are [[set]]s (with distinct elements, like all sets). Many applications require more general possibilities, but terminology varies.
 
In one restricted but very common sense of the term,{{sfn|Bender|Williamson|2010|p=161}} a '''directed graph''' is a pair {{math|1=''G'' = (''V'', ''E'')}} comprising:
A [[loop (graph theory)|loop]] is an edge (directed or undirected) with both ends the same; these may be permitted or not permitted according to the application. In this context, an edge with two different ends is called a '''link'''.
* {{mvar|V}}, a [[Set (mathematics)|set]] of ''vertices'' (also called ''nodes'' or ''points'');
* {{mvar|E}}, a [[Set (mathematics)|set]] of ''edges'' (also called ''directed edges'', ''directed links'', ''directed lines'', ''arrows'', or ''arcs''), which are [[ordered pair]]s of distinct vertices: <math>E \subseteq \{(x,y) \mid (x,y) \in V^2 \;\textrm{ and }\; x \neq y \}</math>.
To avoid ambiguity, this type of object may be called precisely a '''directed simple graph'''.
 
In the edge {{math|(''x'', ''y'')}} directed from {{mvar|x}} to {{mvar|y}}, the vertices {{mvar|x}} and {{mvar|y}} are called the ''endpoints'' of the edge, {{mvar|x}} the ''tail'' of the edge and {{mvar|y}} the ''head'' of the edge. The edge is said to ''join'' {{mvar|x}} and {{mvar|y}} and to be ''incident'' on {{mvar|x}} and on {{mvar|y}}. A vertex may exist in a graph and not belong to an edge. The edge {{math|(''y'', ''x'')}} is called the ''inverted edge'' of {{math|(''x'', ''y'')}}. ''[[Multiple edges]]'', not allowed under the definition above, are two or more edges with both the same tail and the same head.
Sometimes ''E'' and ''A'' are allowed to be [[multiset]]s, so that there can be more than one edge (called [[multiple edges]]) between the same two vertices. Another way to allow multiple edges is to make ''E'' a set, independent of ''V'', and to specify the endpoints of an edge by an [[incidence relation]] between ''V'' and ''E''. The same applies to a directed edge set ''A'', except that there must be two incidence relations, one for the head and one for the tail of each edge.
 
In one more general sense of the term allowing multiple edges,{{sfn|Bender|Williamson|2010|p=161}} a directed graph is sometimes defined to be an ordered triple {{math|1=''G'' = (''V'', ''E'', ''ϕ'')}} comprising:
A '''simple graph''' is always understood to mean a "graph" which contains no loops or multiple edges. However, the unqualified term "graph" might allow or disallow loops and multiple edges in the literature, according to the preferences of the author and the requirements of the particular topic.
* {{mvar|V}}, a [[Set (mathematics)|set]] of ''vertices'' (also called ''nodes'' or ''points'');
* {{mvar|E}}, a [[Set (mathematics)|set]] of ''edges'' (also called ''directed edges'', ''directed links'', ''directed lines'', ''arrows'' or ''arcs'');
* {{mvar|ϕ}}, an ''incidence function'' mapping every edge to an [[ordered pair]] of vertices (that is, an edge is associated with two distinct vertices): <math>\phi : E \to \{(x,y) \mid (x,y) \in V^2 \;\textrm{ and }\; x \neq y \}</math>.
 
To avoid ambiguity, this type of object may be called precisely a '''directed multigraph'''.
The term "[[multigraph]]" is used to indicate 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 mutiple edges, the term is often defined to mean a "graph" which can have loops or multiple edges.<ref>For example, see. Bollobas, p. 7, Diestel, p. 25, and Harary, p. 10.</ref>
 
A ''[[Loop (graph theory)|loop]]'' is an edge that joins a vertex to itself. Directed graphs as defined in the two definitions above cannot have loops, because a loop joining a vertex <math>x</math> to itself is the edge (for a directed simple graph) or is incident on (for a directed multigraph) <math>(x,x)</math> which is not in <math>\{(x,y) \mid (x,y) \in V^2 \;\textrm{ and }\; x \neq y \}</math>. So to allow loops the definitions must be expanded. For directed simple graphs, the definition of <math>E</math> should be modified to <math>E \subseteq V^2</math>. For directed multigraphs, the definition of <math>\phi</math> should be modified to <math>\phi : E \to V^2</math>. To avoid ambiguity, these types of objects may be called precisely a '''directed simple graph permitting loops''' and a '''directed multigraph permitting loops''' (or a ''[[Quiver (mathematics)|quiver]]'') respectively.
Sometimes the term "[[pseudograph]]" is used to indicate that both multiple edges and loops are allowed.<ref>Gross (2005), p. 3, and Zwillinger, p. 220.</ref> In exceptional situations it is even necessary to have edges with only one end, called '''halfedges''', or no ends ('''loose edges'''); see for example [[signed graph]]s.
 
The edges of a directed simple graph permitting loops {{mvar|G}} is a [[Binary relation#Homogeneous relation|homogeneous relation]] ~ on the vertices of {{mvar|G}} that is called the ''adjacency relation'' of {{mvar|G}}. Specifically, for each edge {{math|(''x'', ''y'')}}, its endpoints {{mvar|x}} and {{mvar|y}} are said to be ''adjacent'' to one another, which is denoted {{math|''x'' ~ ''y''}}.
==Properties of graphs==
 
=== Mixed graph ===
:''For more definitions see [[Glossary of graph theory]].''
{{main|Mixed graph}}
[[File:Example of simple mixed graph.jpg|thumb|upright|A mixed graph with three vertices, two directed edges, and an undirected edge.]]
 
A ''mixed graph'' is a graph in which some edges may be directed and some may be undirected. It is an ordered triple {{math|1=''G'' = (''V'', ''E'', ''A'')}} for a ''mixed simple graph'' and {{math|1=''G'' = (''V'', ''E'', ''A'', ''ϕ{{sub|E}}'', ''ϕ{{sub|A}}'')}} for a ''mixed multigraph'' with {{mvar|V}}, {{mvar|E}} (the undirected edges), {{mvar|A}} (the directed edges), {{mvar|ϕ{{sub|E}}}} and {{mvar|ϕ{{sub|A}}}} defined as above. Directed and undirected graphs are special cases.
Two edges of a graph are called '''adjacent''' (sometimes '''coincident''') if they share a common vertex. Similarly, two vertices are called '''adjacent''' if they share a common edge, in which case the common edge is said to '''join''' the two vertices. An edge and a vertex on that edge are called '''incident'''.
 
=== Weighted graph ===
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''', '''empty graph''', or '''null graph''' (there is no consistency in the literature). The graph with no vertices and no edges is sometimes called the '''null graph''' or '''empty graph''', but not all mathematicians allow this object.
[[File:Weighted_network.svg|thumb|upright=1.2|A weighted graph with ten vertices and twelve edges]]
 
A ''weighted graph'' or a ''network''<ref>{{Citation | last=Strang | first=Gilbert | title=Linear Algebra and Its Applications | publisher=Brooks Cole | edition=4th | year=2005 | isbn=978-0-03-010567-8 }}</ref><ref>{{Citation | last=Lewis | first=John | title=Java Software Structures | publisher=Pearson | edition=4th | year=2013 | isbn=978-0133250121 | page=405 }}</ref> is a graph in which a number (the weight) is assigned to each edge.<ref>{{cite book|last1=Fletcher|first1=Peter|last2=Hoyle|first2=Hughes|last3=Patty|first3=C. Wayne|title=Foundations of Discrete Mathematics|year=1991|publisher=PWS-KENT Pub. Co.| ___location=Boston| isbn=978-0-53492-373-0| pages=463 | edition=International student|quote=A ''weighted graph'' is a graph in which a number ''w''(''e''), called its ''weight'', is assigned to each edge ''e''.}}</ref> Such weights might represent for example costs, lengths or capacities, depending on the problem at hand. Such graphs arise in many contexts, for example in [[shortest path problem]]s such as the [[traveling salesman problem]].
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]].
 
== Types of graphs ==
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). If vertices are indistinguishable they may be distinguished by giving each vertex a ''label'', hence the name ''vertex-labeled'' graph. 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 ''unlabelled''. (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.)
=== Oriented graph ===
One definition of an ''oriented graph'' is that it is a directed graph in which at most one of {{nowrap|(''x'', ''y'')}} and {{nowrap|(''y'', ''x'')}} may be edges of the graph. That is, it is a directed graph that can be formed as an [[orientation (graph theory)|orientation]] of an undirected (simple) graph.
 
Some authors use "oriented graph" to mean the same as "directed graph". Some authors use "oriented graph" to mean any orientation of a given undirected graph or multigraph.
==Examples==
 
=== Regular graph ===
[[Image:6n-graf.png|right|250px]]
{{main|Regular graph}}
The picture is a graphic representation of the following graph
A ''regular graph'' is a graph in which each vertex has the same number of neighbours, i.e., every vertex has the same degree. A regular graph with vertices of degree ''k'' is called a ''k''‑regular graph or regular graph of degree ''k''.
*''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.
 
=== Complete graph ===
*In [[category theory]] a [[category (mathematics)|category]] can be considered a directed [[multigraph]] with the objects as vertices and the [[morphism]]s as directed edges. The [[functor]]s between categories induce then some, but not necessarily all, of the [[digraph morphism]]s.
{{main|Complete graph}}
*In [[computer science]] directed graphs are used to represent [[finite state machine]]s and many other discrete structures.
[[File:Complete graph K5.svg|thumb|upright|A complete graph with five vertices and ten edges. Each vertex has an edge to every other vertex.]]
*A [[binary relation]] ''R'' on a set ''X'' is a simple directed graph. Two edges ''x'',''y'' of ''X'' are connected by an arrow if ''xRy''.
 
A ''complete graph'' is a graph in which each pair of vertices is joined by an edge. A complete graph contains all possible edges.
==Important graphs==
 
=== Finite graph ===
* In a [[complete graph]] each pair of vertices is joined by an edge, that is, the graph contains all possible edges.
A ''finite graph'' is a graph in which the vertex set and the edge set are [[finite set]]s. Otherwise, it is called an ''infinite graph''.
* A [[planar graph]] can be drawn in a plane (embedded in a plane) with no crossing edges.
* A [[tree (graph theory)|tree]] is a [[connected graph]] with no [[cycle (graph theory)|cycle]]s.
* [[Bipartite graph]]s
* [[Perfect graph]]s
* [[Cograph]]s
* [[Cayley graph]]s
* The [[Petersen graph]] and its generalizations
 
Most commonly in graph theory it is implied that the graphs discussed are finite. If the graphs are infinite, that is usually specifically stated.
==Operations on graphs==
There are several operations that produce new graphs
from old ones.
===Unary operations===
* [[Line graph]]
* [[Dual graph]]
* [[Complement graph]]
 
===Binary operationsConnected graph ===
{{main|Connectivity (graph theory)}}
* [[Cartesian product of graphs]]
In an undirected graph, an unordered pair of vertices {{nowrap|{{mset|''x'', ''y''}}}} is called ''connected'' if a path leads from ''x'' to ''y''. Otherwise, the unordered pair is called ''disconnected''.
* [[Tensor product of graphs]]
* Strong product of graphs
* Lexicographic product of graphs
* Zig-zag product of graphs
 
A ''connected graph'' is an undirected graph in which every unordered pair of vertices in the graph is connected. Otherwise, it is called a ''disconnected graph''.
== Generalizations ==
 
In a directed graph, an ordered pair of vertices {{nowrap|(''x'', ''y'')}} is called ''strongly connected'' if a directed path leads from ''x'' to ''y''. Otherwise, the ordered pair is called ''weakly connected'' if an undirected path leads from ''x'' to ''y'' after replacing all of its directed edges with undirected edges. Otherwise, the ordered pair is called ''disconnected''.
In a [[hypergraph]], an edge can join more than two vertices.
 
A ''strongly connected graph'' is a directed graph in which every ordered pair of vertices in the graph is strongly connected. Otherwise, it is called a ''weakly connected graph'' if every ordered pair of vertices in the graph is weakly connected. Otherwise it is called a ''disconnected graph''.
 
A ''[[k-vertex-connected graph]]'' or ''[[k-edge-connected graph]]'' is a graph in which no set of {{nowrap|''k'' − 1}} vertices (respectively, edges) exists that, when removed, disconnects the graph. A ''k''-vertex-connected graph is often called simply a ''k-connected graph''.
 
=== Bipartite graph ===
{{main|Bipartite graph}}
A ''[[bipartite graph]]'' is a simple graph in which the vertex set can be [[Partition of a set|partitioned]] into two sets, ''W'' and ''X'', so that no two vertices in ''W'' share a common edge and no two vertices in ''X'' share a common edge. Alternatively, it is a graph with a [[chromatic number]] of 2.
 
In a [[complete bipartite graph]], the vertex set is the union of two disjoint sets, ''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''.
 
=== Path graph ===
{{main|Path graph}}
A ''path graph'' or ''linear graph'' of order {{nowrap|''n'' ≥ 2}} is a graph in which the vertices can be listed in an order ''v''<sub>1</sub>, ''v''<sub>2</sub>, …, ''v''<sub>''n''</sub> such that the edges are the {{nowrap|{{mset|''v''<sub>''i''</sub>, ''v''<sub>''i''+1</sub>}}}} where ''i'' = 1, 2, …, ''n'' − 1. Path graphs can be characterized as connected graphs in which the degree of all but two vertices is 2 and the degree of the two remaining vertices is 1. If a path graph occurs as a [[Glossary of graph theory#Subgraphs|subgraph]] of another graph, it is a [[Path (graph theory)|path]] in that graph.
 
=== Planar graph ===
{{main|Planar graph}}
A ''planar graph'' is a graph whose vertices and edges can be drawn in a plane such that no two of the edges intersect.
 
=== Cycle graph ===
{{main|Cycle graph}}
A ''cycle graph'' or ''circular graph'' of order {{nowrap|''n'' ≥ 3}} is a graph in which the vertices can be listed in an order ''v''<sub>1</sub>, ''v''<sub>2</sub>, …, ''v''<sub>''n''</sub> such that the edges are the {{nowrap|{{mset|''v''<sub>''i''</sub>, ''v''<sub>''i''+1</sub>}}}} where ''i'' = 1, 2, …, ''n'' − 1, plus the edge {{nowrap|{{mset|''v''<sub>''n''</sub>, ''v''<sub>1</sub>}}}}. Cycle graphs can be characterized as connected graphs in which the degree of all vertices is 2. If a cycle graph occurs as a subgraph of another graph, it is a cycle or circuit in that graph.
 
=== Tree ===
{{main|Tree (graph theory)}}
A ''tree'' is an undirected graph in which any two [[Vertex (graph theory)|vertices]] are connected by ''exactly one'' [[Path (graph theory)|path]], or equivalently a [[Connected graph|connected]] [[Cycle (graph theory)|acyclic]] undirected graph.
 
A ''forest'' is an undirected graph in which any two vertices are connected by ''at most one'' path, or equivalently an acyclic undirected graph, or equivalently a [[Disjoint union of graphs|disjoint union]] of trees.
 
=== Polytree ===
{{main|Polytree}}
 
A ''polytree'' (or ''directed tree'' or ''oriented tree'' or ''singly connected network'') is a [[directed acyclic graph]] (DAG) whose underlying undirected graph is a tree.
 
A ''polyforest'' (or ''directed forest'' or ''oriented forest'') is a directed acyclic graph whose underlying undirected graph is a forest.
 
=== Advanced classes ===
More advanced kinds of graphs are:
* [[Petersen graph]] and its generalizations;
* [[perfect graph]]s;
* [[cograph]]s;
* [[chordal graph]]s;
* other graphs with large [[Graph automorphism|automorphism groups]]: [[Vertex-transitive graph|vertex-transitive]], [[Arc-transitive graph|arc-transitive]], and [[distance-transitive graph]]s;
* [[strongly regular graph]]s and their generalizations [[distance-regular graph]]s.
 
== Properties of graphs ==
{{see also|Glossary of graph theory|Graph property}}
Two vertices of a graph are called ''adjacent'' if they share a common edge. Two vertices of a directed graph are called ''consecutive'' if the head of the first one is the tail of the second one. Similarly, two vertices are called ''adjacent'' if they share a common edge (''consecutive'' if the first one is the tail and the second one is the head of an edge), 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 the terminology is not consistent and not all mathematicians allow this object.
 
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. (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 graphs with labeled edges are called ''edge-labeled''. 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''. (In the literature, the term ''labeled'' may apply to other kinds of labeling, besides that which serves only to distinguish different vertices or edges.)
 
The [[category theory|category]] of directed multigraphs permitting loops is the [[comma category]] Set ↓ ''D'' where ''D'': Set → Set is the [[functor]] taking a set ''s'' to ''s'' × ''s''.
 
== Examples ==
[[File:6n-graf.svg|thumb|A graph with six vertices and seven edges]]
 
* The diagram is a schematic representation of the graph with vertices <math>V = \{1, 2, 3, 4, 5, 6\}</math> and edges <math>E = \{\{1, 2\}, \{1, 5\}, \{2, 3\}, \{2, 5\}, \{3, 4\}, \{4, 5\}, \{4, 6\}\}.</math>
* In [[computer science]], directed graphs are used to represent knowledge (e.g., [[conceptual graph]]), [[finite-state machine]]s, and many other discrete structures.
* A [[binary relation]] ''R'' on a set ''X'' defines a directed graph. An element ''x'' of ''X'' is a direct predecessor of an element ''y'' of ''X'' if and only if ''xRy''.
* A directed graph can model information networks such as [[Twitter]], with one user following another.<ref name="snatwitter">{{Cite journal| volume = 3| issue = 1| last = Grandjean| first = Martin| title = A social network analysis of Twitter: Mapping the digital humanities community| journal = Cogent Arts & Humanities| date = 2016| pages = 1171458| doi = 10.1080/23311983.2016.1171458| url = https://serval.unil.ch/resource/serval:BIB_81C2C68B1DF5.P001/REF| doi-access = free| access-date = 2019-09-16| archive-date = 2021-03-02| archive-url = https://web.archive.org/web/20210302190117/https://serval.unil.ch/resource/serval:BIB_81C2C68B1DF5.P001/REF| url-status = live}}</ref><ref name="twitterwtf">Pankaj Gupta, Ashish Goel, Jimmy Lin, Aneesh Sharma, Dong Wang, and Reza Bosagh Zadeh [http://dl.acm.org/citation.cfm?id=2488433 WTF: The who-to-follow system at Twitter] {{Webarchive|url=https://web.archive.org/web/20190712002903/http://dl.acm.org/citation.cfm?id=2488433 |date=2019-07-12 }}, ''Proceedings of the 22nd international conference on World Wide Web''. {{doi|10.1145/2488388.2488433}}.</ref>
*Particularly regular examples of directed graphs are given by the [[Cayley graph]]s of finitely-generated groups, as well as [[Schreier coset graph]]s
*In [[category theory]], every [[small category]] has an underlying directed multigraph whose vertices are the objects of the category, and whose edges are the arrows of the category. In the language of category theory, one says that there is a [[forgetful functor]] from the [[category of small categories]] to the [[Quiver (mathematics)|category of quivers]].
 
== Graph operations ==
{{main|Graph operations}}
There are several operations that produce new graphs from initial ones, which might be classified into the following categories:
* ''unary operations'', which create a new graph from an initial one, such as:
** [[edge contraction]],
** [[line graph]],
** [[dual graph]],
** [[complement graph]],
** [[graph rewriting]];
* ''binary operations'', which create a new graph from two initial ones, such as:
** [[disjoint union of graphs]],
** [[cartesian product of graphs]],
** [[tensor product of graphs]],
** [[strong product of graphs]],
** [[lexicographic product of graphs]],
** [[series–parallel graph]]s.
 
== Generalizations ==
In a [[hypergraph]], an edge can join any positive number of vertices.
 
An undirected graph can be seen as a [[simplicial complex]] consisting of 1-[[simplex|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]], but in general the graph cannot be recovered from its matroid, so matroids are not truly generalizations of graphs.
 
In [[model theory]], a graph is just a [[structure (model theory)|structure]]. But in that case, there is no limitation on the number of edges: it can be any [[cardinal number]], see [[continuous graph]].
 
In [[computational biology]], [[power graph analysis]] introduces power graphs as an alternative representation of undirected graphs.
== Notes==
<div class="references-small">
<references/>
</div>
 
In [[geographic information systems]], [[geometric networks]] are closely modeled after graphs, and borrow many concepts from [[graph theory]] to perform spatial analysis on road networks or utility grids.
==References==
* Balakrishnan, V. K.; ''Graph Theory'', McGraw-Hill; 1 edition (February 1, 1997). ISBN 0070054894.
* Bollobas, Bela; ''Modern Graph Theory'', Springer; 1st edition (August 12, 2002). ISBN 0387984887.
* Diestel, Reinhard; ''Graph Theory'', Springer; 2nd edition (February 18, 2000). ISBN 0387989765.
* Gross, Jonathon L, and Yellen, Jay; ''Graph Theory and Its Applications'', Chapman & Hall/CRC; 2n edition (September 22, 2005). ISBN 158488505X.
* Gross, Jonathon L, and Yellen, Jay; (eds); ''Handbook of Graph Theory''. CRC (December 29, 2003). ISBN 1584880902.
* Harary, Frank; ''Graph Theory'', Addison Wesley Publishing Company (January 1995). ISBN 0201410338.
* Zwillinger, Daniel; ''CRC Standard Mathematical Tables and Formulae'', Chapman & Hall/CRC; 31st edition (November 27, 2002). ISBN 1584882913.
 
== See also ==
* [[PolygonConceptual graph]]
* [[Graph (abstract data type)]]
*[[Tiling]]
* [[GlossaryGraph of graph theorydatabase]]
* [[List of graph theory topics]]
* [[Graph (data structure)]]
* [[Graph drawing]]
* [[List of graph theory topics]]
* [[List of publications in mathematics#Graph theory|ImportantList of publications in graph theory]]
* [[DualNetwork graphtheory]]
 
== ExternalNotes links==
{{reflist|30em}}
* [http://www.math.uni-hamburg.de/home/diestel/books/graph.theory/ Graph Theory online textbook]
 
* [http://www.utm.edu/departments/math/graph/ Graph theory tutorial]
== References ==
* [http://students.ceid.upatras.gr/~papagel/project/contents.htm Some graph theory algorithm animations]
* {{cite book |last=Balakrishnan |first=V. K. |date=1997 |title=Graph Theory|publisher=McGraw-Hill |edition=1st|isbn=978-0-07-005489-9}}
**''Step through the algorithm to understand it.''
* {{cite book |last1=Bang-Jensen |first1=J. |last2=Gutin |first2=G. |date=2000 |title=Digraphs: Theory, Algorithms and Applications |url=http://www.cs.rhul.ac.uk/books/dbook/ |publisher=Springer }}
* [http://www2.hig.no/~algmet/animate.html The compendium of algorithm visualisation sites]
* {{cite book |last1=Bender |first1=Edward A. |last2=Williamson |first2=S. Gill |date=2010 |title=Lists, Decisions and Graphs. With an Introduction to Probability |url=https://books.google.com/books?id=vaXv_yhefG8C }}
* [http://www.nlsde.buaa.edu.cn/~kexu/benchmarks/graph-benchmarks.htm Challenging Benchmarks for Maximum Clique, Maximum Independent Set, Minimum Vertex Cover and Vertex Coloring]
* {{cite book |last=Berge |first=Claude |date=1958 |title=Théorie des graphes et ses applications |language=fr |___location=Paris |publisher=Dunod }}
*[http://www.nd.edu/~networks/gallery.htm Image gallery no.1: Some real-life networks]
* {{cite book |last=Biggs |first=Norman |date=1993 |title=Algebraic Graph Theory |edition=2nd |publisher=Cambridge University Press |isbn=978-0-521-45897-9 }}
*[http://www.aisee.com/graphs/ Image gallery no.2: More real-life graphs]
* {{cite book |last=Bollobás |first=Béla |date=2002 |title=Modern Graph Theory |edition=1st |publisher=Springer |isbn=978-0-387-98488-9 }}
*[http://people.freenet.de/Emden-Weinert/graphs.html Graph links collection]
* {{cite book |last=Diestel |first=Reinhard |date=2005 |title=Graph Theory |url=http://diestel-graph-theory.com/GrTh.html |edition=3rd |___location=Berlin, New York |publisher=Springer-Verlag |isbn=978-3-540-26183-4 }}
*[http://ttt.upv.es/~arodrigu/grafos/index.htm Grafos Spanish copyleft software]
* {{cite book |last1=Graham |first1=R.L. |last2=Grötschel |first2=M. |last3=Lovász |first3=L. |date=1995 |title=Handbook of Combinatorics |publisher=MIT Press |isbn=978-0-262-07169-7 }}
*[http://www.ffconsultancy.com/products/ocaml_for_scientists/complete/ Source code for computing neighbor shells in particle systems under periodic boundary conditions]
* {{cite book |last1=Gross |first1=Jonathan L. |last2=Yellen |first2=Jay |date=1998 |title=Graph Theory and Its Applications |publisher=CRC Press |isbn=978-0-8493-3982-0 }}
*[http://jgaa.info/accepted/2004/BoyerMyrvold2004.8.3.pdf Edge Addition Planarity Algorithm] &mdash; Online version of a paper that describes the Boyer-Myrvold planarity algorithm.
* {{cite book |last1=Gross |first1=Jonathan L. |last2=Yellen |first2=Jay |date=2003 |title=Handbook of Graph Theory |publisher=CRC |isbn=978-1-58488-090-5 }}
*[http://jgaa.info/accepted/2004/BoyerMyrvold2004.8.3/planarity.zip Edge Addition Planarity Algorithm Source Code] &mdash; Free C source code for reference implementation of Boyer-Myrvold planarity algorithm, which provides both a combinatorial planar embedder and Kuratowski subgraph isolator.
* {{cite book |last=Harary |first=Frank |date=1995 |title=Graph Theory |publisher=Addison Wesley Publishing Company |isbn=978-0-201-41033-4 }}
* {{cite book |last1=Iyanaga |first1=Shôkichi |last2=Kawada |first2=Yukiyosi |date=1977 |title=Encyclopedic Dictionary of Mathematics |url=https://archive.org/details/encyclopedicdict0000niho |publisher=MIT Press |isbn=978-0-262-09016-2 |url-access=registration }}
* {{cite book |last=Zwillinger |first=Daniel |date=2002 |title=CRC Standard Mathematical Tables and Formulae |edition=31st |publisher=Chapman & Hall/CRC |isbn=978-1-58488-291-6 }}
 
== Further reading ==
* {{cite book|last=Trudeau|first=Richard J.|title=Introduction to Graph Theory|year=1993|publisher=[[Dover Publications]]|___location=New York|isbn=978-0-486-67870-2|url=http://store.doverpublications.com/0486678709.html|edition=Corrected, enlarged republication.|access-date=8 August 2012}}
 
== External links ==
{{Library resources box
|by=no
|onlinebooks=no
|others=no
|about=yes
|label=Graph (mathematics)}}
* {{Commonscatinline}}
* {{MathWorld | urlname=Graph | title = Graph}}
 
[[Category{{DEFAULTSORT:Graph (Discrete mathematics]])}}
[[Category:Graph theory]]
[[Category:Algebraic graph theory]]
[[Category:Topological graph theory]]
 
[[bg:Граф (математика)]]
[[cs:Graf (teorie grafů)]]
[[de:Graph (Graphentheorie)]]
[[fr:Graphe (théorie des graphes)]]
[[ko:그래프]]
[[it:Grafo]]
[[lt:Grafas (matematika)]]
[[hu:Gráf (halmazelmélet)]]
[[nl:Graaf (wiskunde)]]
[[pl:Graf (matematyka)]]
[[ru:Граф (математика)]]
[[sv:Graf]]
[[th:กราฟ (คณิตศาสตร์)]]
[[zh:图]]