1/21
The Maximum Carpool Matching Problem
Gilad Kutiel gkutiel@cs.technion.ac.il CSR 2017
The Maximum Carpool Matching Problem Gilad Kutiel - - PowerPoint PPT Presentation
The Maximum Carpool Matching Problem Gilad Kutiel gkutiel@cs.technion.ac.il CSR 2017 1/21 The Maximum Carpool Matching Problem (informal) A group of people want to carpool from point A to point B 2/21 The Maximum Carpool Matching Problem
1/21
Gilad Kutiel gkutiel@cs.technion.ac.il CSR 2017
2/21
◮ A group of people want to carpool from point A to point B
2/21
◮ A group of people want to carpool from point A to point B ◮ We want to maximize the total welfare
2/21
◮ A group of people want to carpool from point A to point B ◮ We want to maximize the total welfare ◮ How they should be matched?
2/21
◮ A group of people want to carpool from point A to point B ◮ We want to maximize the total welfare ◮ How they should be matched?
2/21
◮ A group of people want to carpool from point A to point B ◮ We want to maximize the total welfare ◮ How they should be matched?
2/21
◮ A group of people want to carpool from point A to point B ◮ We want to maximize the total welfare ◮ How they should be matched?
2/21
◮ A group of people want to carpool from point A to point B ◮ We want to maximize the total welfare ◮ How they should be matched?
2/21
◮ A group of people want to carpool from point A to point B ◮ We want to maximize the total welfare ◮ How they should be matched?
2/21
◮ A group of people want to carpool from point A to point B ◮ We want to maximize the total welfare ◮ How they should be matched?
3/21
Input: (D, w, c)
◮ D = (V , A)
1 2 1 4 2 3 3
2 3 4 3 2 1 2 1 2 2 1 1
3/21
Input: (D, w, c)
◮ D = (V , A) ◮ w : A → R+
1 2 1 4 2 3 3
2 3 4 3 2 1 2 1 2 2 1 1
3/21
Input: (D, w, c)
◮ D = (V , A) ◮ w : A → R+ ◮ c : V → N
1 2 1 4 2 3 3
2 3 4 3 2 1 2 1 2 2 1 1
3/21
Input: (D, w, c)
◮ D = (V , A) ◮ w : A → R+ ◮ c : V → N
Matching: (P, D, M)
1 2 1 4 2 3 3
2 3 4 3 2 1 2 1 2 2 1 1
3/21
Input: (D, w, c)
◮ D = (V , A) ◮ w : A → R+ ◮ c : V → N
Matching: (P, D, M)
◮ P ∩ D = ∅, P ∪ D = V
1 2 1 4 2 3 3
2 3 4 3 2 1 2 1 2 2 1 1
3/21
Input: (D, w, c)
◮ D = (V , A) ◮ w : A → R+ ◮ c : V → N
Matching: (P, D, M)
◮ P ∩ D = ∅, P ∪ D = V ◮ M ⊆ A ∩ (P × D)
1 2 1 4 2 3 3
2 3 4 3 2 1 2 1 2 2 1 1
3/21
Input: (D, w, c)
◮ D = (V , A) ◮ w : A → R+ ◮ c : V → N
Matching: (P, D, M)
◮ P ∩ D = ∅, P ∪ D = V ◮ M ⊆ A ∩ (P × D) ◮ ∀p ∈ P, degM
1 2 1 4 2 3 3
2 3 4 3 2 1 2 1 2 2 1 1
3/21
Input: (D, w, c)
◮ D = (V , A) ◮ w : A → R+ ◮ c : V → N
Matching: (P, D, M)
◮ P ∩ D = ∅, P ∪ D = V ◮ M ⊆ A ∩ (P × D) ◮ ∀p ∈ P, degM
◮ ∀d ∈ D, degM in (d) ≤ c(d)
1 2 1 4 2 3 3
2 3 4 3 2 1 2 1 2 2 1 1
3/21
Input: (D, w, c)
◮ D = (V , A) ◮ w : A → R+ ◮ c : V → N
Matching: (P, D, M)
◮ P ∩ D = ∅, P ∪ D = V ◮ M ⊆ A ∩ (P × D) ◮ ∀p ∈ P, degM
◮ ∀d ∈ D, degM in (d) ≤ c(d)
1 2 1 4 2 3 3
2 3 4 3 2 1 2 1 2 2 1 1
We seek for a matching that maximizes w(M) =
w(e)
4/21
◮ A special case of the Maximum Carpool Matching
problem (MCM)
2 3 4 1 2 2 3 2 1 2 1 1
4/21
◮ A special case of the Maximum Carpool Matching
problem (MCM)
◮ Undirected graph
2 3 4 1 2 2 3 2 1 2 1 1
4/21
◮ A special case of the Maximum Carpool Matching
problem (MCM)
◮ Undirected graph ◮ No capacities
2 3 4 1 2 2 3 2 1 2 1 1
4/21
◮ A special case of the Maximum Carpool Matching
problem (MCM)
◮ Undirected graph ◮ No capacities
2 3 4 1 2 2 3 2 1 2 1 1
5/21
◮ MSSF (and thus MCM) is APX-hard
5/21
◮ MSSF (and thus MCM) is APX-hard ◮ Unweighted MSSF (uniform weight)
5/21
◮ MSSF (and thus MCM) is APX-hard ◮ Unweighted MSSF (uniform weight)
◮ Maximize the number of leaves
5/21
◮ MSSF (and thus MCM) is APX-hard ◮ Unweighted MSSF (uniform weight)
◮ Maximize the number of leaves ◮ Minimize the number of centers
5/21
◮ MSSF (and thus MCM) is APX-hard ◮ Unweighted MSSF (uniform weight)
◮ Maximize the number of leaves ◮ Minimize the number of centers ◮ (Minimum Dominating Set problem)
5/21
◮ MSSF (and thus MCM) is APX-hard ◮ Unweighted MSSF (uniform weight)
◮ Maximize the number of leaves ◮ Minimize the number of centers ◮ (Minimum Dominating Set problem)
5/21
◮ MSSF (and thus MCM) is APX-hard ◮ Unweighted MSSF (uniform weight)
◮ Maximize the number of leaves ◮ Minimize the number of centers ◮ (Minimum Dominating Set problem)
5/21
◮ MSSF (and thus MCM) is APX-hard ◮ Unweighted MSSF (uniform weight)
◮ Maximize the number of leaves ◮ Minimize the number of centers ◮ (Minimum Dominating Set problem)
6/21
Approximation Ratio Year
6 7 8 9 10 0.25 .5 0.75 1
Nguyen, C. Thach, et al. SODA 2007 Chen, Ning, et al. APPROX 2007 Deeparnab Chakrabarty et al. FOCS 2008 Athanassopoulos, Stavros, et al. MFCS 2009
Hardness Unweighted Vertex Weighted Edge Weighted
6/21
Approximation Ratio Year
6 7 8 9 10 0.25 .5 0.75 1
Nguyen, C. Thach, et al. SODA 2007 Chen, Ning, et al. APPROX 2007 Deeparnab Chakrabarty et al. FOCS 2008 Athanassopoulos, Stavros, et al. MFCS 2009
Hardness Unweighted Vertex Weighted Edge Weighted
6/21
Approximation Ratio Year
6 7 8 9 10 0.25 .5 0.75 1
Nguyen, C. Thach, et al. SODA 2007 Chen, Ning, et al. APPROX 2007 Deeparnab Chakrabarty et al. FOCS 2008 Athanassopoulos, Stavros, et al. MFCS 2009
Hardness Unweighted Vertex Weighted Edge Weighted
6/21
Approximation Ratio Year
6 7 8 9 10 0.25 .5 0.75 1
Nguyen, C. Thach, et al. SODA 2007 Chen, Ning, et al. APPROX 2007 Deeparnab Chakrabarty et al. FOCS 2008 Athanassopoulos, Stavros, et al. MFCS 2009
Hardness Unweighted Vertex Weighted Edge Weighted
6/21
Approximation Ratio Year
6 7 8 9 10 0.25 .5 0.75 1
Nguyen, C. Thach, et al. SODA 2007 Chen, Ning, et al. APPROX 2007 Deeparnab Chakrabarty et al. FOCS 2008 Athanassopoulos, Stavros, et al. MFCS 2009
Hardness Unweighted Vertex Weighted Edge Weighted
7/21
◮ Heuristics + experiments
7/21
◮ Heuristics + experiments
◮ Solution’s quality matters
7/21
◮ Heuristics + experiments
◮ Solution’s quality matters
◮ No approximation algorithm
7/21
◮ Heuristics + experiments
◮ Solution’s quality matters
◮ No approximation algorithm ◮ The algorithms for MSSF do not generalize to MCM
8/21
◮ First approximation algorithms
8/21
◮ First approximation algorithms
◮ 1/2-approximation (unweighted)
8/21
◮ First approximation algorithms
◮ 1/2-approximation (unweighted) ◮ 1/3-approximation (weighted)
9/21
10/21
◮ Optimally solvable (using DP)
? ? ? ? ? ?
10/21
◮ Optimally solvable (using DP) ◮ At least 1/2 of the weight
? ? ? ? ? ?
10/21
◮ Optimally solvable (using DP) ◮ At least 1/2 of the weight
? ? ? ? ? ?
10/21
◮ Optimally solvable (using DP) ◮ At least 1/2 of the weight
? ? ? ? ? ?
10/21
◮ Optimally solvable (using DP) ◮ At least 1/2 of the weight
? ? ? ? ? ?
10/21
◮ Optimally solvable (using DP) ◮ At least 1/2 of the weight ◮ 1/2-approximation algorithm to MSSF (Max Spanning Tree ≥ OPT)
? ? ? ? ? ?
11/21
◮ Every vertex can be a driver and a passenger at the same time
1 2 5 3 2
1 2 2 2 3 1 3
11/21
◮ Every vertex can be a driver and a passenger at the same time
1 2 5 3 2
1 2 2 2 3 1 3
s t
c = 1 w = 0 c = 1 w = 2 c = 1 w = 1 c = 1 w = 3 c = 3 w = 0
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
12/21
◮ A relaxed matching is a pseudo-forest (out degree ≤ 1)
1 2 3 4 5 6 7
? ? ? ? ? ? ?
12/21
◮ A relaxed matching is a pseudo-forest (out degree ≤ 1) ◮ Can be partitioned into 3 feasible solutions
1 2 3 4 5 6 7
? ? ? ? ? ? ?
12/21
◮ A relaxed matching is a pseudo-forest (out degree ≤ 1) ◮ Can be partitioned into 3 feasible solutions ◮ One has at least 1/3 of the weight
1 2 3 4 5 6 7
? ? ? ? ? ? ?
12/21
◮ A relaxed matching is a pseudo-forest (out degree ≤ 1) ◮ Can be partitioned into 3 feasible solutions ◮ One has at least 1/3 of the weight
1 2 3 4 5 6 7
? ? ? ? ? ? ?
12/21
◮ A relaxed matching is a pseudo-forest (out degree ≤ 1) ◮ Can be partitioned into 3 feasible solutions ◮ One has at least 1/3 of the weight
1 2 3 4 5 6 7
? ? ? ? ? ? ?
12/21
◮ A relaxed matching is a pseudo-forest (out degree ≤ 1) ◮ Can be partitioned into 3 feasible solutions ◮ One has at least 1/3 of the weight
1 2 3 4 5 6 7
? ? ? ? ? ? ?
12/21
◮ A relaxed matching is a pseudo-forest (out degree ≤ 1) ◮ Can be partitioned into 3 feasible solutions ◮ One has at least 1/3 of the weight
1 2 3 4 5 6 7
? ? ? ? ? ? ?
12/21
◮ A relaxed matching is a pseudo-forest (out degree ≤ 1) ◮ Can be partitioned into 3 feasible solutions ◮ One has at least 1/3 of the weight ◮ 1/3-approximation algorithm to MCM (Relaxed Matching ≥ OPT)
1 2 3 4 5 6 7
? ? ? ? ? ? ?
13/21
14/21
◮ Start with any maximal solution (bad in general)
1 1 3 1 2 3 4 1 2 3
14/21
◮ Start with any maximal solution (bad in general)
1 1 3 1 2 3 4 1 2 3
14/21
◮ Start with any maximal solution (bad in general)
1 1 3 1 2 3 4 1 2 3
14/21
◮ Start with any maximal solution (bad in general) ◮ Improve ⇐
⇒ a passenger has two incoming arcs from unmatched vertices
1 1 3 1 2 3 4 1 2 3
14/21
◮ Start with any maximal solution (bad in general) ◮ Improve ⇐
⇒ a passenger has two incoming arcs from unmatched vertices
1 1 3 1 2 3 4 1 2 3
14/21
◮ Start with any maximal solution (bad in general) ◮ Improve ⇐
⇒ a passenger has two incoming arcs from unmatched vertices
◮ Make it maximal
1 1 3 1 2 3 4 1 2 3
14/21
◮ Start with any maximal solution (bad in general) ◮ Improve ⇐
⇒ a passenger has two incoming arcs from unmatched vertices
◮ Make it maximal
1 1 3 1 2 3 4 1 2 3
15/21
◮ Load every arc with 2$
1$ 1$ 1$ 1$ 1$ 2$ 3$
15/21
◮ Load every arc with 2$
1$ 1$ 1$ 1$ 1$ 2$ 3$
15/21
◮ Load every arc with 2$ ◮ Consider another solution
1$ 1$ 1$ 1$ 1$ 2$ 3$
15/21
◮ Load every arc with 2$ ◮ Consider another solution ◮ Each vertex pays (if it can) for its outgoing arc (if exists)
? ? ? ? ? ? ?
15/21
◮ Load every arc with 2$ ◮ Consider another solution ◮ Each vertex pays (if it can) for its outgoing arc (if exists)
? ? ? ? ? ? ?
X X
15/21
◮ Load every arc with 2$ ◮ Consider another solution ◮ Each vertex pays (if it can) for its outgoing arc (if exists) ◮ Left with outgoing arcs from unmatched vertices
? ? ? ? ? ? ?
X X
15/21
◮ Load every arc with 2$ ◮ Consider another solution ◮ Each vertex pays (if it can) for its outgoing arc (if exists) ◮ Left with outgoing arcs from unmatched vertices ◮ Can be paid by their destination
? ? ? ? ? ? ?
X X
15/21
◮ Load every arc with 2$ ◮ Consider another solution ◮ Each vertex pays (if it can) for its outgoing arc (if exists) ◮ Left with outgoing arcs from unmatched vertices ◮ Can be paid by their destination
? ? ? ? ? ? ?
X X
15/21
◮ Load every arc with 2$ ◮ Consider another solution ◮ Each vertex pays (if it can) for its outgoing arc (if exists) ◮ Left with outgoing arcs from unmatched vertices ◮ Can be paid by their destination
? ? ? 1$ ? ? ?
X X
15/21
◮ Load every arc with 2$ ◮ Consider another solution ◮ Each vertex pays (if it can) for its outgoing arc (if exists) ◮ Left with outgoing arcs from unmatched vertices ◮ Can be paid by their destination
? ? ? 1$ ? ? ?
X X
15/21
◮ Load every arc with 2$ ◮ Consider another solution ◮ Each vertex pays (if it can) for its outgoing arc (if exists) ◮ Left with outgoing arcs from unmatched vertices ◮ Can be paid by their destination
? ? ? ? ? ? ?
X X
16/21
◮ MSSF
16/21
◮ MSSF
◮ APX-hard problem (10/11)
16/21
◮ MSSF
◮ APX-hard problem (10/11) ◮ No better than 1/2-approximation algorithm is known
16/21
◮ MSSF
◮ APX-hard problem (10/11) ◮ No better than 1/2-approximation algorithm is known
◮ MCM
16/21
◮ MSSF
◮ APX-hard problem (10/11) ◮ No better than 1/2-approximation algorithm is known
◮ MCM
◮ Generalization of MSSF
16/21
◮ MSSF
◮ APX-hard problem (10/11) ◮ No better than 1/2-approximation algorithm is known
◮ MCM
◮ Generalization of MSSF ◮ First approximation algorithms:
16/21
◮ MSSF
◮ APX-hard problem (10/11) ◮ No better than 1/2-approximation algorithm is known
◮ MCM
◮ Generalization of MSSF ◮ First approximation algorithms: ◮ 1/2-approximation to the unweighted variant
16/21
◮ MSSF
◮ APX-hard problem (10/11) ◮ No better than 1/2-approximation algorithm is known
◮ MCM
◮ Generalization of MSSF ◮ First approximation algorithms: ◮ 1/2-approximation to the unweighted variant ◮ 1/3-approximation to the general problem
17/21
18/21
◮ P and D are given (tractable) 2 1 2 1 1 1 2 3
3 1 1 3 4 1 3 1 2 3 2 2 2
18/21
◮ P and D are given (tractable) 2 1 2 1 1 1 2 3
3 1 1 3 4 1 3 1 2 3 2 2 2
18/21
◮ P and D are given (tractable) 2 1 2 1 1 1 2 3
3 1 1 3 4 1 3 1 2 3 2 2 2
18/21
◮ P and D are given (tractable) 2 1 2 1 1 1 2 3
3 1 1 3 4 1 3 1 2 3 2 2 2
s t
c = 1 w = 0 c = 1 w = 4 c = 1 w = 1 c = 3 w = 0
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
18/21
◮ P and D are given (tractable) 2 1 2 1 1 1 2 3
3 1 1 3 4 1 3 1 2 3 2 2 2
s t
c = 1 w = 0 c = 1 w = 4 c = 1 w = 1 c = 3 w = 0
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
◮ f (D) = OPT(D) is submodular (David Adjiashvili, personal communication)
18/21
◮ P and D are given (tractable) 2 1 2 1 1 1 2 3
3 1 1 3 4 1 3 1 2 3 2 2 2
s t
c = 1 w = 0 c = 1 w = 4 c = 1 w = 1 c = 3 w = 0
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
◮ f (D) = OPT(D) is submodular (David Adjiashvili, personal communication) ◮ 1 2-approximation
19/21
◮ Some people insists to carpool together
19/21
◮ Some people insists to carpool together ◮ Not submodular anymore
19/21
◮ Some people insists to carpool together ◮ Not submodular anymore ◮ Still admits a 1 2-approximation
20/21
21/21