Graph Algorithms Matching Algorithm Theory WS 2012/13 Fabian Kuhn - - PowerPoint PPT Presentation

graph algorithms
SMART_READER_LITE
LIVE PREVIEW

Graph Algorithms Matching Algorithm Theory WS 2012/13 Fabian Kuhn - - PowerPoint PPT Presentation

Chapter 5 Graph Algorithms Matching Algorithm Theory WS 2012/13 Fabian Kuhn Circulation: Demands and Lower Bounds Given: Directed network , with Edge capacities 0 and lower bounds for


slide-1
SLIDE 1

Chapter 5

Graph Algorithms

Matching

Algorithm Theory WS 2012/13 Fabian Kuhn

slide-2
SLIDE 2

Algorithm Theory, WS 2012/13 Fabian Kuhn 2

Circulation: Demands and Lower Bounds

Given: Directed network , with

  • Edge capacities 0 and lower bounds ℓ for ∈
  • Node demands ∈ for all ∈

– 0: node needs flow and therefore is a sink – 0: node has a supply of and is therefore a source – 0: node is neither a source nor a sink

Flow: Function : → satisfying

  • Capacity Conditions: ∀ ∈ : ℓ
  • Demand Conditions: ∀ ∈ :

Objective: Does a flow satisfying all conditions exist? If yes, find such a flow .

slide-3
SLIDE 3

Algorithm Theory, WS 2012/13 Fabian Kuhn 3

Integrality

Theorem: Consider a circulation problem with integral capacities, flow lower bounds, and node demands. If the problem is feasible, then it also has an integral solution. Proof:

  • Graph ′ has only integral capacities and demands
  • Thus, the flow network used in the reduction to solve

circulation with demands and no lower bounds has only integral capacities

  • The theorem now follows because a max flow problem with

integral capacities also has an optimal integral solution

  • It also follows that with the max flow algorithms we studied,

we get an integral feasible circulation solution.

slide-4
SLIDE 4

Algorithm Theory, WS 2012/13 Fabian Kuhn 4

Matrix Rounding

  • Given: matrix , of real numbers
  • row sum: ∑ ,
  • , column sum:

∑ ,

  • Goal: Round each ,, as well as and

up or down to the

next integer so that the sum of rounded elements in each row (column) equals the rounded row (column) sum

  • Original application: publishing census data

Example:

3.14 6.80 7.30 17.24 9.60 2.40 0.70 12.70 3.60 1.20 6.50 11.30 16.34 10.40 14.50 3 7 7 17 10 2 1 13 3 1 7 11 16 10 15

  • riginal data

possible rounding

slide-5
SLIDE 5

Algorithm Theory, WS 2012/13 Fabian Kuhn 5

Matrix Rounding

Theorem: For any matrix, there exists a feasible rounding. Remark: Just rounding to the nearest integer doesn’t work

0.35 0.35 0.35 1.05 0.55 0.55 0.55 1.65 0.90 0.90 0.90 1 1 1 3 1 1 1 1 1 1 1 2 1 1 1

  • riginal data

feasible rounding rounding to nearest integer

slide-6
SLIDE 6

Algorithm Theory, WS 2012/13 Fabian Kuhn 6

Reduction to Circulation

3.14 6.80 7.30 17.24 9.60 2.40 0.70 12.70 3.60 1.20 6.50 11.30 16.34 10.40 14.50

  • rows:
  • columns:

3,4 2,3 12,13 10,11

Matrix elements and row/column sums give a feasible circulation that satisfies all lower bound, capacity, and demand constraints

all demands 0

slide-7
SLIDE 7

Algorithm Theory, WS 2012/13 Fabian Kuhn 7

Matrix Rounding

Theorem: For any matrix, there exists a feasible rounding. Proof:

  • The matrix entries , and the row and column sums and
  • give a feasible circulation for the constructed network
  • Every feasible circulation gives matrix entries with corresponding

row and column sums (follows from demand constraints)

  • Because all demands, capacities, and flow lower bounds are

integral, there is an integral solution to the circulation problem  gives a feasible rounding!

slide-8
SLIDE 8

Algorithm Theory, WS 2012/13 Fabian Kuhn 8

Matching

slide-9
SLIDE 9

Algorithm Theory, WS 2012/13 Fabian Kuhn 9

Gifts‐Children Graph

  • Which child likes which gift can be represented by a graph
