Posts

Showing posts with the label bipartite matching

Bipartite Matching Algorithms — Hopcroft-Karp, Gale-Shapley & Hungarian Method | Chapter 25 in Introduction to Algorithms

Image
Bipartite Matching Algorithms — Hopcroft-Karp, Gale-Shapley & Hungarian Method | Chapter 25 in Introduction to Algorithms Chapter 25 of Introduction to Algorithms (CLRS) presents a rich collection of algorithms for solving matching problems in bipartite graphs. These problems involve pairing elements from two disjoint sets—such as jobs and workers or students and schools—based on constraints like maximum size, stability, or optimal assignment weights. This chapter explores the powerful Hopcroft-Karp algorithm for maximum matching, the Gale-Shapley algorithm for stable marriage problems, and the Hungarian algorithm for solving the assignment problem with weights. 📺 Watch the full podcast-style summary above, or continue reading for a complete breakdown of the key matching strategies, theorems, and complexity results introduced in Chapter 25. Maximum Bipartite Matching A matching is a set of edges with no shared vertices. In bipartite graphs, the goal is often to fin...

Maximum Flow Algorithms — Ford-Fulkerson, Edmonds-Karp & Bipartite Matching | Chapter 24 in Introduction to Algorithms

Image
Maximum Flow Algorithms — Ford-Fulkerson, Edmonds-Karp & Bipartite Matching | Chapter 24 in Introduction to Algorithms Chapter 24 of Introduction to Algorithms (CLRS) tackles the maximum-flow problem —how to move the greatest possible amount of material through a network from a source to a sink without exceeding edge capacities. This problem has critical applications in transportation, communication networks, and resource allocation. The chapter introduces essential flow concepts, residual networks, augmenting paths, and foundational algorithms like Ford-Fulkerson and Edmonds-Karp . It also explains how flow models apply to bipartite matching and special network structures. 📺 Watch the full chapter summary above, or continue reading for a complete breakdown of every core concept and algorithm covered in Chapter 24. What Is a Flow Network? A flow network is a directed graph where each edge has a nonnegative capacity, and the goal is to determine how much material can ...