# 二分网络

Example of a bipartite graph without cycles

Example of a bipartite graph without cycles

A [[ m = 5和 n = 3的完全二分图]

In the mathematical field of graph theory, a bipartite graph (or bigraph) is a graph whose vertices can be divided into two disjoint and independent sets $\displaystyle{ U }$ and $\displaystyle{ V }$ such that every edge connects a vertex in $\displaystyle{ U }$ to one in $\displaystyle{ V }$. Vertex sets $\displaystyle{ U }$ and $\displaystyle{ V }$ are usually called the parts of the graph. Equivalently, a bipartite graph is a graph that does not contain any odd-length cycles.[1][2]

More abstract examples include the following:

The two sets $\displaystyle{ U }$ and $\displaystyle{ V }$ may be thought of as a coloring of the graph with two colors: if one colors all nodes in $\displaystyle{ U }$ blue, and all nodes in $\displaystyle{ V }$ green, each edge has endpoints of differing colors, as is required in the graph coloring problem.[3][4] In contrast, such a coloring is impossible in the case of a non-bipartite graph, such as a triangle: after one node is colored blue and another green, the third vertex of the triangle is connected to vertices of both colors, preventing it from being assigned either color.

One often writes $\displaystyle{ G=(U,V,E) }$ to denote a bipartite graph whose partition has the parts $\displaystyle{ U }$ and $\displaystyle{ V }$, with $\displaystyle{ E }$ denoting the edges of the graph. If a bipartite graph is not connected, it may have more than one bipartition;[5] in this case, the $\displaystyle{ (U,V,E) }$ notation is helpful in specifying one particular bipartition that may be of importance in an application. If $\displaystyle{ |U|=|V| }$, that is, if the two subsets have equal cardinality, then $\displaystyle{ G }$ is called a balanced bipartite graph.[3] If all vertices on the same side of the bipartition have the same degree, then $\displaystyle{ G }$ is called biregular.

The degree sum formula for a bipartite graph states that

\sum_{v \in V} \deg(v) = \sum_{u \in U} \deg(u) = |E|\, .

\sum_{v \in V} \deg(v) = \sum_{u \in U} \deg(u) = |E|\, .

## Examples

The degree sequence of a bipartite graph is the pair of lists each containing the degrees of the two parts U and V. For example, the complete bipartite graph K3,5 has degree sequence (5,5,5),(3,3,3,3,3). Isomorphic bipartite graphs have the same degree sequence. However, the degree sequence does not, in general, uniquely identify a bipartite graph; in some cases, non-isomorphic bipartite graphs may have the same degree sequence.

When modelling relations between two different classes of objects, bipartite graphs very often arise naturally. For instance, a graph of football players and clubs, with an edge between a player and a club if the player has played for that club, is a natural example of an affiliation network, a type of bipartite graph used in social network analysis.[6]

Another example where bipartite graphs appear naturally is in the (NP-complete) railway optimization problem, in which the input is a schedule of trains and their stops, and the goal is to find a set of train stations as small as possible such that every train visits at least one of the chosen stations. This problem can be modeled as a dominating set problem in a bipartite graph that has a vertex for each train and each station and an edge for

It is possible to test whether a graph is bipartite, and to return either a two-coloring (if it is bipartite) or an odd cycle (if it is not) in linear time, using depth-first search. The main idea is to assign to each vertex the color that differs from the color of its parent in the depth-first search forest, assigning colors in a preorder traversal of the depth-first-search forest. This will necessarily provide a two-coloring of the spanning forest consisting of the edges connecting vertices to their parents, but it may not properly color some of the non-forest edges. In a depth-first search forest, one of the two endpoints of every non-forest edge is an ancestor of the other endpoint, and when the depth first search discovers an edge of this type it should check that these two vertices have different colors. If they do not, then the path in the forest from ancestor to descendant, together with the miscolored edge, form an odd cycle, which is returned from the algorithm together with the result that the graph is not bipartite. However, if the algorithm terminates without detecting an odd cycle of this type, then every edge must be properly colored, and the algorithm returns the coloring together with the result that the graph is bipartite.

each pair of a station and a train that stops at that station.[7]

Alternatively, a similar procedure may be used with breadth-first search in place of depth-first search. Again, each node is given the opposite color to its parent in the search forest, in breadth-first order. If, when a vertex is colored, there exists an edge connecting it to a previously-colored vertex with the same color, then this edge together with the paths in the breadth-first search forest connecting its two endpoints to their lowest common ancestor forms an odd cycle. If the algorithm terminates without finding an odd cycle in this way, then it must have found a proper coloring, and can safely conclude that the graph is bipartite.

A third example is in the academic field of numismatics. Ancient coins are made using two positive impressions of the design (the obverse and reverse). The charts numismatists produce to represent the production of coins are bipartite graphs.[8]

For the intersection graphs of n line segments or other simple shapes in the Euclidean plane, it is possible to test whether the graph is bipartite and return either a two-coloring or an odd cycle in time O(n\log n), even though the graph itself may have up to O\left(n^2\right) edges.

More abstract examples include the following:

• Every planar graph whose faces all have even length is bipartite.[9] Special cases of this are grid graphs and squaregraphs, in which every inner face consists of 4 edges and every inner vertex has four or more neighbors.[10]

A graph with an odd cycle transversal of size 2: removing the two blue bottom vertices leaves a bipartite graph.

• The complete bipartite graph on m and n vertices, denoted by Kn,m is the bipartite graph $\displaystyle{ G = (U, V, E) }$, where U and V are disjoint sets of size m and n, respectively, and E connects every vertex in U with all vertices in V. It follows that Km,n has mn edges.[11] Closely related to the complete bipartite graphs are the crown graphs, formed from complete bipartite graphs by removing the edges of a perfect matching.[12]
• Hypercube graphs, partial cubes, and median graphs are bipartite. In these graphs, the vertices may be labeled by bitvectors, in such a way that two vertices are adjacent if and only if the corresponding bitvectors differ in a single position. A bipartition may be formed by separating the vertices whose bitvectors have an even number of ones from the vertices with an odd number of ones. Trees and squaregraphs form examples of median graphs, and every median graph is a partial cube.[13]

Bipartite graphs are extensively used in modern coding theory, especially to decode codewords received from the channel. Factor graphs and Tanner graphs are examples of this. A Tanner graph is a bipartite graph in which the vertices on one side of the bipartition represent digits of a codeword, and the vertices on the other side represent combinations of digits that are expected to sum to zero in a codeword without errors. A factor graph is a closely related belief network used for probabilistic decoding of LDPC and turbo codes.

## Properties

In computer science, a Petri net is a mathematical modeling tool used in analysis and simulations of concurrent systems. A system is modeled as a bipartite directed graph with two sets of nodes: A set of "place" nodes that contain resources, and a set of "event" nodes which generate and/or consume resources. There are additional constraints on the nodes and edges that constrain the behavior of the system. Petri nets utilize the properties of bipartite directed graphs and other properties to allow mathematical proofs of the behavior of systems while also allowing easy implementation of simulations of the system.

### Characterization

In projective geometry, Levi graphs are a form of bipartite graph used to model the incidences between points and lines in a configuration. Corresponding to the geometric property of points and lines that every two lines meet in at most one point and every two points be connected with a single line, Levi graphs necessarily do not contain any cycles of length four, so their girth must be six or more.

Bipartite graphs may be characterized in several different ways:

• A graph is bipartite if and only if it is 2-colorable, (i.e. its chromatic number is less than or equal to 2).[3]
• The spectrum of a graph is symmetric if and only if it's a bipartite graph.[15]

### Kőnig's theorem and perfect graphs

In bipartite graphs, the size of minimum vertex cover is equal to the size of the maximum matching; this is Kőnig's theorem.[16]<ref>{{citation

| last1 = Gross | first1 = Jonathan L.


Category:Graph families

| last2 = Yellen | first2 = Jay

| edition = 2nd


Category:Parity (mathematics)

This page was moved from wikipedia:en:Bipartite graph. Its edit history can be viewed at 二分网络/edithistory

1. Diestel, Reinard (2005). Graph Theory, Grad. Texts in Math. Springer. ISBN 978-3-642-14278-9.
2. {{citation In the mathematical field of graph theory, a bipartite graph (or bigraph) is a graph whose vertices can be divided into two disjoint and independent sets U and V such that every edge connects a vertex in U to one in V. Vertex sets U and V are usually called the parts of the graph. Equivalently, a bipartite graph is a graph that does not contain any odd-length cycles. 在图论的数学领域中，二部图(或二部图)是指顶点可分为两个不相交的独立集合 u 和 v，使得每条边连接 u 中的一个顶点到 v 顶点集合 u 和 v 中的一个顶点的图。等价地，二部图是不包含任何奇数长度圈的图。 | last1 = Asratian | first1 = Armen S. The two sets U and V may be thought of as a coloring of the graph with two colors: if one colors all nodes in U blue, and all nodes in V green, each edge has endpoints of differing colors, as is required in the graph coloring problem. In contrast, such a coloring is impossible in the case of a non-bipartite graph, such as a triangle: after one node is colored blue and another green, the third vertex of the triangle is connected to vertices of both colors, preventing it from being assigned either color. 这两个集合 u 和 v 可以被认为是图的两种颜色: 如果一种颜色的所有节点都是 u 蓝色的，所有节点都是 v 绿色的，那么每条边都有不同颜色的端点，就像图着色问题中所要求的那样。相比之下，对于非二部图，如三角形，这样的着色是不可能的: 在一个节点被着成蓝色和另一个绿色之后，三角形的第三个顶点连接到两种颜色的顶点，从而防止它被分配任何一种颜色。 | last2 = Denley | first2 = Tristan M. J. One often writes G=(U,V,E) to denote a bipartite graph whose partition has the parts U and V, with E denoting the edges of the graph. If a bipartite graph is not connected, it may have more than one bipartition; in this case, the (U,V,E) notation is helpful in specifying one particular bipartition that may be of importance in an application. If |U|=|V|, that is, if the two subsets have equal cardinality, then G is called a balanced bipartite graph. If all vertices on the same side of the bipartition have the same degree, then G is called biregular. 人们经常用 g = (u，v，e)来表示划分为 u 和 v 的二部图，e 表示图的边。如果一个二部图不是连通的，那么它可能有多个二分; 在这种情况下，(u，v，e)符号有助于指定一个特定的二分，这个二分在应用程序中可能很重要。如果 | u | = | v | ，也就是说，如果两个子集有相等的基数，那么 g 称为平衡二部图。如果二分区同一边的所有顶点都有相同的度数，那么 g 称为二正则。 | last3 = Häggkvist | first3 = Roland | isbn = 9780521593458 | publisher = Cambridge University Press When modelling relations between two different classes of objects, bipartite graphs very often arise naturally. For instance, a graph of football players and clubs, with an edge between a player and a club if the player has played for that club, is a natural example of an affiliation network, a type of bipartite graph used in social network analysis. 当建立两类不同对象之间的模型关系时，二部图往往自然而然地出现。例如，一个足球运动员和俱乐部的图，如果一个运动员为一个俱乐部效力，那么该运动员和俱乐部之间就有一条边，这是一个隶属关系网络的自然例子，这是一种用于社会网络分析的二部图。 | series = Cambridge Tracts in Mathematics | title = Bipartite Graphs and their Applications Another example where bipartite graphs appear naturally is in the (NP-complete) railway optimization problem, in which the input is a schedule of trains and their stops, and the goal is to find a set of train stations as small as possible such that every train visits at least one of the chosen stations. This problem can be modeled as a dominating set problem in a bipartite graph that has a vertex for each train and each station and an edge for 二部图自然出现的另一个例子是在(np 完全)铁路最佳化问题，其中输入的是列车及其停靠时刻表，目标是找到一组尽可能小的火车站，使每列火车至少到达一个选定的车站。这个问题可以被建模为一个二部图中的支配集问题，这个二部图中每列车和每个车站都有一个顶点，每个车站都有一条边 | volume = 131 each pair of a station and a train that stops at that station. 每一对车站和停在那个车站的火车。 | year = 1998 | url-access = registration A third example is in the academic field of numismatics. Ancient coins are made using two positive impressions of the design (the obverse and reverse). The charts numismatists produce to represent the production of coins are bipartite graphs. 第三个例子是钱币学领域。古代硬币的制作是基于对设计的正面印象(正面与背面)。钱币收藏家制作的表示硬币产量的图表是二部图。 | url = https://archive.org/details/bipartitegraphst0000asra }}.
3. 脚本错误：没有“Footnotes”这个模块。, p. 7.
4. Scheinerman, Edward R. (2012), Mathematics: A Discrete Introduction Bipartite graphs may be characterized in several different ways: 二部图可以用几种不同的方式来表示: (3rd ed.), Cengage Learning, p. 363, ISBN 9780840049421 line feed character in |title= at position 37 (help).
5. [[Gary Chartrand In bipartite graphs, the size of minimum vertex cover is equal to the size of the maximum matching; this is Kőnig's theorem. An alternative and equivalent form of this theorem is that the size of the maximum independent set plus the size of the maximum matching is equal to the number of vertices. 在二部图中，最小顶点覆盖的大小等于最大匹配的大小，这就是 k-nig 定理。这个定理的另一种等价形式是最大独立集的大小加上最大匹配的大小等于顶点的数目。|Chartrand, Gary]]; [[Ping Zhang (graph theorist) In any graph without isolated vertices the size of the minimum edge cover plus the size of a maximum matching equals the number of vertices. Combining this equality with Kőnig's theorem leads to the facts that, in bipartite graphs, the size of the minimum edge cover is equal to the size of the maximum independent set, and the size of the minimum edge cover plus the size of the minimum vertex cover is equal to the number of vertices. 在任何没有孤立顶点的图中，最小边覆盖的大小加上最大匹配的大小等于顶点的数目。将这一等式与 k nig 定理相结合，得到了在二部图中，最小边覆盖的大小等于最大独立集的大小，最小边覆盖的大小加上最小顶点覆盖的大小等于顶点的个数。|Zhang, Ping]] (2008), Chromatic Graph Theory, Discrete Mathematics And Its Applications According to the strong perfect graph theorem, the perfect graphs have a forbidden graph characterization resembling that of bipartite graphs: a graph is bipartite if and only if it has no odd cycle as a subgraph, and a graph is perfect if and only if it has no odd cycle or its complement as an induced subgraph. The bipartite graphs, line graphs of bipartite graphs, and their complements form four out of the five basic classes of perfect graphs used in the proof of the strong perfect graph theorem. 根据完美图问题，完美图有一个类似于二部图的禁止图: 一个图是二部图的当且仅当它作为一个子图没有奇圈，并且一个图是完美的当且仅当它没有奇圈或它作为诱导子图的补图。二部图，二部图的线图，以及它们的补图在完美图问题证明中的5个基本类型的完美图中的4个。, 53 For a vertex, the number of adjacent vertices is called the degree of the vertex and is denoted \deg(v). 对于一个顶点，相邻顶点的个数称为顶点的度数，并用 deg (v)表示。, CRC Press, p. 223 Another class of related results concerns perfect graphs: every bipartite graph, the complement of every bipartite graph, the line graph of every bipartite graph, and the complement of the line graph of every bipartite graph, are all perfect. Perfection of bipartite graphs is easy to see (their chromatic number is two and their maximum clique size is also two) but perfection of the complements of bipartite graphs is less trivial, and is another restatement of Kőnig's theorem. This was one of the results that motivated the initial definition of perfect graphs. Perfection of the complements of line graphs of perfect graphs is yet another restatement of Kőnig's theorem, and perfection of the line graphs themselves is a restatement of an earlier theorem of Kőnig, that every bipartite graph has an edge coloring using a number of colors equal to its maximum degree. 另一类相关结果涉及完美图: 每一个二部图、每一个二部图的补图、每一个二部图的线图以及每一个二部图的线图的补图都是完美的。二部图的完美性是显而易见的(它们的色数是2，它们的最大团大小也是2) ，但二部图的补图的完美性是不那么琐碎的，是对 k nig 定理的另一种重述。这是激发完美图最初定义的结果之一。完备图的线图的完备性是对 k nig 定理的又一次重申，线图本身的完备性是对 k nig 早期定理的重申，即每个二部图都有一个边着色，其颜色数等于它的最大度。, ISBN 9781584888000 line feed character in |author2-link= at position 28 (help); line feed character in |page= at position 4 (help); line feed character in |series= at position 42 (help); line feed character in |author1-link= at position 15 (help); line feed character in |volume= at position 3 (help).
6. Wasserman, Stanley The bipartite realization problem is the problem of finding a simple bipartite graph with the degree sequence being two given lists of natural numbers. (Trailing zeros may be ignored since they are trivially realized by adding an appropriate number of isolated vertices to the digraph.) 二部实现问题是寻找度序列为两个给定自然数列表的简单二部图的问题。(尾随零可能被忽略，因为它们通过向有向图添加适当数量的孤立顶点来实现。); Faust, Katherine (1994), Social Network Analysis: Methods and Applications A similar reinterpretation of adjacency matrices may be used to show a one-to-one correspondence between directed graphs (on a given number of labeled vertices, allowing self-loops) and balanced bipartite graphs, with the same number of vertices on both sides of the bipartition. For, the adjacency matrix of a directed graph with vertices can be any (0,1) matrix of size n\times n, which can then be reinterpreted as the adjacency matrix of a bipartite graph with vertices on each side of its bipartition. In this construction, the bipartite graph is the bipartite double cover of the directed graph. 一个类似的邻接矩阵翻唱可以用来显示有向图(在给定数量的标号顶点上，允许自循环)和平衡二部图之间的双射，二部图的两边顶点数相同。因为，一个有顶点的有向图的邻接矩阵可以是任意大小 n 乘以 n 的(0,1)矩阵，这个矩阵可以被重新解释为一个二部图的邻接矩阵，二部图的每一边都有顶点。在此构造中，二部图是有向图的二部双覆盖。, Structural Analysis in the Social Sciences, 8, Cambridge University Press A hypergraph is a combinatorial structure that, like an undirected graph, has vertices and edges, but in which the edges may be arbitrary sets of vertices rather than having to have exactly two endpoints. A bipartite graph (U,V,E) may be used to model a hypergraph in which is the set of vertices of the hypergraph, is the set of hyperedges, and contains an edge from a hypergraph vertex to a hypergraph edge exactly when is one of the endpoints of . Under this correspondence, the biadjacency matrices of bipartite graphs are exactly the incidence matrices of the corresponding hypergraphs. As a special case of this correspondence between bipartite graphs and hypergraphs, any multigraph (a graph in which there may be two or more edges between the same two vertices) may be interpreted as a hypergraph in which some hyperedges have equal sets of endpoints, and represented by a bipartite graph that does not have multiple adjacencies and in which the vertices on one side of the bipartition all have degree two. 一个超图是一个组合结构，就像一个无向图，有顶点和边，但其中的边可能是任意的顶点集，而不是必须有正好两个端点。二部图(u，v，e)是超图的顶点集，是超边的集合，当超图的顶点是超图的一个端点时，二部图(u，v，e)恰好包含从超图顶点到超图边的一条边。在此对应关系下，二部图的二邻接矩阵正好是对应超图的关联矩阵。作为二部图和超图之间对应关系的一种特殊情形，任何多重图(在同一两个顶点之间可能有两条或更多条边的图)都可以被解释为一个超图，其中一些超边具有相等的端点集，并由一个不具有多重邻接的二部图表示，在这个超图中，二部分一边的顶点都具有二次。, pp. 299–302, ISBN [[Special:BookSources/9780521387071 The biadjacency matrix of a bipartite graph (U,V,E) is a (0,1) matrix of size|9780521387071 The biadjacency matrix of a bipartite graph (U,V,E) is a (0,1) matrix of size]] Check |isbn= value: invalid character (help) Text "U" ignored (help); Text "\times" ignored (help); Text " that has a one for each pair of adjacent vertices and a zero for nonadjacent vertices. Biadjacency matrices may be used to describe equivalences between bipartite graphs, hypergraphs, and directed graphs. 二部图(u，v，e)的二邻接矩阵是一个大小为 " ignored (help); Text " 的(0,1)矩阵，其中每对相邻顶点有一个邻接矩阵，不相邻顶点有一个零。双邻接矩阵可以用来描述二部图、超图和有向图之间的等价关系。 " ignored (help); Text " u " ignored (help); Text "V" ignored (help); Text " 乘以 " ignored (help); Text " v " ignored (help); line feed character in |isbn= at position 14 (help); line feed character in |first1= at position 8 (help); line feed character in |publisher= at position 27 (help); line feed character in |title= at position 50 (help).
7. Niedermeier, Rolf (2006). Invitation to Fixed Parameter Algorithms (Oxford Lecture Series in Mathematics and Its Applications). Oxford. pp. 20–21. ISBN 978-0-19-856607-6.
8. Bracey, Robert (2012). "On the Graphical Interpreation of Herod's Coinage in Judaea and Rome in Coins". pp. 65–84.
9. Soifer, Alexander (2008), The Mathematical Coloring Book, Springer-Verlag, pp. 136–137, ISBN 978-0-387-74640-1. This result has sometimes been called the "two color theorem"; Soifer credits it to a famous 1879 paper of Alfred Kempe containing a false proof of the four color theorem.
10. Bandelt, H.-J.; Chepoi, V.; Eppstein, D. (2010), "Combinatorics and geometry of finite and infinite squaregraphs", SIAM Journal on Discrete Mathematics, 24 (4): 1399–1440, arXiv:0905.4537, doi:10.1137/090760301 Unknown parameter |s2cid= ignored (help).
11. 脚本错误：没有“Footnotes”这个模块。, p. 11.
12. {{citation Odd cycle transversal is an NP-complete algorithmic problem that asks, given a graph G = (V,E) and a number k, whether there exists a set of k vertices whose removal from G would cause the resulting graph to be bipartite. The problem is fixed-parameter tractable, meaning that there is an algorithm whose running time can be bounded by a polynomial function of the size of the graph multiplied by a larger function of k. The name odd cycle transversal comes from the fact that a graph is bipartite if and only if it has no odd cycles. Hence, to delete vertices from a graph in order to obtain a bipartite graph, one needs to "hit all odd cycle", or find a so-called odd cycle transversal set. In the illustration, every odd cycle in the graph contains the blue (the bottommost) vertices, so removing those vertices kills all odd cycles and leaves a bipartite graph. 奇圈横截是一个 np 完全计算问题，它要求给定一个图 g = (v，e)和一个数 k，是否存在一组 k 点，从 g 中去掉这些点会使得得到的图是二部图。这个问题是固定参数可处理的，这意味着有一个算法的运行时间可以有界的多项式函数的大小的图乘以一个较大的函数的 k。名称奇圈横截来自于这样一个事实: 一个图是二部图的当且仅当它没有奇圈。因此，要从图中删除顶点以得到二部图，就需要“遍历所有奇圈” ，或者找到一个所谓的奇圈横截集。在图中，图中的每个奇数圈都包含蓝色(最底部的)顶点，因此去掉这些顶点会杀死所有奇数圈并留下一个二部图。 | last1 = Archdeacon | first1 = D. | author1-link = Dan Archdeacon | last2 = Debowsky | first2 = M. The edge bipartization problem is the algorithmic problem of deleting as few edges as possible to make a graph bipartite and is also an important problem in graph modification algorithmics. This problem is also fixed-parameter tractable, and can be solved in time $\displaystyle{ O\left(2^k m^2\right) }$, where k is the number of edges to delete and m is the number of edges in the input graph. 边双分问题是为了构造一个二部图而删除尽可能少的边的计算问题问题，也是图修正算法中的一个重要问题。这个问题也是固定参数易于处理的，可以在时间上解决 < math display ="inline"> o left (2 ^ k m ^ 2 right) </math > ，其中 k 是要删除的边数，m 是输入图中的边数。 | last3 = Dinitz | first3 = J. | author3-link = Jeff Dinitz | last4 = Gavlas | first4 = H. | doi = 10.1016/j.disc.2003.11.021 | issue = 1–3 A matching in a graph is a subset of its edges, no two of which share an endpoint. Polynomial time algorithms are known for many algorithmic problems on matchings, including maximum matching (finding a matching that uses as many edges as possible), maximum weight matching, and stable marriage. In many cases, matching problems are simpler to solve on bipartite graphs than on non-bipartite graphs, and many matching algorithms such as the Hopcroft–Karp algorithm for maximum cardinality matching work correctly only on bipartite inputs. 图中的匹配是其边的一个子集，没有两条边共享一个端点。多项式时间算法已知的许多算法问题的匹配，包括最大匹配(寻找匹配，使用尽可能多的边) ，最大权重匹配，和稳定的婚姻。在许多情况下，二部图上的匹配问题比非二部图上的匹配问题更容易解决，而且许多匹配算法，如最大基数匹配的霍普克罗夫特-卡普算法，只能在二部图输入上正确工作。 | journal = Discrete Mathematics | pages = 37–43 As a simple example, suppose that a set P of people are all seeking jobs from among a set of J jobs, with not all people suitable for all jobs. This situation can be modeled as a bipartite graph (P,J,E) where an edge connects each job-seeker with each suitable job. A perfect matching describes a way of simultaneously satisfying all job-seekers and filling all jobs; Hall's marriage theorem provides a characterization of the bipartite graphs which allow perfect matchings. The National Resident Matching Program applies graph matching methods to solve this problem for U.S. medical student job-seekers and hospital residency jobs. 举一个简单的例子，假设一组 p 的人都是从一组 j 的工作中找工作的，并不是所有人都适合所有的工作。这种情况可以建模为一个二部图(p，j，e) ，其中一条边连接每个求职者与每个合适的工作。完美匹配描述了一种同时满足所有求职者和填补所有工作岗位的方法; 霍尔的婚姻定理提供了二部图的角色塑造，这些图允许完美匹配。国家住院医生匹配计划(National Resident Matching Program)应用图形匹配方法来解决美国医学生求职者和医院住院医生工作的这一问题。 | title = Cycle systems in the complete bipartite graph minus a one-factor | volume = 284 The Dulmage–Mendelsohn decomposition is a structural decomposition of bipartite graphs that is useful in finding maximum matchings. Dulmage-Mendelsohn 分解是二部图的一种结构分解，它有助于找到最大匹配。 | year = 2004| doi-access = free }}.
13. Ovchinnikov, Sergei (2011), Graphs and Cubes, Universitext, Springer. See especially Chapter 5, "Partial Cubes", pp. 127–181.
14. 脚本错误：没有“Footnotes”这个模块。, Theorem 2.1.3, p. 8. Asratian et al. attribute this characterization to a 1916 paper by Dénes Kőnig. For infinite graphs, this result requires the axiom of choice.
15. Biggs, Norman (1994), Algebraic Graph Theory, Cambridge Mathematical Library (2nd ed.), Cambridge University Press, p. 53, ISBN 9780521458979.
16. Kőnig, Dénes (1931). "Gráfok és mátrixok". Matematikai és Fizikai Lapok. 38: 116–119..