slide-10
SLIDE 10

Algorithm Theory, WS 2012/13 Fabian Kuhn 10

Matching

Matching: Set of pairwise non‐incident edges Maximal Matching: A matching s.t. no more edges can be added Maximum Matching: A matching of maximum possible size Perfect Matching: Matching of size ⁄ (every node is matched)

slide-11
SLIDE 11

Algorithm Theory, WS 2012/13 Fabian Kuhn 11

Bipartite Graph

Definition: A graph , is called bipartite iff its node set can be partitioned into two parts

∪ such that for each

edge u, v ∈ , , ∩

1.

  • Thus, edges are only between the two parts

slide-12
SLIDE 12

Algorithm Theory, WS 2012/13 Fabian Kuhn 12

Santa’s Problem

Maximum Matching in Bipartite Graphs: Every child can get a gift iff there is a matching

  • f size #children

Clearly, every matching is at most as big If #children #gifts, there is a solution iff there is a perfect matching

slide-13
SLIDE 13

Algorithm Theory, WS 2012/13 Fabian Kuhn 13

Reducing to Maximum Flow

  • Like edge‐disjoint paths…

all capacities are

slide-14
SLIDE 14

Algorithm Theory, WS 2012/13 Fabian Kuhn 14

Reducing to Maximum Flow

Theorem: Every integer solution to the max flow problem on the constructed graph induces a maximum bipartite matching of . Proof:

  • 1. An integer flow of value || induces a matching of size ||

– Left nodes (gifts) have incoming capacity 1 – Right nodes (children) have outgoing capacity 1 – Left and right nodes are incident to 1 edge of with 1

  • 2. A matching of size implies a flow of value

– For each edge , of the matching:

  • ,

, , 1 – All other flow values are 0

slide-15
SLIDE 15

Algorithm Theory, WS 2012/13 Fabian Kuhn 15

Running Time of Max. Bipartite Matching

Theorem: A maximum matching of a bipartite graph can be computed in time

slide-16
SLIDE 16

Algorithm Theory, WS 2012/13 Fabian Kuhn 16

Perfect Matching?

  • There can only be a perfect matching if both sides of the

partition have size ⁄ .

  • There is no perfect matching, iff there is an ‐ cut of

size ⁄ in the flow network. 2

  • 2
slide-17
SLIDE 17

Algorithm Theory, WS 2012/13 Fabian Kuhn 17

‐ Cuts

Partition , of node set such that ∈ and ∈

  • If ∈ : edge , is in cut ,
  • If ∈ : edge , is in cut ,
  • Otherwise (if ∈ , ∈ ), all edges from to some

∈ are in cut ,

slide-18
SLIDE 18

Algorithm Theory, WS 2012/13 Fabian Kuhn 18

Hall’s Marriage Theorem

Theorem: A bipartite graph ∪ , for which || has a perfect matching if and only if ∀ ⊆ : , where ⊆ is the set of neighbors of nodes in ′. Proof: No perfect matching ⟺ some ‐ cut has capacity

  • 1. Assume there is ′ for which

|U|:

slide-19
SLIDE 19

Algorithm Theory, WS 2012/13 Fabian Kuhn 19

Hall’s Marriage Theorem

Theorem: A bipartite graph ∪ , for which || has a perfect matching if and only if ∀ ⊆ : , where ⊆ is the set of neighbors of nodes in ′. Proof: No perfect matching ⟺ some ‐ cut has capacity

  • 2. Assume that there is a cut , of capacity
slide-20
SLIDE 20

Algorithm Theory, WS 2012/13 Fabian Kuhn 20

Hall’s Marriage Theorem

Theorem: A bipartite graph ∪ , for which || has a perfect matching if and only if ∀ ⊆ : , where ⊆ is the set of neighbors of nodes in ′. Proof: No perfect matching ⟺ some ‐ cut has capacity

  • 2. Assume that there is a cut , of capacity
slide-21
SLIDE 21

Algorithm Theory, WS 2012/13 Fabian Kuhn 21

What About General Graphs

  • Can we efficiently compute a maximum matching if is not

bipartitie?

  • How good is a maximal matching?

– A matching that cannot be extended…

  • Vertex Cover: set ⊆ of nodes such that

∀ , ∈ , , ∩ ∅.

  • A vertex cover covers all edges by incident nodes
slide-22
SLIDE 22

