---
# System prepended metadata

title: Chapter 10. Matching Markets

---

# Chapter 10. Matching Markets

[TOC]

## 10.1 Bipartite Graphs and Perfect Matchings

### Bipartite Graph
Let $G=(V,E)$ be an undirected graph, then $G$ is **bipartite** if $\exists\,A,B\subseteq V$ satisfy
- $A\cap B=\emptyset$
- $A\cup B=V$
- $\forall\,uv\in E$, $(u\in A\wedge v\in B)\vee(u\in B\wedge v\in A)$

### Matching
Let $G=(V,E)$ be a gragh, $M\subseteq E$ is a **matching** if
$$
\forall\,e_1\neq e_2\in M,e_1,e_2\text{ don't share the same endpoint}
$$

### Perfect Matching
A matching $M$ is **perfect matching** on graph $G$ if
$$
|M|=\frac{|V|}{2}
$$


### Neighbor
Let $G=(V,E)$, $S\subseteq V$, then the neighbor of $S$ is
$$
N(S):=\{v\in V\mid\exists\,u\in S,uv\in E\}
$$

### Constricted Set
Let $G=(A\cup B,E)$ be a bipartite graph, then $S\subseteq A$ is **constricted set** if
$$
|N(S)|<|S|
$$

:::info
**Theorem. Hall's Marriage Theorem**
Let $G=(A\cup B,E)$ with $|A|=|B|$, then
$$
G\text{ has a perfect matching}\Leftrightarrow|S|\leq |N(S)|\,\forall\,S\subseteq A
$$
in other words, if $G$ has no perfect matching, then $G$ contains a constricted set.
:::

## 10.2 Valuations and Optimal Assignments
Optimal Assignments
![](https://i.imgur.com/HtTfBWK.png)

bipartite matching problem
![](https://i.imgur.com/KhfESVz.png)



## 10.3 Prices and the Market-Clearing Prices
Replace the role of the administrator by a scheme for pricing items

- Example
    - There is a collection of sellers, each with a house for sale, and an equal-sized collection of buyers, each of whom wants a house.
    - $v_{ij}$ means the valuation  that a buyer $j$ has for the house held by seller $i$. (0 or positive integer)
### Prices and Payoffs.
- Suppose each seller $i$ sells it for a price $p_i ≥ 0$.
- If a buyer $j$ buys the house from seller $i$ at this price, the buyer’s ***payoff*** is $v_{ij} − p_i$.
- We call the seller(s) that maximize the payoff for buyer $j$ the ***preferred sellers*** of buyer j (payoff from sellers $\ge0$)
![](https://i.imgur.com/1tMDlYf.png)

### Market-Clearing Prices.
- For a set of prices, define the ***preferred-seller graph***  by  constructing an edge between each buyer and her preferred seller(s).
- A set of prices is ***market clearing*** if the resulting preferred-seller graph has a perfect matching.

![](https://i.imgur.com/hV57qGA.png)

$(b)$: market clearing
$(c)$: no
$(d)$: yes, tie-breaking is required
### Properties of Market-Clearing Prices. 
:::warning
***TODO***
:::

:::info
**Optimality of Market-Clearing Prices:** 
For any set of market-clearing prices, a
perfect matching in the resulting preferred-seller graph has the maximum total
valuation of any assignment of sellers to buyers.
:::

:::success
**Argument**
Consider a set of market-clearing prices, and let $M$ be a perfect matching in the preferred-seller graph. 
Each buyer buys the house that maximizes her payoff 
$\Rightarrow \space M$ has the maximum total payoff of any assignment of houses to buyers
If buyer $j$ chooses house $i$, payoff $v_{ij} − p_i$.
$\Rightarrow \space$Total Payoff of $M$ = Total Valuation of $M$ − Sum of all prices.
So a matching $M$ that maximizes the total payoff is also
one that maximizes the total valuation.
:::

:::info
**Optimality of Market-Clearing Prices (equivalent version):** 
A set of market-clearing prices, and a perfect matching in the resulting preferred-seller graph, produces the maximum possible sum of payoffs to all sellers and buyers.
:::


## 10.4 Constructing a Set of Market-Clearing Auctions?
:::info
**Existence of Market-Clearing Prices:** 
For any set of buyer valuations, there
exists a set of market-clearing prices.
::: 

```
All sellers set their prices to 0
while True:
    // There is a current set of prices, with the smallest one equal to 0.
    
    Construct the preferred-seller graph 
    if there is a perfect matching:
        done //the current prices are market-clearing.
    else:
        find a constricted set of buyers S and N(S).
        // The buyers in S only prefer the sellers in N(S)
        // but #(sellers in N(S)) < #(buyers in S)
        for each seller s in N(S):
            s.price ++
        
        // Let the smallest price becomes zero.
        min_price = the smallest price
        if min_price != 0:
            for each seller s:
                s.price -= min_price
```
![](https://i.imgur.com/7Haobh5.png)

**Showing That the Auction Must Come to an End.**
Use “potential energy”
- Suppose
    - ***potential of a buyer*** := max payoff she can get
    - ***potential of a seller*** := current price he is charging.
    - ***potential energy of the auction*** := sum of the potential of all participants
- Initial
    - potential of each seller = 0
    - potential of each buyer = her maximum valuation for any house
    - potential energy of the auction  $= P_0 \ge 0$
- Each round
    - potential energy of the auction $\ge 0$
    - potential only changes when the prices change
        - reduction
            - if we subtract $p$ from each price, then the potential of each seller drops by $p$, but the potential of each buyer goes up by $p$
        - raise their prices by one unit
            - potentials of each seller in $N(S)$goes up by 1.
            - potential of each buyer in $S$ goes down by 1
            - $S$ has strictly more nodes than $N(S)$ does $\Rightarrow$ potential of the auction goes down by at least 1
- Must done in $P_0$ rounds

## 10.5 How Does This Relate to Single-Item Auctions?
We have a set of $n$ buyers and a single seller auctioning an item.
Let buyer $j$ have valuation $v_j$ for the item.

Mapping: 
- Create $n − 1$ “fake” additional sellers
- Lable real seller be 1. And $v_{1j} = v_j$
- $v_{ij} = 0$ for $i\gt1$ and each buyer $j$.

![](https://i.imgur.com/s0TdKrU.png)

## 10.6 Advanced Material: A Proof of the Matching Theorem

:::info
**Definition.**
***Matching Theorem:*** If a ***bipartite graph*** (with equal numbers of node on the left and right)
has no ***perfect matching***, then it ==must== contain a ***constricted set***.
:::

### Alternating and Augmenting Paths

:::info
**Definitions.**
* ***Simple path***: A path does not repeat any nodes.
* ***Alternating path***: A simple path that alternates between non-matching and matching edges.
* ***Augmenting path***: A alternating path with unmatched endpoints is an augmenting path.
>
![](https://i.imgur.com/4hZAxVt.png)
:::

* If there's a ***augmenting path*** in ***bipartite graph*** with a matching,
  then the matching can be enlarged.

### Searching for an Augmenting Path

***Alternating BFS***

```
BFS(G)
    let Q be a queue
    parent[1..n] = {NIL}
    
    s = a unmatched node on right
    Q.enqueue(s)
    mark s as visited
    
    while(Q is not empty)
        u = Q.dequeue()
        
        for all neighbors v of u
            if v is visited 
                continue
                
            //Right nodes    
            if u is on right and (u,v) is a non-matching edge
                Q.enqueue(v)
                parent[v] = u
                mark v as visited
                
            //Left nodes    
            if u is on left  and (u,v) is a matching edge
                Q.enqueue(v)
                parent[v] = u
                mark v as visited
```

![](https://i.imgur.com/Szzo4PD.png)

---

### Augmenting Paths and Constricted Sets

:::info
**Question.**
If we can't find an ***augmenting path***, can we conclude that there is a ***constricted set*** ?
:::

* We now show if there's no augmenting path, we can find constricted sets.

:::success
**Consider a failed search for alternating BFS**
![](https://i.imgur.com/ZXxrFv4.png)

Observe that
1. Even-numbered layers consist of nodes from right-hand side, 
   odd-numbered layers consist of nodes from left-hand side.
2. Layers $2n$ has exactly the same number of nodes as layers $2n-1$
3. There are ==strictly== more nodes in even layers overall than there are in odd layers
4. Neighbors of nodes in Layers $2n$ present in layer $2n-1$, layer $2n+1$ </br>and odd layer $k < 2n$ 

So, by observation 3 and 4, we can conclude that
**In a failed alternating BFS, the set of nodes in all even layers forms a constricted set.**
:::

Example.

![](https://i.imgur.com/XDuCNnj.png)

---

### The Matching Theorem.

:::info
**Definition.**
***Matching Theorem:*** If a ***bipartite graph*** (with equal numbers of node on the left and right)
has no ***perfect matching***, then it ==must== contain a ***constricted set***.
:::

:::success
**Proof.**
Suppose that there's a ***bipartite*** graph with an equal number of nodes on the left and right, </br> and it has **no** perfect matching.
1. Considering its maximum matching, since this matching is not perfect, there's a unmatched node $W$ on right-hand side.
2. We know that there is no any ***augmenting path*** beginning at any node, since then we would be able to enlarge the matching.
3. Since there is no ***augmenting path*** beginning at $W$, we will have a **failed alternating BFS** search, and by conclusion above, there must be a ***constricted set*** containing $W$ 
:::

## Additional

### Determine a graph is bipartite or not

* Simply use a BFS
```
Bipartite(G,s)
    let Q be a queue
    mark[1..n] = {-1} // not visited -1, right node 0, left node 1
    
    mark[s] = 1
    Q.enqueue(s)
    
    while(Q is not empty)
        u = Q.dequeue()
        
        for neighbors v of u
            if mark[v] == mark[u]
                return NO
            if mark[v] == -1
                mark[v] = mark[u] ^ 1
    
    return YES
```

### Find a perfect matching in a bipartite graph

* Reduce to Maximum Flow

![](https://i.imgur.com/oZ5lrxv.png)

![](https://i.imgur.com/lRluq9i.png)



