
- Graph Theory - Home
- Graph Theory - Introduction
- Graph Theory - History
- Graph Theory - Fundamentals
- Graph Theory - Applications
- Types of Graphs
- Graph Theory - Types of Graphs
- Graph Theory - Simple Graphs
- Graph Theory - Multi-graphs
- Graph Theory - Directed Graphs
- Graph Theory - Weighted Graphs
- Graph Theory - Bipartite Graphs
- Graph Theory - Complete Graphs
- Graph Theory - Subgraphs
- Graph Theory - Trees
- Graph Theory - Forests
- Graph Theory - Planar Graphs
- Graph Theory - Hypergraphs
- Graph Theory - Infinite Graphs
- Graph Theory - Random Graphs
- Graph Representation
- Graph Theory - Graph Representation
- Graph Theory - Adjacency Matrix
- Graph Theory - Adjacency List
- Graph Theory - Incidence Matrix
- Graph Theory - Edge List
- Graph Theory - Compact Representation
- Graph Theory - Incidence Structure
- Graph Theory - Matrix-Tree Theorem
- Graph Properties
- Graph Theory - Basic Properties
- Graph Theory - Coverings
- Graph Theory - Matchings
- Graph Theory - Independent Sets
- Graph Theory - Traversability
- Graph Theory Connectivity
- Graph Theory - Connectivity
- Graph Theory - Vertex Connectivity
- Graph Theory - Edge Connectivity
- Graph Theory - k-Connected Graphs
- Graph Theory - 2-Vertex-Connected Graphs
- Graph Theory - 2-Edge-Connected Graphs
- Graph Theory - Strongly Connected Graphs
- Graph Theory - Weakly Connected Graphs
- Graph Theory - Connectivity in Planar Graphs
- Graph Theory - Connectivity in Dynamic Graphs
- Special Graphs
- Graph Theory - Regular Graphs
- Graph Theory - Complete Bipartite Graphs
- Graph Theory - Chordal Graphs
- Graph Theory - Line Graphs
- Graph Theory - Complement Graphs
- Graph Theory - Graph Products
- Graph Theory - Petersen Graph
- Graph Theory - Cayley Graphs
- Graph Theory - De Bruijn Graphs
- Graph Algorithms
- Graph Theory - Graph Algorithms
- Graph Theory - Breadth-First Search
- Graph Theory - Depth-First Search (DFS)
- Graph Theory - Dijkstra's Algorithm
- Graph Theory - Bellman-Ford Algorithm
- Graph Theory - Floyd-Warshall Algorithm
- Graph Theory - Johnson's Algorithm
- Graph Theory - A* Search Algorithm
- Graph Theory - Kruskal's Algorithm
- Graph Theory - Prim's Algorithm
- Graph Theory - Borůvka's Algorithm
- Graph Theory - Ford-Fulkerson Algorithm
- Graph Theory - Edmonds-Karp Algorithm
- Graph Theory - Push-Relabel Algorithm
- Graph Theory - Dinic's Algorithm
- Graph Theory - Hopcroft-Karp Algorithm
- Graph Theory - Tarjan's Algorithm
- Graph Theory - Kosaraju's Algorithm
- Graph Theory - Karger's Algorithm
- Graph Coloring
- Graph Theory - Coloring
- Graph Theory - Edge Coloring
- Graph Theory - Total Coloring
- Graph Theory - Greedy Coloring
- Graph Theory - Four Color Theorem
- Graph Theory - Coloring Bipartite Graphs
- Graph Theory - List Coloring
- Advanced Topics of Graph Theory
- Graph Theory - Chromatic Number
- Graph Theory - Chromatic Polynomial
- Graph Theory - Graph Labeling
- Graph Theory - Planarity & Kuratowski's Theorem
- Graph Theory - Planarity Testing Algorithms
- Graph Theory - Graph Embedding
- Graph Theory - Graph Minors
- Graph Theory - Isomorphism
- Spectral Graph Theory
- Graph Theory - Graph Laplacians
- Graph Theory - Cheeger's Inequality
- Graph Theory - Graph Clustering
- Graph Theory - Graph Partitioning
- Graph Theory - Tree Decomposition
- Graph Theory - Treewidth
- Graph Theory - Branchwidth
- Graph Theory - Graph Drawings
- Graph Theory - Force-Directed Methods
- Graph Theory - Layered Graph Drawing
- Graph Theory - Orthogonal Graph Drawing
- Graph Theory - Examples
- Computational Complexity of Graph
- Graph Theory - Time Complexity
- Graph Theory - Space Complexity
- Graph Theory - NP-Complete Problems
- Graph Theory - Approximation Algorithms
- Graph Theory - Parallel & Distributed Algorithms
- Graph Theory - Algorithm Optimization
- Graphs in Computer Science
- Graph Theory - Data Structures for Graphs
- Graph Theory - Graph Implementations
- Graph Theory - Graph Databases
- Graph Theory - Query Languages
- Graph Algorithms in Machine Learning
- Graph Neural Networks
- Graph Theory - Link Prediction
- Graph-Based Clustering
- Graph Theory - PageRank Algorithm
- Graph Theory - HITS Algorithm
- Graph Theory - Social Network Analysis
- Graph Theory - Centrality Measures
- Graph Theory - Community Detection
- Graph Theory - Influence Maximization
- Graph Theory - Graph Compression
- Graph Theory Real-World Applications
- Graph Theory - Network Routing
- Graph Theory - Traffic Flow
- Graph Theory - Web Crawling Data Structures
- Graph Theory - Computer Vision
- Graph Theory - Recommendation Systems
- Graph Theory - Biological Networks
- Graph Theory - Social Networks
- Graph Theory - Smart Grids
- Graph Theory - Telecommunications
- Graph Theory - Knowledge Graphs
- Graph Theory - Game Theory
- Graph Theory - Urban Planning
- Graph Theory Useful Resources
- Graph Theory - Quick Guide
- Graph Theory - Useful Resources
- Graph Theory - Discussion
Graph Theory - Matchings
Matchings in Graph Theory
A matching in a graph is a subset of edges such that no two edges share a common vertex. A matching that includes every vertex of the graph is called a perfect matching, whereas a matching that cannot be extended by adding more edges is called a maximal matching.
Matchings are used in various applications, including network design, scheduling, and optimization problems. The most well-known types include maximum matching, perfect matching, and bipartite matching.
Properties of Matchings
Following are the properties of matchings in graphs −
- Independent Edges: No two edges in a matching share a common vertex.
- Maximization: The size of a matching can be maximized while maintaining independence of edges.
- Applications: Used in job assignments, network flow, and combinatorial optimization.
Maximum Matching
A maximum matching in a graph is a matching that contains the largest possible number of edges. There may be multiple maximum matchings in a graph.
Given an undirected graph G = (V, E), a maximum matching M is a matching such that no other matching in the graph contains more edges than M.
Example
Take a look at the following graph −