Algorithm Theory, WS 2012/13 Fabian Kuhn 22

Vertex Cover vs Matching

Consider a matching and a vertex cover Claim: || Proof:

  • At least one node of every edge , ∈ is in
  • Needs to be a different node for different edges from
slide-23
SLIDE 23

Algorithm Theory, WS 2012/13 Fabian Kuhn 23

Vertex Cover vs Matching

Consider a matching and a vertex cover Claim: If is maximal and is minimum, 2 Proof:

  • is maximal: for every edge , ∈ , either or (or both)

are matched

  • Every edge ∈ is “covered” by at least one matching edge
  • Thus, the set of the nodes of all matching edges gives a vertex

cover of size 2||.

slide-24
SLIDE 24

Algorithm Theory, WS 2012/13 Fabian Kuhn 24

Maximal Matching Approximation

Theorem: For any maximal matching and any maximum matching ∗, it holds that ∗ 2 . Proof: Theorem: The set of all matched nodes of a maximal matching is a vertex cover of size at most twice the size of a min. vertex cover.

slide-25
SLIDE 25

Algorithm Theory, WS 2012/13 Fabian Kuhn 25

Augmenting Paths

Consider a matching of a graph , :

  • A node ∈ is called free iff it is not matched

Augmenting Path: A (odd‐length) path that starts and ends at a free node and visits edges in ∖ and edges in alternatingly.

  • Matching can be improved using an augmenting path by

switching the role of each edge along the path free nodes alternating path

slide-26
SLIDE 26

Algorithm Theory, WS 2012/13 Fabian Kuhn 26

Augmenting Paths

Theorem: A matching of , is maximum if and only if there is no augmenting path. Proof:

  • Consider non‐max. matching and max. matching ∗ and define

≔ ∖ ∗, ∗ ≔ ∗ ∖

  • Note that ∩ ∗ ∅ and |∗|
  • Each node ∈ is incident to at most one edge in both and ∗
  • ∪ ∗ induces even cycles and paths
slide-27
SLIDE 27

Algorithm Theory, WS 2012/13 Fabian Kuhn 27

Finding Augmenting Paths

free nodes

augmenting path

  • dd cycle
slide-28
SLIDE 28

Algorithm Theory, WS 2012/13 Fabian Kuhn 28

Blossoms

  • If we find an odd cycle…

free node

  • blossom
  • stem

  • contracted blossom

contract blossom

Graph Graph ′

root

Matching

Matching ∖ , is a matching of .

slide-29
SLIDE 29

Algorithm Theory, WS 2012/13 Fabian Kuhn 29

Lemma: Graph has an augmenting path w.r.t. matching iff ′ has an augmenting path w.r.t. matching ′ Also: The matching can be computed efficiently from ′.

Contracting Blossoms

′ ′ ′ Note: If stem has length 0, root of blossom if free and thus also the node is free in ′.

slide-30
SLIDE 30

Algorithm Theory, WS 2012/13 Fabian Kuhn 30

Edmond’s Blossom Algorithm

Algorithm Sketch:

  • 1. Build a tree for each free node
  • 2. Starting from an explored node at even distance from a free

node in the tree of , explore some unexplored edge , :

1. If is an unexplored node, is matched to some neighbor : add to the tree ( is now explored) 2. If is explored and in the same tree: at odd distance from root  ignore and move on at even distance from root  blossom found 3. If is explored and in another tree at odd distance from root  ignore and move on at even distance from root  augmenting path found

slide-31
SLIDE 31

Algorithm Theory, WS 2012/13 Fabian Kuhn 31

Running Time

Finding a Blossom: Repeat on smaller graph Finding an Augmenting Path: Improve matching Theorem: The algorithm can be implemented in time .

slide-32
SLIDE 32

Algorithm Theory, WS 2012/13 Fabian Kuhn 32

Matching Algorithms

We have seen:

  • time alg. to compute a max. matching in bipartite graphs
  • time alg. to compute a max. matching in general graphs

Better algorithms:

  • Best known running time (bipartite and general gr.):

Weighted matching:

  • Edges have weight, find a matching of maximum total weight
  • Bipartite graphs: flow reduction works in the same way
  • General graphs: can also be solved in polynomial time

(Edmond’s algorithms is used as blackbox)

slide-33
SLIDE 33

Algorithm Theory, WS 2012/13 Fabian Kuhn 33

Happy Holidays!