weighted matchings & applications in scientific computing

Post on 09-Feb-2016

69 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Weighted Matchings & Applications in Scientific Computing. Mahantesh Halappanavar Department of Computer Science. Joint Work with: Florin Dobrian and Alex Pothen. 11 JULY 2007 Graduate Student Tech Lunch ODU. Contents:. Motivation Matchings - PowerPoint PPT Presentation

TRANSCRIPT

Weighted Matchings & Applications in Scientific Computing

Mahantesh HalappanavarDepartment of Computer Science

Joint Work with: Florin Dobrian and Alex Pothen

11 JULY 2007 Graduate Student Tech Lunch ODU

Contents:

Motivation Matchings Maximum Cardinality Matching Maximum Edge-Wt Matching Maximum Vertex-Wt Matching Approximation Algorithms

A Stable Marriage?

Residents prefer R1: H1 > H2 > H3 R2: H2 > H3 > H4

Hospitals prefer H1: R1 > R2 > R3 H2: R2 > R3 > R4

Ideally R1 is matched to H1 Marriage is unstable if:

Neither gets a preferred match. Example: R1 is matched to H2

R1

R2

H1

H2

What is the Big Deal?

Millions of Advertisers Billions of Key-words Probability of a “Click” Split-second responses (Online) Daily budgets

Solution: Approximation !!

Contents:

Motivation Matchings Maximum Cardinality Matching Maximum Edge-Wt Matching Maximum Vertex-Wt Matching Approximation Algorithms

What is a Graph?

A graph G=(V,E) is a triple: A set of vertices V, A set of edges E, and A relationship that associates each edge

with two vertices. Types: Bipartite and Nonbipartite

R1

R2

H1

H2

V1

V3

V2

What is a Matching?

Given a graph G=(V,E), a matching M is a subset of edges such that no two edges are incident on the same vertex.

Types: Maximum Cardinality, Maximum Edge-weighted, and Maximum Vertex-weighted

R1

R2

H1

H2

V1

V3

V2

Classification

How to Search a Graph?

Basic Data Structures:

A Pseudo-Queue No duplicates (move to the back of Q)

A Pseudo-Stack No duplicates (move to the top of S)

Breadth-first Search (Queue)

Depth-first Search (Stack)

How to Compute a Matching?

Alternating (a & b) / Augmenting (c) paths:

Symmetric difference:

How does this work?

Lemma 1: Consider a graph G=(V,E), and a matching M. Let P be an augmenting path in G with respect to M. The symmetric difference, M’=MP, is a matching of cardinality (|M|+1).

Lemma 2: Suppose that in a graph G=(V,E) there exist no augmenting path starting from an unmatched vertex uV with respect to a matching M. Let P be an augmenting path with endpoints two other unmatched vertices v and w, then there is no augmenting path from u with respect to MP either.

Lemma 3: A matching M in a graph G is a maximum matching if and only if there exist no M-augmenting paths in G.

How to Find Augmenting Paths?

1. Single-Source Single-Path

…Finding Augmenting Paths?

2. Multiple-Source Single-Path

…Finding Augmenting Paths?

3. Multiple-Source Multiple-Path

Nonbipartite Graphs?

* www.cs.brown.edu/courses/cs250/culture.html

Jack Edmonds*

"Jack Edmonds has been one of the creators of the field of combinatorial optimization and polyhedral combinatorics. His 1965 paper 'Paths, Trees, and Flowers' was one of the first papers to suggest the possibility of establishing a mathematical theory of efficient combinatorial algorithms . . . " [from the award citation of the 1985 John von Neumann Theory Prize].

Reading: "A Glimpse of Heaven" taken from History of Mathematical Programming: A Collection of Personal Reminiscences.

“Eureka, you shrink!”

What is hard?

Bipartite Nonbipartite

Cardinality

Weighted

)( mnO )( mnO

))log(( nnmnO ))log(( nnmnO

Contents:

Motivation Matchings Maximum Cardinality Matching Maximum Edge-Wt Matching Maximum Vertex-Wt Matching Approximation Algorithms

Basic Algorithm for MCM

Advanced Algorithm for MCM

A Survey of Algorithms for MCM

Contents:

Motivation Matchings Maximum Cardinality Matching Maximum Edge-Wt Matching Maximum Vertex-Wt Matching Approximation Algorithms

Primal-dual Formulation for MEM

Intuition:

Primal-dual Formulation for MEM

An Algorithm for MEM

Power of Data Structures

Update Variables

Simple Vectors

Binary Heaps

Fibonacci Heaps)log( nmO

)( 2nO

)log( nnmO

Weighted Matching for Bipartite Graphs

|||,| EmVn

A Survey of Algorithms for MEM

Contents:

Motivation Matchings Maximum Cardinality Matching Maximum Edge-Wt Matching Maximum Vertex-Wt Matching Approximation Algorithms

Why Vertex-weighted?

The Sparsest-Basis Problem

How does this work?

Decomposition of MVM

Algorithm: Global-Optimal

Algorithm: Local-Optimal

Our Contributions:

Contents:

Motivation Matchings Maximum Cardinality Matching Maximum Edge-Wt Matching Maximum Vertex-Wt Matching Approximation Algorithms

Approximation Algorithms:

Edge-weightedVertex-weighted

1: Global-Max

2: LAM

3: Path-growing

A survey of Approx MEM

Approximation Algorithms:

Edge-weightedVertex-weighted

AMVM: Global-Half

AMVM: Local-Half

AMVM: Global-Two-Third

AMVM: Local-Two-Third

Our contributions:

Thank You !

top related