Abstract
We introduce a version of the Cumulative Offer Algorithm of Hatfield and Milgrom (Am Econ Rev 95(4):913–935, 2005) modified for the supply chain networks setting of Ostrovsky (Am Econ Rev 98(3):897–923, 2008). The algorithm provides an alternative proof for existence of a chain stable network. Moreover, we show that when choice functions satisfy same-side substitutes and cross-side complements, and the Law of Aggregate Demand and Supply, then contracts satisfy Irrelevance of Rejected Contracts condition, a condition implicitly assumed in Ostrovsky (2008).
Similar content being viewed by others
Notes
Subscripts are omitted when it is clear the reference is to an agent \(a\in A\).
We thank an anonymous referee for shortening the proof.
Note that \(b_{n}\) is the agent in the blocking chain who is in the lowest tier.
References
Adachi H (2000) On a characterization of stable matchings. Econ Lett 68:43–49
Adachi H (2017) Stable matchings and fixed points in trading networks: a note. Econ Lett 156:65–67
Afacan MO (2017) Some further properties of the cumulative offer process. Games Econ Behav 104:656–665
Aygün O, Sönmez T (2012a) The importance of irrelevance of rejected contracts in matching under weakened substitutes condition. Working paper
Aygün O, Sönmez T (2012b) Matching with contracts: the critical role of irrelevance of rejected contracts. Working paper
Aygün O, Sönmez T (2013) Matching with contracts: comment. Am Econ Rev 103(5):2050–2051
Aygün O, Turhan B (2017) Large-scale affirmative action in school choice: Admissions to IITs in India. Am Econ Rev 107(5):210–13
Blair C (1988) The lattice structure of the set of stable matchings with multiple partners. Math Oper Res 13(4):619–628
Chambers CP, Yenmez MB (2017) Choice and matching. Am Econ J Microecon 9(3):126–47
Echenique F (2007) Counting combinatorial choice rules. Games Econ Behav 58:231–245
Echenique F, Oviedo J (2004) Core many-to-one matchings by fixed-point methods. J Econ Theory 115:358–376
Echenique F, Oviedo J (2006) A theory of stability in many-to-many matching markets. Theor Econ 1:233–273
Fleiner T, Jankó Z, Tamura A, Teytelboym A (2018) Trading networks with bilateral contracts. Working paper
Fung J, Hsu CL (2014) On weaker conditions for stable many-to-many matching with contracts. Working paper
Hatfield JW, Kojima F (2010) Substitutes and stability for matching with contracts. J Econ Theory 145:1704–1723
Hatfield JW, Kominers SD (2012) Matching in networks with bilateral contracts. Am Econ J Microecon 4(1):176–208
Hatfield JW, Milgrom PR (2005) Matching with contracts. Am Econ Rev 95(4):913–935
Hatfield JW, Kominers SD, Nichifor A, Ostrovsky M, Westkamp A (2013) Stability and competitive equilibrium in trading networks. J Political Econ 121(5):966–1005
Hatfield JW, Kominers SD, Westkamp A (2017) Stability, strategy-proofness, and cumulative offer mechanisms. In: Proceedings of the 18th ACM conference on economics and computation. ACM, pp 673–674
Hatfield JW, Kominers SD, Nichifor A, Ostrovsky M, Westkamp A (2018) Chain stability in trading networks. In: Proceedings of the 19th ACM conference on economics and computation. ACM, pp 617–618
Hirata D, Kasuya Y (2014) Cumulative offer process is order-independent. Econ Lett 124(1):37–40
Kominers SD, Sönmez T (2016) Matching with slot-specific priorities: theory. Theor Econ 11(2):683–710
Ostrovsky M (2008) Stability in supply chain networks. Am Econ Rev 98(3):897–923
Sönmez T, Switzer TB (2013) Matching with (branch-of-choice) contracts at united states military academy. Econometrica 81(2):451–488
Acknowledgements
We thank Fuhito Kojima, Tayfun Sönmez, and anonymous referees for their comments. This paper was previously circulated under the title ““Stability in Supply Chain Networks:” An Alternative Approach.”
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
Both authors declare that they do not have any conflict of interest related to the research in this paper.
Funding
Both authors declare that they do not have any financial interests related to the research in this paper.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendices
Appendix A: The role of the IRC condition: an example
The following example is based on Example 1 in Aygün and Sönmez (2012b).
There are four nodes, \(A=\{a_{1}, a_{2}, a_{3},a_{4}\}\), with three tiers. Node \(a_{1}\) has two contracts \(x, x'\). Node \(a_{2}\) has one contract y. Node \(a_{4}\) has one contract z. Nodes \(a_{1},a_{2}\) and \(a_{4}\) can only sign contracts with node \(a_{3}\). Figure 1 illustrates all of the possible contracts that can be signed.
Consider the following choice functions:
Choice functions satisfy both same-side substitutes and cross-side complements. In particular, note that \(U_{a_3}(\{x,x',y\})=U_{a_3}(\{x,x',y,z\})=\{x,x',y\}\) and \(D_{a_3}(\{x,x',y\})=\varnothing \subset D_{a_3}(\{x,x',y,z\})=\{z\}\). Then \(a_3\)’s choice functions satisfy cross-side complements, since
Moreover, they satisfy same-side substitutes since
It is easy to verify the same for each node.
However, contracts for \(a_3\) do not satisfy the IRC condition, since \(z\not \in C_{a_3}(\{x,x',y,z\})\) and yet
No chain stable network exists in this example.
Network | Chain block | Network | Chain block |
---|---|---|---|
\(\{x\}\) | \(\{y\}\) | \(\{x,y\}\) | \(\{y\} \) |
\(\{x'\}\) | \(\{x\}\) | \(\{x',y\}\) | \(\{x'\}\) |
\(\{y\}\) | \(\{x'\}\) | \(\{x,z\}\) | \(\{x\} \) |
\(\{z\}\) | \(\{x\}\) | \(\{x',z\}\) | \(\{x'\}\) |
\(\varnothing \) | \(\{x\}\) | \(\{x,y,z\}\) | \(\{x,y\}\) |
\(\{x',y,z\}\) | \(\{x',y\}\) |
Notice that if \(A=\{a_1,a_2,a_3\}\), we are left with two tiers and the example is the same as Example 1 in Aygün and Sönmez (2012b).
Appendix B: An example for the operation of the supply chain cumulative offer algorithm
Consider \(A=A_1\cup A_2\cup A_3=\{a\}\cup \{b_1,b_2\}\cup \{c\}\) with contracts \({\mathcal {X}}=\{x,y,z,w\}\) where
Figure 2 illustrates all of the possible contracts that can be signed. Choice functions are as follows:
The supply chain cumulative offer algorithm (SCCOA) proceeds as follows. Initialize the opportunity sets as \(O^{U}_{{\tilde{a}}}(1) = \emptyset , \forall {\tilde{a}} \in A\) and
Let \(t:=1\) and suppose a makes the first offer,
Then \(Y_{b_{1}}(1)=\{x\}\) and \(Y_{{\tilde{a}}}(1)=\emptyset \) for all \({\tilde{a}}\in A{\setminus }\{a,b_{1}\}\). The held sets are thus
and \(H_{{\tilde{a}}}(1)=\emptyset \) for all \({\tilde{a}}\in A{\setminus }\{b_{1}\}\).
Now update the opportunity sets. Since \(b_{1}\) is the only agent that receives an offer, \(O^{U}_{b_{1}}(t) = \{x\}\) and \(O^{U}_{{\tilde{a}}}(t)=O^{U}_{{\tilde{a}}}(t-1)=\emptyset \) for all \({\tilde{a}}\in A{\setminus }\{b_{1}\}\). Since no offers have been rejected, the downstream opportunity sets remain the same; that is, \(O^{D}_{{\tilde{a}}}(t)=O^{D}_{{\tilde{a}}}(t-1)\) for all \({\tilde{a}}\in A\).
Let \(t:=2\) and suppose \(b_{1}\) makes the next offer (the reader can verify that the allocation is the same regardless of who makes the offer). Then \(b_{1}\) offers
Then \(Y_{c}(2)=\{z\}\) and \(Y_{{\tilde{a}}}(2)=\emptyset \) for all other agents. The held sets are
that is, c rejects the offer from \(b_{1}\), and \(H_{{\tilde{a}}}(2)=H_{{\tilde{a}}}(1)\) for all other agents \({\tilde{a}}\).
Now update the opportunity sets. The only upstream opportunity set that is updated is \(O^{U}_{c}(t)=\{z\}\), since c is the only agent that receives an offer. Since \(b_{1}\)’s offer was rejected at \(t-1\), \(b_{1}\)’s downstream opportunity set is \(O^{D}_{b_{1}}(t)=\emptyset \) and \(O^{D}_{{\tilde{a}}}(t)=O^{D}_{{\tilde{a}}}(t-1)\) for all other agents.
Let \(t:=3\) and suppose \(b_{1}\) is chosen to make another offer. Since \(O^{D}_{b_{1}}=\emptyset \), agent \(b_{1}\) cannot make an offer. So we pick another agent to make an offer, say \(b_{2}\). Then \(b_{1}\) offers
Now agent c accepts the offer, \(H_{c}(3)=\{w\}\). Moreover, since \(b_{1}\)’s downstream opportunity set has changed, the set of contracts that \(b_{1}\) holds also changes:
Thus, c’s rejection of \(b_{1}\)’s offer triggers a rejection of a’s previously held downstream offer to \(b_{1}\). For the remaining agents, \(a,b_{2}\), their set of held contracts remains the same.
Now update the opportunity sets. Since c receives a new offer so \(O^{U}_{c}(t)=\{z,w\}\), while \(O^{U}_{{\tilde{a}}}(t)=O^{U}_{{\tilde{a}}}(t-1)\) for all other agents. On the other hand, a’s previously held offer is no longer being held by \(b_{1}\), a’s downstream opportunity set shrinks, \(O^{D}_{a}(5)=\{y\}\), while \(O^{D}_{{\tilde{a}}}(t)=O^{D}_{{\tilde{a}}}(t-1)\) for all other agents.
Let \(t:=4\) and suppose a makes an offer,
We have \(Y_{b_{2}}=\{y\}\) and \(Y_{{\tilde{a}}}=\emptyset \) for the remaining agents. Agent \(b_{2}\) accepts, so the held sets are \(H_{b_{2}}(4)=\{y\}\) and \(H_{{\tilde{a}}}(4)=H_{{\tilde{a}}}(3)\) for all other agents.
Now update the opportunity sets. Since \(b_{2}\) gets the sole offer, \(O^{U}_{b_{2}}(t)=\{y\}\) and \(O^{U}_{{\tilde{a}}}(t)=O^{U}_{{\tilde{a}}}(t-1)\) for all other agents. No contracts have been rejected downstream since \(\{x,z\}\) were rejected, so \(O^{D}_{{\tilde{a}}}(t)=O^{D}_{{\tilde{a}}}(t-1)\) for all agents.
Let \(t:=5\). Now, a and \(b_{2}\) have offers held and have no new offers to make. In addition, \(O^{D}_{b_{1}}(t)=O^{D}_{c}(t)=\emptyset \), so neither \(b_{1}\) or c have offers to make. Thus, \(H_{{\tilde{a}}}(t)=H_{{\tilde{a}}}(t-1)\), for all \({\tilde{a}}\in A\), and the algorithm terminates at step \(T:=5\).
The SCCOA terminates at this step since no downstream proposals are made and no upstream offers are rejected. The final allocation is \(\mu =\cup _{{\tilde{a}}\in A}H_{{\tilde{a}}}(T) = \{y,w\}\). The reader can easily verify that this allocation is a chain stable network.
Appendix C: Proofs
1.1 Lemmas
We introduce the lemmas that will be used in the proof of Theorem 1.
Lemma 1
Consider an agent \(a\in A\) who receives a proposal of contract z at step \(t < T\) in the algorithm. If agent a accepts the contract z at the last step T, then agent a does not reject the contract at any step \(t'\) for \(t \le t'\le T\).
Proof
Suppose agent a is proposed with a contract z at step \(t < T\). By construction of the algorithm, \(z\in O_{a}^{U}(t) \subseteq O_{a}^{U}(T)\). Note that
and
We first show that agent a accepts contract z at step t.
Suppose agent a rejects contract z at step t and accepts contract z at step T. Since agent a rejects contract z at step t, \(z\notin U_{a}\Big [C_{a}\Big (O_{a}^{U}(t)\cup O_{a}^{D}(t)\Big )\Big ]\). Cross-side complements and Eq. (1) imply that
Moreover, same-sided substitutes and Eq. (2) imply that
This is a contradiction to the supposition that agent a accepts contract z at step T. Therefore, agent a accepts contract z at step t.
We now show that agent a does not reject contract z at any step \(t'\) for \(t\le t' \le T\).
We’ve already shown that agent a accepts contract z at step t. Consider a step \(t'\) with \(t\le t'\le T\). Cross-side complements imply
Therefore, \(z\in U_{a}\Big [C_{a}\Big (O_{a}^{U}(T)\cup O_{a}^{D}(t')\Big )\Big ]\). Same-sided substitutes imply
Therefore, \(z\in U_{a}\Big [C_{a}(O_{a}^{U}(t')\cup O_{a}^{D}(t'))\Big ]\). Thus, agent a holds contract z at every step \(t'\) for \(t\le t'\le T\).
Lemma 2
Let \(\mu \) be the allocation produced by the algorithm. We have \(D_{a}(\mu (a)) = D_{a}(C_{a}(\mu ))\) for all \(a\in A\).
Proof
The statement is immediately true if \(a\in A_{K}\). In the following, we consider an agent \(a\in A{\setminus } A_{K}\). Note that \(D_{a}(C_{a}(\mu (a))) = D_{a}(C_{a}(\mu ))\subseteq D_{a}(\mu ) = D_{a}(\mu (a))\). The first equality is by IRC, and the second one is by definition.
We show that there does not exist a contract \(z\in D_{a}({\mathcal {X}})\) such that \(z\in D_{a}(\mu )\) and \(z\notin D_{a}(C_{a}(\mu ))\).
Suppose, on the contrary, that such a contract z exists, i.e., there exists \(z\in D_{a}({\mathcal {X}})\) such that \(z\in D_{a}(\mu )\) and \(z\notin D_{a}(C_{a}(\mu ))\). Let \(b\equiv B(z)\) be the buyer associated with contract z. Then, \(z\in \mu \) means that agent a proposes contract z to agent b at some step and that agent b holds contract z at step T. Let \(t < T\) be the step at which agent a proposes contract z to agent b. By Lemma 1, agent b holds contract z at step t and step T. Therefore, \(z\in O_{a}^{D}(T)\subseteq O_{a}^{D}(t)\). Note that
and
The fact that agent a proposes z to agent b at step t implies \(z\in D_{a}\Big [C_{a}\Big (O_{a}^{U}(t)\cup O_{a}^{D}(t)\Big )\Big ]\). Together with same-sided substitutes and Eq. (3), this implies \(z\in D_{a}\Big [C_{a}\Big (O_{a}^{U}(t)\cup O_{a}^{D}(T)\Big )\Big ]\). Moreover, together with cross-side complements and equation (4), this further implies that \(z\in D_{a}\Big [C_{a}\Big (O_{a}^{U}(T)\cup O_{a}^{D}(T)\Big )\Big ]\).
On the other hand, \(z\notin D_{a}(C_{a}(\mu ))\) means \(z\notin D_{a}\Big [C_{a}\Big (O_{a}^{U}(T)\cup O_{a}^{D}(T)\Big )\Big ]\). This is a contradiction. Therefore, such z does not exist.
Lemma 3
Let \(\mu \) be the allocation produced by the algorithm. We have \(U_{a}(\mu (a)) = U_{a}(C_{a}(O_{a}^{U}(T))\cup O_{a}^{D}(T))\) for all \(a\in A\).
Proof
The statement is immediately true if \(a\in A_{1}\). In the following, we consider an agent \(a\in A{\setminus } A_{1}\). Note that \(U_{a}(\mu ) = U_{a}(\mu (a))\) by definition, and \(U_{a}(C_{a}(\mu (a))) = U_{a}(C_{a}(\mu ))\) by IRC.
Moreover, \(U_{a}[U_{b}(C_{b}(O_{b}^{U}(T)\cup O_{b}^{D}(T)))] = \emptyset \) for all \(b\in A{\setminus } \{a\}\). Hence,
\(\square \)
1.2 Proof of Theorem 1
We show that the cumulative offer algorithm produces a chain stable network.
First, note that by construction of the algorithm, any rejected contract is not proposed again in the algorithm. Since the set of contracts is finite, the algorithm terminates at a finite step.
Next, we show that the allocation produced by the algorithm, \(\mu \), is a chain stable network. There are two steps.
Step 1 \(\mu \) is individually rational.
Suppose \(C_{a}(\mu (a))\ne \mu (a)\) for some agent \(a\in A\). By Lemma 2, \(D_{a}(\mu (a)) = D_{a}(C_{a}(\mu ))\). Then, this implies \(U_{a}(C_{a}(\mu (a))) \ne U_{a}(\mu (a))\). Since \(U_{a}(C_{a}(\mu (a)))\subseteq U_{a}(\mu (a))\), this further implies that there exists a contract \(x\in \mu \) such that
We show that x does not exist.
By Lemma 3, \(U_{a}(\mu (a)) = U_{a}(C_{a}(O_{a}^{U}(T)\cup O_{a}^{D}(T))\). Thus, Eq. (5) is equivalent to
Consider upstream contracts for a:
Note that the first inclusion holds because of cross-sided complements. Equation (7) contradicts Eq. (6). Therefore, \(\mu \) is individually rational.
Step 2 \(\mu \) is not blocked by any chain.
Suppose \(\mu \) is blocked by the chain \({\mathbf {z}} = \{z_{1}, \ldots , z_{n}\}\). Let \(b_{i} \equiv B(z_{i})\) for \(i = 1, \ldots , n\). Consider agent \(b_{n}\) and define the following.
-
1.
\(X_{b_{n}}' \equiv \mu (b_{n})\): the set of contracts held by \(b_{n}\) in \(\mu \).
-
2.
\(X_{b_{n}}''\equiv C_{b_{n}}(\mu (b_{n})\cup \{z_{n}\})\): the new set of contracts held by \(b_{n}\).
Then, \(z_{n}\notin \mu \) and \(z_{n}\in C_{b_{n}}(\mu (b_{n})\cup \{z_{n}\})\) imply
By construction of the algorithm, \(U_{b_{n}}[X_{b_{n}}''] \subseteq O_{b_{n}}^{U}(T)\), since the contract in the blocking chain is proposed prior to step T. Moreover, \(D_{b_{n}}[X_{b_{n}}'']\subseteq O_{b_{n}}^{D}(T)\), since \(b_{n}\) does not take on new downstream contracts.Footnote 4 So, \(X_{b_{n}}''\subseteq O_{b_{n}}^{U}(T)\cup O_{b_{n}}^{D}(T)\). Therefore,
contradicting Eq. (8). Note that
-
1.
Equality (9) holds because \(U_{b_{n}}[X_{b_{n}}''] = U_{b_{n}}[C_{b_{n}}(X_{b_{n}}'')]\) and \(U_{b_{n}}[C_{b_{n}}(X_{b_{n}})''] = U_{b_{n}}[C_{b_{n}}(X_{b_{n}}'\cup X_{b_{n}}'')]\).
-
2.
Equality (10) holds because
$$\begin{aligned} X_{b_{n}}' = C_{b_{n}}(X_{b_{n}}') = C_{b_{n}}(O_{b_{n}}^{U}(T)\cup O_{b_{n}}^{D}(T)). \end{aligned}$$(13) -
3.
Equality (11) holds by Lemma 1, since \(C_{b_{n}}(O_{b_{n}}^{U}(T)\cup O_{b_{n}}^{D}(T))\cup X_{b_{n}}''\subseteq O_{b_{n}}^{U}(T)\cup O_{b_{n}}^{D}(T)\).
-
4.
Equality (12) holds because Eq. (13) implies
$$\begin{aligned} U_{b_{n}}[X_{b_{n}}'] = U_{b_{n}}[C_{b_{n}}(X_{b_{n}}')] = U_{b_{n}}[C_{b_{n}}(O_{b_{n}}^{U}(T)\cup O_{b_{n}}^{D}(T))]. \end{aligned}$$
Thus, \(\mu \) is a chain stable network.
1.3 Proof of Proposition 1
Consider \(Y \subset {\mathcal {X}}\) and \(z \in {\mathcal {X}}{\setminus } Y\) such that \(z \notin C(Y\cup \{z\})\). If \(z \in {\mathcal {X}}{\setminus } X_{a}\), then \(U(Y) = U(Y\cup \{z\})\) and \(D(Y) = D(Y\cup \{z\})\). Thus, by same-side substitutes and cross-side complements, we can show \(C(Y) = C(Y\cup \{z\})\).
In the following, assume that \(z \in X_{a}\) (without loss of generality assume \(z \in U_{a}\)). Then, \(U(Y) \subset U(Y\cup \{z\})\) and \(D(Y) = D(Y\cup \{z\})\). Thus, same-sided substitutes implies \(U(C(Y\cup \{z\}))\). Therefore, \(|U(C(Y\cup \{z\}))| \le |U(C(Y))|\) and \(|D(C(Y))| \le |D(C(Y\cup \{z\}))|\). On the other hand, by the Law of Aggregate Demand, we have
Thus, \(|U(C(Y\cup \{z\}))| = |U(C(Y))|\) and \(|D(C(Y))| = |D(C(Y\cup \{z\}))|\). We therefore have \(U(C(Y)) = U(C(Y\cup \{z\}))\), \(D(C(Y)) = D(C(Y\cup \{z\}))\), and \(C(Y) = C(Y\cup \{z\})\). This implies that choice functions satisfy the IRC condition.
Rights and permissions
About this article
Cite this article
Fung, J.F., Hsu, CL. A cumulative offer process for supply chain networks. Rev Econ Design 25, 93–109 (2021). https://doi.org/10.1007/s10058-020-00238-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10058-020-00238-z