- Graph: G = (V, E), where V = {A, B, C, D, E, F} and E = {(A, B), (B, C), (C, D), (D, E), (E, F)}.
- Maximum Matching: M = {(A, B), (C, D), (E, F)}.
Perfect Matching
A perfect matching is a matching in which every vertex of the graph is matched to exactly one other vertex. This means that the graph must have an even number of vertices for a perfect matching to exist.
If a perfect matching exists, it is also a maximum matching, but not all maximum matchings are perfect matchings.
Example
In the following graph, a perfect matching is shown −

- Graph: G = (V, E), where V = {A, B, C, D, E, F} and E = {(A, B), (C, D), (E, F)}.
- Perfect Matching: M = {(A, B), (C, D), (E, F)} (since every vertex is matched).
Maximal Matching
A maximal matching is a matching that cannot be extended by adding more edges. It does not have to be a maximum matching but is locally optimal.
Every maximum matching is a maximal matching, but not every maximal matching is a maximum matching.
Example
In the above graph, the following set forms a maximal matching −
{(A, B), (C, D)}
Bipartite Matching
A bipartite matching is a matching in a bipartite graph, where vertices are divided into two disjoint sets, and edges only connect vertices from different sets.
The goal is to find a maximum matching between the two sets.
Example
Take a look at the following bipartite graph −

- Graph: G = (V1 V2, E), where V1 = {A, C, E} and V2 = {B, D, F}.
- Bipartite Matching: M = {(A, B), (C, D), (E, F)}.
Hall's Marriage Theorem
Hall's Marriage Theorem provides a necessary and sufficient condition for the existence of a perfect matching in a bipartite graph. It states that a perfect matching exists if and only if for every subset S of one partition, the number of neighbors in the other partition is at least |S|.
This theorem is commonly used in solving assignment and matching problems.
Augmenting Path
An augmenting path is a path that starts and ends at unmatched vertices and alternates between edges that are in and not in the current matching.
Finding an augmenting path allows for increasing the size of a matching by flipping the status of edges along the path.
Knig's Theorem
Knig's Theorem states that in a bipartite graph, the size of the maximum matching is equal to the size of the minimum vertex cover.
This theorem is useful in proving properties of matchings and optimizing problems in graph theory.
Applications of Matchings
Matchings are commonly used in various real-world applications, such as −
- Job Assignment: Matching employees to tasks based on skills.
- Stable Marriage Problem: Finding optimal pairings in two groups.
- Network Flow: Used in network design and scheduling.