Graphical Cake Cutting via Maximin Share

Edith Elkind, Erel Segal-Halevi, Warut Suksompong

Introduction

Cake cutting is an old and famous problem in resource allocation, with the cake serving as a metaphor for a heterogeneous divisible resource that is supposed to be fairly divided among interested agents. While the problem has long enjoyed substantial attention from mathematicians and economists, it has also attracted ongoing interest from computer scientists, not least those working in artificial intelligence (Balkanski et al. 2014; Li et al. 2015; Brânzei et al. 2016; Alijani et al. 2017; Menon and Larson 2017; Bei et al. 2018; Goldberg et al. 2020; Hosseini et al. 2020). Indeed, as Procaccia 2013 aptly put it, cake cutting is more than just child’s play.

The cake in cake cutting is typically assumed to be a one-dimensional interval. Even though the linear representation is appropriate for modeling the division of time (for instance, usage of a jointly-owned facility), or space in a hallway, it is too simplistic to capture more complex resources such as road networks. This consideration has led Bei and Suksompong 2021 to introduce a more general graphical cake model, in which the resource comes in the form of a connected undirected graph. In parallel, Segal-Halevi 2021 addressed the case of graphs given by a disjoint union of intervals. In contrast to the single interval cake, for general graphs it is not always possible to find a connected proportional allocation, that is, an allocation that gives every agent a connected subset of the cake worth at least 1/n1/n of the agent’s value for the entire cake, where nn denotes the number of agents among whom the cake is divided. Nevertheless, Bei and Suksompong showed that more than half of this guarantee can be recovered: for any connected graph, it is possible to ensure every agent at least 1/(2n−1)1/(2n-1) of her total value, and this factor is tight in general (but can be improved for certain graphs). For the union-of-intervals case, Segal-Halevi established an approximation factor of 1/(m+n−1)1/(m+n-1), where mm denotes the number of intervals.

In this paper, we study graphical cake cutting with respect to another prominent fairness notion, maximin share fairness (Budish 2011). An allocation satisfies this notion if it assigns to every agent a bundle worth at least her maximin share, i.e., the largest value that she can get if she is allowed to partition the cake into nn connected parts and receives the least valuable part. Maximin share fairness is a robust notion which can naturally take into account the features and constraints arising in various settings. Indeed, this robustness will make it feasible to derive positive results in three settings where approximate proportionality fails. First, we allow the graph to be arbitrary—it may be disconnected, and each of its connected components may have an arbitrary topology. Second, we allow agents to have general monotone valuations—unlike most of the cake cutting literature, we do not assume that valuations must be additive. With disconnected graphs or non-additive valuations, providing an approximate proportionality guarantee solely in terms of nn is impossible. Third, we also consider a recently introduced setting of Elkind et al. 2021b in which the shares of different agents should be sufficiently separated from one another; this allows us to model space between pieces of roads with different owners, for example transition or buffer zones. In the presence of separation constraints, obtaining any multiplicative approximation of proportionality is again infeasible, as can be seen when the value of all agents is entirely concentrated in the same tiny portion. This observation motivated Elkind et al. to use the maximin share benchmark when separation is imposed. They showed that with separation, a maximin allocation always exists for a path graph, but not for a cycle graph.

We begin in Section 3 by addressing the basic case where no separation constraints are imposed. As Bei and Suksompong 2021 noted, in this case it can be crucial for proportionality approximations whether or not pieces of different agents are allowed to share a finite number of points. We show that this assumption is also crucial with respect to maximin share fairness. In particular, if points can be shared, then a maximin allocation may not exist even when the graph is a star, whereas if sharing is not allowed, the existence of such an allocation can be guaranteed for acyclic graphs (i.e., a disjoint union of trees, also known as a forest). Our results complement those of Bei and Suksompong, who observed that approximate proportionality cannot be provided even for trees under the no-sharing assumption. In addition, our guarantees degrade gracefully for graphical cakes with cycles: we attain a 11-out-of-(n+r)(n+r) maximin allocation, where rr is the feedback vertex set number of the cake (that is, the smallest number of vertices whose removal would make the cake acyclic).

In Section 4, we consider the more general case where the pieces of any two agents must be separated by distance at least a given (positive) parameter. Our main technical result shows that a maximin allocation exists whenever the graph is acyclic—this significantly generalizes the existence result of Elkind et al. 2021b for paths and complements their non-existence result for cycles. As with paths, our proof uses the following high-level idea: Given the maximin partitions of the agents, we find a part in one agent’s partition such that allocating the part to that agent rules out at most one part in each remaining agent’s partition; this allows us to recurse on the remaining agents and cake. While in the case of paths the desired part can be found by simply scanning the path from left to right, in an arbitrary forest there is no ‘left’ or ‘right’, so new techniques are needed. We develop auxiliary lemmas related to real trees—metric spaces defined by tree graphs—which may be of independent interest. As in the case of no separation, we obtain a 11-out-of-(n+r)(n+r) maximin allocation for general graphs.

For the case of positive separation, we show that in general, the factor n+rn+r cannot be improved: for every r≥0r\geq 0, when nn is sufficiently large, there exists a graph with feedback vertex set number rr and a set of nn agents that do not admit a 11-out-of-(n+r−1)(n+r-1) maximin allocation. However, better guarantees can be attained for smaller nn and specific classes of graphs.

2 Additional Related Work

As mentioned earlier, cake cutting is a popular topic among researchers of several disciplines—see the classic books of Brams and Taylor 1996 and Robertson and Webb 1998, as well as a more recent survey by Procaccia 2016 offering a computer scientist’s perspective.

Most of the work relevant to graphical fair division and separation constraints has been covered by Bei and Suksompong 2021 and Elkind et al. 2021b; we refer to the related work section of their papers, but highlight here some important aspects of our study. First, we assume that each agent must receive a connected piece of cake. This assumption is often made in order to ensure that agents do not end up with a collection of crumbs—indeed, a bundle made up of tiny stretches of road in different parts of the network is unlikely to be of much use. Second, the connectivity requirement is imposed not only on the allocation, but also in the definition of the maximin share. This is consistent with previous work on maximin share fairness in constrained settings (Bouveret et al. 2017; Biswas and Barman 2018; Lonc and Truszczynski 2020; Bei et al. 2021; Elkind et al. 2021b). Bouveret et al. 2017 proved that for indivisible items lying on a tree, a maximin allocation exists. However, as we discuss in Section 5, the “last diminisher” approach that they used for this proof does not work in our setting with separation. Recently, Igarashi and Zwicker 2021 studied envy-freeness in graphical cake cutting under the assumption that agents cannot share individual points, while Elkind et al. 2021a investigated land division with separation constraints.

In the papers above, as in our paper, the resource to be divided lies on a graph. A complementary line of work studies fair division scenarios in which the agents lie on a graph indicating their acquaintance (Abebe et al. 2017; Bei et al. 2017; Aziz et al. 2018).

Preliminaries

There is a set of agents N=[n]\mathcal{N}=[n], where [k]:={1,2,…,k}[k]:=\{1,2,\dots,k\} for any positive integer kk. The cake is represented by a finite undirected graph G=(V,E)G=(V,E), which may be connected or not. Each agent has a nonnegative, monotone, and continuous valuation function viv_{i}, which is not necessarily additive. In particular, continuity implies that the vertices in VV have zero value. Note that the cases studied by Elkind et al. 2021b and in most cake cutting papers are special cases of this model: an interval cake corresponds to taking GG to be any path graph, while a pie cake is equivalent to a cycle graph. A piece of cake is a finite union of intervals from one of more edges in EE. The piece is said to be connected if for any points x,yx,y in it, one can get from xx to yy along the graph GG by only traversing this piece of cake. We assume that each agent must receive a connected piece of cake.

There is a separation parameter s≥0s\geq 0. When s>0s>0, the edge lengths play an important role. We measure distance along the edges of GG. For any two points x,y∈Gx,y\in G, we denote by \textscDistG(x,y)\textsc{Dist}^{G}(x,y) the length of a shortest path from xx to yy along the edges of GG; if xx and yy belong to different connected components of GG, we set \textscDistG(x,y)=∞\textsc{Dist}^{G}(x,y)=\infty. For two pieces of cake X,Y⊆GX,Y\subseteq G, we denote by \textscDistG(X,Y)\textsc{Dist}^{G}(X,Y) the shortest distance between a point in XX and a point in YY along the edges of GG, i.e., \textscDistG(X,Y)=inf⁡x∈X,y∈Y\textscDistG(x,y)\textsc{Dist}^{G}(X,Y)=\inf_{x\in X,y\in Y}\textsc{Dist}^{G}(x,y); if YY consists of a single point yy, we simply write \textscDistG(X,y)\textsc{Dist}^{G}(X,y).

A partition of the cake is a set P={P1,…,Pn}\mathbf{P}=\{P_{1},\dots,P_{n}\}, where each PiP_{i} is a connected piece of cake, and the pieces are pairwise disjoint: Pi∩Pj=∅P_{i}\cap P_{j}=\emptyset for all i≠ji\neq j. When s=0s=0, we will consider, in addition to the disjoint-pieces setting, an alternative setting in which Pi∩PjP_{i}\cap P_{j} may contain finitely many points. An allocation is defined similarly, except that we have a vector A=(A1,…,An)\mathbf{A}=(A_{1},\dots,A_{n}) instead of a set, where piece AiA_{i} is allocated to agent ii. A partition P\mathbf{P} is said to be ss-separated if \textscDistG(Pi,Pj)≥s\textsc{Dist}^{G}(P_{i},P_{j})\geq s for all i≠ji\neq j; an analogous definition holds for an allocation. We assume that partitions and allocations are required to be ss-separated. Observe that for s>0s>0, in any ss-separated partition or allocation, some of the cake necessarily remains unallocated. Moreover, since any two pieces are separated by a positive distance, we assume without loss of generality in this case that the pieces contain only closed intervals. Denote by Γn,s\Gamma_{n,s} the set consisting of all ss-separated partitions.

The main fairness notion of our paper is the following:

The maximin share of agent ii, denoted by MMSin,s\text{MMS}^{n,s}_{i}, is defined as sup⁡P∈Γn,smin⁡j∈[n]vi(Pj)\sup_{\mathbf{P}\in\Gamma_{n,s}}\min_{j\in[n]}v_{i}(P_{j}).

No Separation

In this section, we address the basic case where there is no separation constraint imposed on the allocation, i.e., s=0s=0. When s>0s>0, the pieces of any two agents cannot be adjacent to each other, so we can assume without loss of generality that all pieces consist only of closed intervals and the pieces have empty intersections. For s=0s=0, however, this is not true: there are essential differences between the empty-intersection setting and the finite-intersection setting, in which pieces may overlap in finitely many points. This observation was made by Bei and Suksompong 2021 with respect to approximate proportionality for the case of a star graph. Specifically, in the empty-intersection setting, n−1n-1 agents do not receive the center of the star and therefore can receive cake from at most one edge, leading to strong negative results. On the other hand, in the finite-intersection setting, decent welfare guarantees can be obtained.

As we will demonstrate, the distinction between empty intersection and finite intersection is crucial with respect to maximin share fairness too. Note that the maximin share is calculated using the same restrictions that are imposed on allocations. First, we show that in the finite-intersection setting, a maximin allocation may not exist.

Assume that the allocated pieces are allowed to intersect in a finite number of points. There exists an instance with n=3n=3 agents and a star cake in which no maximin allocation exists.

The proof follows the celebrated Theorem 2.1 of Kurokawa et al. 2018, which shows that a maximin allocation of indivisible objects may not exist for n=3n=3 agents.

In their instance, there are 1212 objects, indexed by j∈j\in and k∈k\in. Each agent i∈i\in values each object (j,k)(j,k) by:

where T,E(1),E(2),E(3)T,E^{(1)},E^{(2)},E^{(3)} are carefully chosen 3×43\times 4 matrices with all values smaller than 100100. Kurokawa et al. proved that every agent can partition the objects into 33 subsets of 44 objects each, in such a way that the sum of values in each subset is exactly 40550004055000; this value is therefore the maximin share of all agents. These authors then showed that no allocation gives every agent at least this value.

In our instance, there is a star graph with 1212 edges connected to a single center vertex cc. The edges are indexed by j∈j\in and k∈k\in. Each agent i∈i\in has value vi(j,k)v_{i}(j,k) for the edge (j,k)(j,k), and this value is spread uniformly across the edge. Since the pieces may intersect in a finite number of points, the maximin share of each agent is also 40550004055000 in our instance, by partitioning the set of edges to 33 subsets of 44 edges each (these subsets intersect in the single point cc).

If an agent’s piece is contained in a single edge, then her value is clearly less than 20000002000000. Hence, in a maximin allocation, each edge must belong to only one agent. We may therefore assume without loss of generality that each agent receives a piece containing two or more whole edges. But the same argument as that of Kurokawa et al. 2018 shows that no such allocation can be a maximin allocation. ∎

Next, we show that in the empty-intersection setting, a maximin allocation always exists when the cake is a forest.

Let GG be a forest and s=0s=0. Assume that all allocated pieces must be completely disjoint. For agents with arbitrary monotone valuations, a maximin allocation exists.

Intuitively, given the nn maximin partitions of the agents, we want to choose a part in one agent’s partition that overlaps at most one part in each remaining agent’s partition—this will allow us to recurse on the remaining agents and their leftover partitions. To this end, we introduce the following definition. Given a graph GG and a family X:=(X1,…,Xk)\mathbf{X}:=(X_{1},\ldots,X_{k}) of connected pieces of GG, a piece Xj∗X_{j^{*}} is called 00-good provided that for all j1,j2∈[k]j_{1},j_{2}\in[k], the following holds: If Xj1∩Xj∗≠∅X_{j_{1}}\cap X_{j^{*}}\neq\emptyset and Xj2∩Xj∗≠∅X_{j_{2}}\cap X_{j^{*}}\neq\emptyset, then Xj1∩Xj2≠∅X_{j_{1}}\cap X_{j_{2}}\neq\emptyset.

Let GG be a tree and X:=(X1,…,Xk)\mathbf{X}:=(X_{1},\ldots,X_{k}) a family of connected subsets of GG, for some integer k≥1k\geq 1. For some j∗∈[k]j^{*}\in[k], the piece Xj∗X_{j^{*}} is 00-good.

In order to prove this lemma, we must handle both open and closed pieces. We are grateful to Alex Ravsky for the proof idea. Indeed, for n=3n=3 and a star graph with three edges of equal value, a maximin partition contains two open pieces and one closed piece. The difference between the empty-intersection and the finite-intersection settings stems from the fact that the finite-intersection analogue of Lemma 3.3 does not hold. For example, when GG is a star graph with center cc and edges e1,e2,e3,e4e_{1},e_{2},e_{3},e_{4}, and X=(e1∪c∪e2, e3∪c∪e4, e1∪c∪e3, e2∪c∪e4)\mathbf{X}=(e_{1}\cup c\cup e_{2},~e_{3}\cup c\cup e_{4},~e_{1}\cup c\cup e_{3},~e_{2}\cup c\cup e_{4}), there is no Xj∗X_{j*} with the property that if Xj1∩Xj∗X_{j_{1}}\cap X_{j*} is infinite and Xj2∩Xj∗X_{j_{2}}\cap X_{j*} is infinite, then Xj1∩Xj2X_{j_{1}}\cap X_{j_{2}} is infinite.

We proceed to the inductive step. Let m≥2m\geq 2, assume that the statement holds for graphs with at most m−1m-1 edges, and suppose that GG has mm edges. Since GG is a tree, it has a leaf, i.e., a vertex ww connected to a single edge ee. Let G−G^{-} be the graph GG without the vertex ww and the edge ee. Let uu be the vertex at the other end of ee; note that uu is a vertex of G−G^{-}. We consider two cases.

Case 1: At least one piece of X\mathbf{X} is contained in ee (so it is an interval). Among all such intervals, choose an Xj∗X_{j^{*}} whose closest point to uu is as far away as possible. Then Xj∗X_{j^{*}} is 00-good by the same arguments as in the base case m=1m=1.

Case 2: No piece of X\mathbf{X} is contained in ee. This means that all pieces of X\mathbf{X} intersect G−G^{-}. Let X′:=(X1′,…,Xk′)\mathbf{X}^{\prime}:=(X^{\prime}_{1},\ldots,X^{\prime}_{k}), where Xj′:=Xj∩G−X^{\prime}_{j}:=X_{j}\cap G^{-} for each j∈[k]j\in[k]. By the inductive assumption applied to G−G^{-}, at least one piece in X′\mathbf{X^{\prime}}, say Xj∗′X^{\prime}_{j^{*}}, is 00-good with respect to X′\mathbf{X^{\prime}}. It suffices to show that Xj∗X_{j^{*}} is also 00-good with respect to X\mathbf{X}.

We claim that if Xj∗X_{j^{*}} intersects some other piece XjX_{j}, then Xj∗′X_{j^{*}}^{\prime} also intersects Xj′X_{j}^{\prime}. To see this, note that the intersection between Xj∗X_{j^{*}} and XjX_{j} may occur either in G−G^{-} or in ee (or both). If the intersection occurs in G−G^{-}, then Xj∗′X_{j^{*}}^{\prime} intersects Xj′X_{j}^{\prime} and we are done. If the intersection occurs in ee, then Xj∗∩eX_{j^{*}}\cap e intersects Xj∩eX_{j}\cap e, so both of the intersections are non-empty. But by the assumption of Case 2, all pieces of X\mathbf{X} intersect G−G^{-}. Therefore, both Xj∗X_{j^{*}} and XjX_{j} contain the point uu, which is the unique point connecting ee and G−G^{-}. Therefore u∈Xj∗′∩Xj′u\in X_{j^{*}}^{\prime}\cap X_{j}^{\prime}, so again Xj∗′X_{j^{*}}^{\prime} intersects Xj′X_{j}^{\prime}. This establishes the claim.

We now show that Xj∗X_{j^{*}} is 00-good with respect to X\mathbf{X}. Suppose that Xj∗X_{j^{*}} intersects two other pieces in X\mathbf{X}, say Xj1X_{j_{1}} and Xj2X_{j_{2}}. By the claim in the previous paragraph, Xj∗′X^{\prime}_{j^{*}} intersects both Xj1′X^{\prime}_{j_{1}} and Xj2′X^{\prime}_{j_{2}}. Since Xj∗′X_{j^{*}}^{\prime} is 00-good with respect to X′\mathbf{X}^{\prime}, it must be that Xj1′X_{j_{1}}^{\prime} intersects Xj2′X_{j_{2}}^{\prime}. In particular, Xj1X_{j_{1}} intersects Xj2X_{j_{2}}. Hence, Xj∗X_{j^{*}} is 00-good with respect to X\mathbf{X}. ∎

With Lemma 3.3 in hand, we can now show that, in the empty-intersection setting, a maximin allocation exists whenever the cake is a forest.

For each agent, consider her maximin partition. Every part of the partition is contained in some tree of the forest. Let T⊆GT\subseteq G be a tree that contains at least one part from the maximin partition of at least one agent.

For every agent i∈Ni\in\mathcal{N}, let kik_{i} be the number of parts of ii’s maximin partition that are contained in TT, and denote the parts by Ti,1,…,Ti,kiT_{i,1},\ldots,T_{i,k_{i}}. By Lemma 3.3, there exists some i∈Ni\in\mathcal{N} and j∈[ki]j\in[k_{i}] such that Ti,jT_{i,j} is 00-good. Allocate the part Ti,jT_{i,j} to agent ii, and divide the remaining cake recursively among the remaining agents.

The remaining cake is still a forest. By definition of a 00-good subset, for every other agent, at most one part of her maximin partition overlaps the allocated piece Ti,jT_{i,j}. Hence, for each of the n−1n-1 remaining agents, at least n−1n-1 parts from her maximin partition remain intact. Therefore the recursive call indeed returns a maximin allocation. ∎

As we have seen, the seemingly minor distinction of whether individual points can be shared among allocated pieces makes a decisive difference in relation to maximin share fairness. Which assumption is more realistic depends on the use case, for example whether road intersections can only be owned by one agent or shared by multiple agents. Bei and Suksompong 2021 showed that nontrivial egalitarian welfare can be obtained only when sharing is allowed. Thus, our results complement theirs by exhibiting that even when sharing is infeasible, a reasonable fairness guarantee can still be made in terms of the maximin share.

We now proceed to general graphs. We consider an ordinal relaxation called 11-out-of-kk maximin share, denoted by MMSik,s\text{MMS}_{i}^{k,s}, or simply MMSik\text{MMS}_{i}^{k} when ss is clear from the context. The idea is that instead of taking partitions into nn parts as in the canonical maximin share, we allow partitions into kk parts, where k>nk>n is a given parameter. For each graph GG, let \textscFvsNum(g)\textsc{FvsNum}(g) be the feedback vertex set number of GG, that is, the minimum number of vertices whose removal makes the graph acyclic. Computing \textscFvsNum(g)\textsc{FvsNum}(g) is NP-hard (Karp 1972), but here we use it only for existence proofs. Note that \textscFvsNum(G)\textsc{FvsNum}(G) is upper-bounded by the circuit rank of GG, that is, the minimum number of edges whose removal makes the graph acyclic. The circuit rank of a graph G=(V,E)G=(V,E) with cc connected components is ∣E∣−∣V∣+c|E|-|V|+c.

Let s=0s=0, and assume that all allocated pieces must be completely disjoint. For any graph GG and any nn agents with arbitrary monotone valuations, there exists an allocation of GG in which each agent ii receives a connected piece with value at least MMSin+\textscFvsNum(G)\emph{MMS}_{i}^{n+\textsc{FvsNum}(G)}.

Let r:=\textscFvsNum(G)r:=\textsc{FvsNum}(G). For each agent, consider her 11-out-of-(n+r)(n+r) maximin partition. Pick a subset of rr vertices upon whose deletion the remaining graph is a forest. Delete each of these vertices (while keeping its adjacent edges intact as open intervals). By the empty-intersection assumption, each vertex deletion harms at most one part in each agent’s partition. Therefore, once the graph becomes a forest, for every agent, at least nn parts remain. By Theorem 3.2, there is an allocation in which every agent ii gets at least one of her maximin parts, and therefore value at least MMSin+r\text{MMS}_{i}^{n+r}. ∎

For every graph GG, let \textscMmsRank(G)\textsc{MmsRank}(G) be the smallest integer r≥0r\geq 0 such that for any integer n≥1n\geq 1 and any nn agents with arbitrary monotone valuations, there exists an allocation of GG in which each agent ii receives a connected piece with value at least MMSin+r\text{MMS}_{i}^{n+r}. Theorem 3.4 shows that \textscMmsRank(G)≤\textscFvsNum(G)\textsc{MmsRank}(G)\leq\textsc{FvsNum}(G); we do not know if this inequality is tight.

When agents’ valuations are additive, Theorem 3.4 is not tight for some graphs. In particular, when GG is a cycle, \textscFvsNum(G)=1\textsc{FvsNum}(G)=1, but it is known that MMSin\text{MMS}_{i}^{n} can be guaranteed to all agents (by reduction to an interval, for which proportionality can be guaranteed). Therefore, \textscMmsRankAdd(G)=0\textsc{MmsRankAdd}(G)=0, where \textscMmsRankAdd(G)\textsc{MmsRankAdd}(G) is defined analogously to \textscMmsRank(G)\textsc{MmsRank}(G) for additive valuations.

(a) Are there classes of graphs GG for which \textscMmsRank(G)<\textscFvsNum(G)\textsc{MmsRank}(G)<\textsc{FvsNum}(G)?

(b) Are there graphs GG for which \textscMmsRankAdd(G)>0\textsc{MmsRankAdd}(G)>0 (that is, for some nn agents with additive valuations, a 11-out-of-nn maximin allocation does not exist)?

Positive Separation

In this section, we consider the case where a separation constraint is imposed, that is, s>0s>0.

By definition of a tree, for any two points x,y∈Gx,y\in G, there is a unique (simple) path between xx and yy. Denote this unique path by \textscPathG(x,y)\textsc{Path}^{G}(x,y) or x→yx\to y, and observe that the length of this path is \textscDistG(x,y)\textsc{Dist}^{G}(x,y). We say that two subsets of GG are essentially-disjoint if they intersect in at most a single point.

Let GG be a tree, X⊆GX\subseteq G a closed connected subset, and r∈Gr\in G a point. There exists a unique point x∗∈Xx_{*}\in X (a function of XX and rr) satisfying the following properties:

(a) The path from any point in XX to rr passes through x∗x_{*}. That is, for any y∈Xy\in X: x∗∈\textscPathG(y,r)x_{*}\in\textsc{Path}^{G}(y,r).

(b) x∗x_{*} is closer to rr than any other point in XX is. That is, \textscDistG(x∗,r)<\textscDistG(y,r)\textsc{Dist}^{G}(x_{*},r)<\textsc{Dist}^{G}(y,r) for all y∈Xy\in X.

(c) For any y∈Xy\in X, \textscDistG(y,r)=\textscDistG(y,x∗)+\textscDistG(x∗,r)\textsc{Dist}^{G}(y,r)=\textsc{Dist}^{G}(y,x_{*})+\textsc{Dist}^{G}(x_{*},r).

If r∈Xr\in X, then all three claims hold trivially by taking x∗=rx_{*}=r. Assume therefore that r∉Xr\not\in X.

(a) For each point y∈Xy\in X, denote by y∗y_{*} the unique point on X∩\textscPathG(y,r)X\cap\textsc{Path}^{G}(y,r) that is closest to rr (intuitively, the point at which \textscPathG(y,r)\textsc{Path}^{G}(y,r) leaves XX and heads towards rr). We claim that this point is the same for all points in XX, i.e., if y,z∈Xy,z\in X then y∗=z∗y_{*}=z_{*}, as in the illustration below, where we denote this common point by x∗x_{*}:

r<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>x</mi><molspace="0em"rspace="0em">∗</mo></msub></mrow><annotationencoding="application/x−tex">x∗</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.5806em;vertical−align:−0.15em;"></span><spanclass="mord"><spanclass="mordmathnormal">x</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.1757em;"><spanstyle="top:−2.55em;margin−left:0em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmtight">∗</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>y<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><mi>z</mi></mrow><annotationencoding="application/x−tex">z</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.4306em;"></span><spanclass="mordmathnormal"style="margin−right:0.044em;">z</span></span></span></span></span>Xr<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>x</mi><mo lspace="0em" rspace="0em">∗</mo></msub></mrow><annotation encoding="application/x-tex">x_{*}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.5806em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1757em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∗</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>y<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>z</mi></mrow><annotation encoding="application/x-tex">z</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal" style="margin-right:0.044em;">z</span></span></span></span></span>X Suppose for contradiction that y∗≠z∗y_{*}\neq z_{*}. The paths \textscPathG(y∗,r)\textsc{Path}^{G}(y_{*},r) and \textscPathG(z∗,r)\textsc{Path}^{G}(z_{*},r) meet at rr. Let ww be the first point at which they meet. So the paths \textscPathG(y∗,w)\textsc{Path}^{G}(y_{*},w) and \textscPathG(z∗,w)\textsc{Path}^{G}(z_{*},w) are essentially-disjoint (they intersect only at ww). As XX is connected, there is a path \textscPathG(y∗,z∗)⊆X\textsc{Path}^{G}(y_{*},z_{*})\subseteq X; this path is essentially-disjoint from both \textscPathG(y∗,w)\textsc{Path}^{G}(y_{*},w) and \textscPathG(z∗,w)\textsc{Path}^{G}(z_{*},w), since these two paths intersect XX only at their starting point y∗y_{*} and z∗z_{*}, respectively. Therefore, we have a cycle y∗→w→z∗→y∗y_{*}\to w\to z_{*}\to y_{*}, as in the following figure:

r<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><mi>w</mi></mrow><annotationencoding="application/x−tex">w</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.4306em;"></span><spanclass="mordmathnormal"style="margin−right:0.0269em;">w</span></span></span></span></span>y<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>y</mi><molspace="0em"rspace="0em">∗</mo></msub></mrow><annotationencoding="application/x−tex">y∗</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.625em;vertical−align:−0.1944em;"></span><spanclass="mord"><spanclass="mordmathnormal"style="margin−right:0.0359em;">y</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.1757em;"><spanstyle="top:−2.55em;margin−left:−0.0359em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmtight">∗</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>z<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>z</mi><molspace="0em"rspace="0em">∗</mo></msub></mrow><annotationencoding="application/x−tex">z∗</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.5806em;vertical−align:−0.15em;"></span><spanclass="mord"><spanclass="mordmathnormal"style="margin−right:0.044em;">z</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.1757em;"><spanstyle="top:−2.55em;margin−left:−0.044em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmtight">∗</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>Xr<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>w</mi></mrow><annotation encoding="application/x-tex">w</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal" style="margin-right:0.0269em;">w</span></span></span></span></span>y<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>y</mi><mo lspace="0em" rspace="0em">∗</mo></msub></mrow><annotation encoding="application/x-tex">y_{*}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.1944em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0359em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1757em;"><span style="top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∗</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>z<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>z</mi><mo lspace="0em" rspace="0em">∗</mo></msub></mrow><annotation encoding="application/x-tex">z_{*}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.5806em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.044em;">z</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1757em;"><span style="top:-2.55em;margin-left:-0.044em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∗</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>X This contradicts the assumption that GG is a tree. Parts (b) and (c) follow immediately from (a). ∎

Denote the unique point x∗x_{*} guaranteed by Lemma 4.1 by \textscNearest(X,r)\textsc{Nearest}(X,r). \textscNearest(X,r)\textsc{Nearest}(X,r) is closely related to the concept of median in a tree. Given three points x,y,zx,y,z of a tree graph, there is a unique point in \textscPathG(x,y)∩\textscPathG(y,z)∩\textscPathG(z,x)\textsc{Path}^{G}(x,y)\cap\textsc{Path}^{G}(y,z)\cap\textsc{Path}^{G}(z,x); this point is called the median of x,y,zx,y,z. More generally, any graph with this uniqueness property is called a median graph; such graphs have been studied in voting theory (Nehring and Puppe 2007). The lemma can be generalized as follows:

Let GG be a tree and X,R⊆GX,R\subseteq G be closed connected subsets with X∩R=∅X\cap R=\emptyset. There exists a unique point x∗∈Xx_{*}\in X (a function of XX and RR) satisfying the following properties:

(a) The path from any point in XX to any point in RR passes through x∗x_{*}.

(b) For every point r∈Rr\in R, x∗x_{*} is closer to rr than any other point in XX is.

As in Lemma 4.1, it suffices to prove part (a). For each point y∈Xy\in X, denote by ry∈Rr_{y}\in R the unique point such that any path from yy to a point in RR must pass through ryr_{y}; the existence of ryr_{y} follows from Lemma 4.1. Denote by y∗y_{*} the unique point on X∩\textscPathG(y,ry)X\cap\textsc{Path}^{G}(y,r_{y}) that is closest to RR (i.e., the point at which \textscPathG(y,ry)\textsc{Path}^{G}(y,r_{y}) leaves XX towards RR). We claim that this point is the same for all points in XX, i.e., if y,z∈Xy,z\in X then y∗=z∗y_{*}=z_{*}, as in the illustration below, where we denote this common point by x∗x_{*}:

R<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>r</mi><molspace="0em"rspace="0em">∗</mo></msub></mrow><annotationencoding="application/x−tex">r∗</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.5806em;vertical−align:−0.15em;"></span><spanclass="mord"><spanclass="mordmathnormal"style="margin−right:0.0278em;">r</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.1757em;"><spanstyle="top:−2.55em;margin−left:−0.0278em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmtight">∗</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>x∗R<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>r</mi><mo lspace="0em" rspace="0em">∗</mo></msub></mrow><annotation encoding="application/x-tex">r_{*}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.5806em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">r</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1757em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">∗</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>x_{*}XX Suppose for contradiction that y∗≠z∗y_{*}\neq z_{*}. If the paths \textscPathG(y,ry)\textsc{Path}^{G}(y,r_{y}) and \textscPathG(z,rz)\textsc{Path}^{G}(z,r_{z}) intersect at some point (in particular, this happens if ry=rzr_{y}=r_{z}), then there is a cycle in GG as in the proof of Lemma 4.1. Otherwise, the paths intersect RR at different points ry≠rzr_{y}\neq r_{z}, as in the following figure:

R<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>r</mi><mi>y</mi></msub></mrow><annotationencoding="application/x−tex">ry</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.7167em;vertical−align:−0.2861em;"></span><spanclass="mord"><spanclass="mordmathnormal"style="margin−right:0.0278em;">r</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.1514em;"><spanstyle="top:−2.55em;margin−left:−0.0278em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmathnormalmtight"style="margin−right:0.0359em;">y</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.2861em;"><span></span></span></span></span></span></span></span></span></span></span>rz<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><mi>y</mi></mrow><annotationencoding="application/x−tex">y</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.625em;vertical−align:−0.1944em;"></span><spanclass="mordmathnormal"style="margin−right:0.0359em;">y</span></span></span></span></span>y∗<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><mi>z</mi></mrow><annotationencoding="application/x−tex">z</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.4306em;"></span><spanclass="mordmathnormal"style="margin−right:0.044em;">z</span></span></span></span></span>z∗R<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>r</mi><mi>y</mi></msub></mrow><annotation encoding="application/x-tex">r_{y}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7167em;vertical-align:-0.2861em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">r</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1514em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight" style="margin-right:0.0359em;">y</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.2861em;"><span></span></span></span></span></span></span></span></span></span></span>r_{z}<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>y</mi></mrow><annotation encoding="application/x-tex">y</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.1944em;"></span><span class="mord mathnormal" style="margin-right:0.0359em;">y</span></span></span></span></span>y_{*}<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>z</mi></mrow><annotation encoding="application/x-tex">z</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal" style="margin-right:0.044em;">z</span></span></span></span></span>z_{*}XX Since RR and XX are connected and disjoint from each other, we have a cycle y∗→z∗→rz→ry→y∗y_{*}\to z_{*}\to r_{z}\to r_{y}\to y_{*}, contradicting the assumption that GG is a tree. ∎

For non-intersecting subsets X,R⊆GX,R\subseteq G, denote the unique point x∗x_{*} guaranteed by Lemma 4.2 by \textscNearest(X,R)\textsc{Nearest}(X,R). Note that \textscNearest(X,R)≠\textscNearest(R,X)\textsc{Nearest}(X,R)\neq\textsc{Nearest}(R,X): the former is in XX while the latter is in RR. We now define “ss-good” pieces similarly to 00-good pieces in Lemma 3.3. Given a graph GG and a family X:=(X1,…,Xk)\mathbf{X}:=(X_{1},\ldots,X_{k}) of closed connected pieces of GG, a piece Xj∗X_{j^{*}} is called ss-good provided that for all j1,j2∈[k]j_{1},j_{2}\in[k], the following holds: If \textscDistG(Xj1,Xj∗)<s\textsc{Dist}^{G}(X_{j_{1}},X_{j^{*}})<s and \textscDistG(Xj2,Xj∗)<s\textsc{Dist}^{G}(X_{j_{2}},X_{j^{*}})<s, then \textscDistG(Xj1,Xj2)<s\textsc{Dist}^{G}(X_{j_{1}},X_{j_{2}})<s.

Let GG be a tree and X:=(X1,…,Xk)\mathbf{X}:=(X_{1},\ldots,X_{k}) a family of closed connected subsets of GG, for some integer k≥1k\geq 1. If s>0s>0, then for some j∗∈[k]j^{*}\in[k], the piece Xj∗X_{j^{*}} is ss-good.

Fix an arbitrary point r∈Gr\in G as the tree root. For every j∈[k]j\in[k], let xj:=\textscNearest(Xj,r)x_{j}:=\textsc{Nearest}(X_{j},r) and dj:=\textscDistG(xj,r)d_{j}:=\textsc{Dist}^{G}(x_{j},r). Let j∗∈arg⁡max⁡j∈[k]djj^{*}\in\arg\max_{j\in[k]}d_{j}, so that Xj∗X_{j^{*}} is a piece in X\mathbf{X} farthest from rr; we abuse notation slightly and refer to this piece as X0X_{0}. We claim that X0X_{0} is ss-good. To prove this, we need several auxiliary claims on X0X_{0}.

For each j∈[k]j\in[k], if X0X_{0} intersects XjX_{j}, then x0∈Xjx_{0}\in X_{j}.

Take any point y∈X0∩Xjy\in X_{0}\cap X_{j}. By Lemma 4.1, \textscPathG(y,r)\textsc{Path}^{G}(y,r) passes through both x0x_{0} and xjx_{j}. By the selection of x0x_{0}, the path passes through x0x_{0} before it passes through xjx_{j}, as in the illustration below:

r<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>x</mi><mi>j</mi></msub></mrow><annotationencoding="application/x−tex">xj</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.7167em;vertical−align:−0.2861em;"></span><spanclass="mord"><spanclass="mordmathnormal">x</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.3117em;"><spanstyle="top:−2.55em;margin−left:0em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmathnormalmtight"style="margin−right:0.0572em;">j</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.2861em;"><span></span></span></span></span></span></span></span></span></span></span>x0<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><mi>y</mi></mrow><annotationencoding="application/x−tex">y</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.625em;vertical−align:−0.1944em;"></span><spanclass="mordmathnormal"style="margin−right:0.0359em;">y</span></span></span></span></span>Xjr<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>x</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">x_{j}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7167em;vertical-align:-0.2861em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight" style="margin-right:0.0572em;">j</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.2861em;"><span></span></span></span></span></span></span></span></span></span></span>x_{0}<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>y</mi></mrow><annotation encoding="application/x-tex">y</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.1944em;"></span><span class="mord mathnormal" style="margin-right:0.0359em;">y</span></span></span></span></span>X_{j}X0X_{0} It follows that x0∈\textscPathG(y,xj)⊆Xjx_{0}\in\textsc{Path}^{G}(y,x_{j})\subseteq X_{j}. ∎

For each j∈[k]j\in[k], if X0X_{0} does not intersect XjX_{j}, then x0=\textscNearest(X0,Xj)x_{0}=\textsc{Nearest}(X_{0},X_{j}).

Let y0:=\textscNearest(X0,Xj)y_{0}:=\textsc{Nearest}(X_{0},X_{j}) and suppose for contradiction that x0≠y0x_{0}\neq y_{0}. Then there are two different paths from x0x_{0} to rr, as illustrated below, where yj:=\textscNearest(Xj,X0)y_{j}:=\textsc{Nearest}(X_{j},X_{0}):

r<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotationencoding="application/x−tex">x0</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.5806em;vertical−align:−0.15em;"></span><spanclass="mord"><spanclass="mordmathnormal">x</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.3011em;"><spanstyle="top:−2.55em;margin−left:0em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmtight">0</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>X0<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>x</mi><mi>j</mi></msub></mrow><annotationencoding="application/x−tex">xj</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.7167em;vertical−align:−0.2861em;"></span><spanclass="mord"><spanclass="mordmathnormal">x</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.3117em;"><spanstyle="top:−2.55em;margin−left:0em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmathnormalmtight"style="margin−right:0.0572em;">j</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.2861em;"><span></span></span></span></span></span></span></span></span></span></span>Xj<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>y</mi><mn>0</mn></msub></mrow><annotationencoding="application/x−tex">y0</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.625em;vertical−align:−0.1944em;"></span><spanclass="mord"><spanclass="mordmathnormal"style="margin−right:0.0359em;">y</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.3011em;"><spanstyle="top:−2.55em;margin−left:−0.0359em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmtight">0</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>yjr<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding="application/x-tex">x_{0}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.5806em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">0</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>X_{0}<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>x</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">x_{j}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7167em;vertical-align:-0.2861em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight" style="margin-right:0.0572em;">j</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.2861em;"><span></span></span></span></span></span></span></span></span></span></span>X_{j}<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>y</mi><mn>0</mn></msub></mrow><annotation encoding="application/x-tex">y_{0}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.625em;vertical-align:-0.1944em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0359em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">0</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>y_{j} The path x0→rx_{0}\to r intersects X0X_{0} only at x0x_{0}. The path x0→y0x_{0}\to y_{0} is contained in X0X_{0}; y0→yjy_{0}\to y_{j} is essentially-disjoint from both X0X_{0} and XjX_{j}; yj→xjy_{j}\to x_{j} is contained in XjX_{j} (it may be empty); and xj→rx_{j}\to r is essentially-disjoint from XjX_{j}. By the selection of x0x_{0}, \textscDistG(xj,r)≤\textscDistG(x0,r)\textsc{Dist}^{G}(x_{j},r)\leq\textsc{Dist}^{G}(x_{0},r), so this last part xj→rx_{j}\to r is essentially-disjoint from X0X_{0} too. Therefore, these are two different paths from x0x_{0} to rr, contradicting that GG is a tree. ∎

For every j∈[k]j\in[k] such that X0∩Xj=∅X_{0}\cap X_{j}=\emptyset, let yj:=\textscNearest(Xj,X0)=\textscNearest(Xj,x0)y_{j}:=\textsc{Nearest}(X_{j},X_{0})=\textsc{Nearest}(X_{j},x_{0}) and zj:=\textscNearest(\textscPathG(x0,yj),r)z_{j}:=\textsc{Nearest}(\textsc{Path}^{G}(x_{0},y_{j}),r), i.e., zjz_{j} is the point at which the path from x0x_{0} to rr meets the path from yjy_{j} to rr. Our next auxiliary claim is (see also the figures in the proof):

For each j∈[k]j\in[k], \textscDistG(yj,zj)≤\textscDistG(x0,zj)\textsc{Dist}^{G}(y_{j},z_{j})\leq\textsc{Dist}^{G}(x_{0},z_{j}).

Consider first the case that yj=xjy_{j}=x_{j} (see the illustration below). We have

Recall that x0x_{0} was selected so that \textscDistG(x0,r)≥\textscDistG(xj,r)\textsc{Dist}^{G}(x_{0},r)\geq\textsc{Dist}^{G}(x_{j},r). Subtracting the common term \textscDistG(zj,r)\textsc{Dist}^{G}(z_{j},r) gives \textscDistG(x0,zj)≥\textscDistG(yj,zj)=\textscDistG(xj,zj)\textsc{Dist}^{G}(x_{0},z_{j})\geq\textsc{Dist}^{G}(y_{j},z_{j})=\textsc{Dist}^{G}(x_{j},z_{j}).

r<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>z</mi><mi>j</mi></msub></mrow><annotationencoding="application/x−tex">zj</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.7167em;vertical−align:−0.2861em;"></span><spanclass="mord"><spanclass="mordmathnormal"style="margin−right:0.044em;">z</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.3117em;"><spanstyle="top:−2.55em;margin−left:−0.044em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmathnormalmtight"style="margin−right:0.0572em;">j</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.2861em;"><span></span></span></span></span></span></span></span></span></span></span>x0<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>X</mi><mn>0</mn></msub></mrow><annotationencoding="application/x−tex">X0</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.8333em;vertical−align:−0.15em;"></span><spanclass="mord"><spanclass="mordmathnormal"style="margin−right:0.0785em;">X</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.3011em;"><spanstyle="top:−2.55em;margin−left:−0.0785em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmtight">0</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>xj=yjr<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>z</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">z_{j}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7167em;vertical-align:-0.2861em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.044em;">z</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.044em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight" style="margin-right:0.0572em;">j</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.2861em;"><span></span></span></span></span></span></span></span></span></span></span>x_{0}<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>X</mi><mn>0</mn></msub></mrow><annotation encoding="application/x-tex">X_{0}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0785em;">X</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0785em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">0</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>x_{j}=y_{j}XjX_{j} Next, consider the case that yj≠xjy_{j}\neq x_{j}. Since yj=\textscNearest(Xj,x0)y_{j}=\textsc{Nearest}(X_{j},x_{0}), it is contained in the path x0→xjx_{0}\to x_{j}. On the other hand, since xj=\textscNearest(Xj,r)x_{j}=\textsc{Nearest}(X_{j},r), it is contained in the path yj→ry_{j}\to r. Therefore, the path from x0x_{0} to rr passes through both yjy_{j} and xjx_{j}, as in the figure below:

r<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>x</mi><mi>j</mi></msub></mrow><annotationencoding="application/x−tex">xj</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.7167em;vertical−align:−0.2861em;"></span><spanclass="mord"><spanclass="mordmathnormal">x</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.3117em;"><spanstyle="top:−2.55em;margin−left:0em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmathnormalmtight"style="margin−right:0.0572em;">j</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.2861em;"><span></span></span></span></span></span></span></span></span></span></span>yj<spanclass="katex−display"><spanclass="katex"><spanclass="katex−mathml"><mathxmlns="http://www.w3.org/1998/Math/MathML"display="block"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotationencoding="application/x−tex">x0</annotation></semantics></math></span><spanclass="katex−html"aria−hidden="true"><spanclass="base"><spanclass="strut"style="height:0.5806em;vertical−align:−0.15em;"></span><spanclass="mord"><spanclass="mordmathnormal">x</span><spanclass="msupsub"><spanclass="vlist−tvlist−t2"><spanclass="vlist−r"><spanclass="vlist"style="height:0.3011em;"><spanstyle="top:−2.55em;margin−left:0em;margin−right:0.05em;"><spanclass="pstrut"style="height:2.7em;"></span><spanclass="sizingreset−size6size3mtight"><spanclass="mordmtight"><spanclass="mordmtight">0</span></span></span></span></span><spanclass="vlist−s">​</span></span><spanclass="vlist−r"><spanclass="vlist"style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>Xjr<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>x</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">x_{j}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7167em;vertical-align:-0.2861em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight" style="margin-right:0.0572em;">j</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.2861em;"><span></span></span></span></span></span></span></span></span></span></span>y_{j}<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msub><mi>x</mi><mn>0</mn></msub></mrow><annotation encoding="application/x-tex">x_{0}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.5806em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">0</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span></span>X_{j}X0X_{0} This implies that zj=\textscNearest(\textscPathG(x0,yj),r)=yjz_{j}=\textsc{Nearest}(\textsc{Path}^{G}(x_{0},y_{j}),r)=y_{j}. Hence, \textscDistG(yj,zj)=0≤\textscDistG(x0,zj)\textsc{Dist}^{G}(y_{j},z_{j})=0\leq\textsc{Dist}^{G}(x_{0},z_{j}). ∎

By Claims 1 and 2 and the definition of yjy_{j}, we get the following useful formula for the distance between X0X_{0} and XjX_{j}, for every j∈[k]j\in[k]:

where the second equality holds if X0X_{0} and XjX_{j} are disjoint. In other words, to measure the distance between the sets X0X_{0} and XjX_{j}, we can consider the distance between the single point x0∈X0x_{0}\in X_{0} (the point closest to rr) and XjX_{j}. If X0∩Xj=∅X_{0}\cap X_{j}=\emptyset, so that yjy_{j} is defined, then we can consider the distance between x0x_{0} and the single point yj∈Xjy_{j}\in X_{j} (the point closest to X0X_{0}).

We are finally ready to prove that X0X_{0} is ss-good. Consider two arbitrary pieces of X\mathbf{X}, say X1X_{1} and X2X_{2}, such that \textscDistG(X1,X0)<s\textsc{Dist}^{G}(X_{1},X_{0})<s and \textscDistG(X2,X0)<s\textsc{Dist}^{G}(X_{2},X_{0})<s. We have to prove that \textscDistG(X1,X2)<s\textsc{Dist}^{G}(X_{1},X_{2})<s.

If X0∩X1≠∅X_{0}\cap X_{1}\neq\emptyset, then x0∈X1x_{0}\in X_{1} by Claim 1, so

where the equality holds by (1). An analogous claim holds if X0∩X2≠∅X_{0}\cap X_{2}\neq\emptyset. If X1∩X2≠∅X_{1}\cap X_{2}\neq\emptyset, then obviously \textscDistG(X1,X2)=0<s\textsc{Dist}^{G}(X_{1},X_{2})=0<s. So from now on suppose that X0∩X1=X0∩X2=X1∩X2=∅X_{0}\cap X_{1}=X_{0}\cap X_{2}=X_{1}\cap X_{2}=\emptyset. Then y1y_{1} and y2y_{2} are defined, and by (1) we have \textscDistG(y1,x0)<s\textsc{Dist}^{G}(y_{1},x_{0})<s and \textscDistG(y2,x0)<s\textsc{Dist}^{G}(y_{2},x_{0})<s.

By definition of z1z_{1} and z2z_{2}, the path x0→rx_{0}\to r must pass through both z1z_{1} and z2z_{2}. Without loss of generality, suppose that z1z_{1} comes no later than z2z_{2} on this path, so \textscDistG(x0,z1)≤\textscDistG(x0,z2)\textsc{Dist}^{G}(x_{0},z_{1})\leq\textsc{Dist}^{G}(x_{0},z_{2}), as in the illustration below:

Consider the path y1→z1→z2→y2y_{1}\to z_{1}\to z_{2}\to y_{2}. The length of this path is at most

where the first inequality holds by Claim 3 and the last equality by (1).

We have demonstrated a path of length shorter than ss from a point y1∈X1y_{1}\in X_{1} to a point y2∈X2y_{2}\in X_{2}; this proves that \textscDistG(X1,X2)<s\textsc{Dist}^{G}(X_{1},X_{2})<s. It follows that X0X_{0} is ss-good. ∎

With Lemma 4.3 in hand, we can now establish the existence of a maximin allocation for forests by using similar arguments as in Theorem 3.2. In particular, when we allocate an ss-good part Ti,jT_{i,j} to agent ii, we remove all portions of the tree that are within distance ss of Ti,jT_{i,j}, and divide the remaining cake recursively among the remaining agents.

Let GG be a forest and s>0s>0. For agents with arbitrary monotone valuations, a maximin allocation exists.

2 Cutting General Graphs

We now proceed to general graphs. Even when the graph is a simple cycle, Elkind et al. 2021b showed that a maximin allocation does not necessarily exist, but the 11-out-of-(n+1)(n+1) maximin share can be guaranteed. We present here a more general theorem analogous to Theorem 3.4. However, our theorem requires the assumption that the length of each edge is at least ss. We remark that the separation parameter ss is generally small in our motivating applications such as transition or buffer zones, so this assumption is realistic. Nevertheless, it is an interesting question whether the result continues to hold without this assumption.

Let s>0s>0. Let GG be a graph in which the length of each edge is at least ss. For any nn agents with arbitrary monotone valuations, there exists an ss-separated allocation in which each agent ii receives a connected piece with value at least MMSin+\textscFvsNum(G)\emph{MMS}_{i}^{n+\textsc{FvsNum}(G)}.

Let r:=\textscFvsNum(G)r:=\textsc{FvsNum}(G). Let u1,…,uru_{1},\ldots,u_{r} be a set of vertices such that, when they are deleted from GG, the remaining graph is a forest. For each j∈[r]j\in[r], remove an open interval of length s/2s/2 from each edge adjacent to uju_{j}. Consider the 11-out-of-(n+r)(n+r) maximin partition of each agent. For each j∈[r]j\in[r], the distance between each pair of points in the set removed due to the vertex uju_{j} is less than ss. Hence, the removed set overlaps at most one part of each agent’s partition. Therefore, once the graph becomes a forest, for every agent, at least nn parts remain. By Theorem 4.4, there exists an ss-separated allocation in which every agent ii gets at least one of her maximin parts, and therefore value at least MMSin+r\text{MMS}_{i}^{n+r}. Then, reconstruct the original graph by putting back the removed intervals of length s/2s/2. The allocation remains ss-separated. ∎

As in the case s=0s=0 (see Open Problem 3.5), we do not know whether the factor n+\textscFvsNum(G)n+\textsc{FvsNum}(G) is tight in general. Below, we present a class of graphs for which we can obtain a tight bound. In particular, we consider the family of graphs such that the feedback vertex set number of each connected component is at most 11 (that is, every connected component is either a tree, or can be made acyclic by removing a single vertex). We denote N:=min⁡(n+\textscFvsNum(G), 2n−1)N:=\min(n+\textsc{FvsNum}(G),~2n-1).

The following statements hold for any real number s>0s>0 and integer n≥1n\geq 1:

(a) Let GG be a vertex-disjoint union of graphs with FVS number ≤1\leq 1, such that the length of each edge is at least ss. For any nn agents with monotone valuations, there is an allocation in which each agent ii receives value at least MMSiN\emph{MMS}_{i}^{N}.

(b) For any integer r≥1r\geq 1, there exists a graph GG with \textscFvsNum(G)=r\textsc{FvsNum}(G)=r (specifically, a union of rr cycles and zero or more trees), and nn agents with additive valuations, such that no allocation gives each agent ii at least MMSiN−1\emph{MMS}_{i}^{N-1}.

We prove the two parts in turn. For part (a), consider a 11-out-of-NN maximin partition of each agent. Define a bipartite graph H=(X,Y,E)H=(X,Y,E), where XX is the set of agents, YY is the set of connected components of GG with FVS number 11, and a component CC is adjacent to agent ii if and only if CC contains at least one part from ii’s maximin partition.

Every bipartite graph admits unique partitions X=XS∪XLX=X_{S}\cup X_{L} and Y=YS∪YLY=Y_{S}\cup Y_{L} such that the following holds (see, e.g., Theorem 1.3 of Aigner-Horev and Segal-Halevi 2019):

There are no edges between XSX_{S} and YLY_{L};

The subgraph G[XS,YS]G[X_{S},Y_{S}] is “YY-path-saturated”, which, for our purposes, just implies that ∣XS∣>∣YS∣|X_{S}|>|Y_{S}|;

The subgraph G[XL,YL]G[X_{L},Y_{L}] admits a matching that saturates all vertices of XLX_{L}.

With this partition at hand, the cake is allocated as follows.

Every agent in XLX_{L} receives an entire component from YLY_{L} according to the matching in (iii). It follows that every such agent receives a value of at least MMSiN\text{MMS}_{i}^{N}.

Let n′:=∣XS∣n^{\prime}:=|X_{S}| and G′G^{\prime} be the subgraph of GG containing the components in YSY_{S} along with all tree components of GG. By (i), all parts in the maximin partition of every agent in XSX_{S} are contained in G′G^{\prime}. By Theorem 4.5, G′G^{\prime} admits an allocation in which each agent i∈XSi\in X_{S} receives value at least MMSin′+\textscFvsNum(G′)\text{MMS}_{i}^{n^{\prime}+\textsc{FvsNum}(G^{\prime})}. Clearly, n′+\textscFvsNum(G′)≤n+\textscFvsNum(G)n^{\prime}+\textsc{FvsNum}(G^{\prime})\leq n+\textsc{FvsNum}(G). Since the FVS number of each element of YSY_{S} equals 11, we have \textscFvsNum(G′)=∣YS∣≤n′−1\textsc{FvsNum}(G^{\prime})=|Y_{S}|\leq n^{\prime}-1 by (ii), so n′+\textscFvsNum(G′)≤2n′−1≤2n−1n^{\prime}+\textsc{FvsNum}(G^{\prime})\leq 2n^{\prime}-1\leq 2n-1. Therefore, n′+\textscFvsNum(G′)≤Nn^{\prime}+\textsc{FvsNum}(G^{\prime})\leq N, so MMSin′+\textscFvsNum(G′)≥MMSiN\text{MMS}_{i}^{n^{\prime}+\textsc{FvsNum}(G^{\prime})}\geq\text{MMS}_{i}^{N}. This completes the proof of part (a).

We now proceed to part (b). Given integers n≥1n\geq 1 and r≥1r\geq 1, we denote N=min⁡(n+r,2n−1)N=\min(n+r,2n-1). We construct a graph GG made of a disjoint union of rr cycles, and valuation functions of nn agents such that for all agents ii, MMSiN−1=1\text{MMS}_{i}^{N-1}=1, but every ss-separated allocation gives a positive value to at most n−1n-1 agents.

Case 1: r≥nr\geq n. In this case, we have N−1=2n−2N-1=2n-2. All rr cycles are of length 2s+2ε2s+2\varepsilon for 0<ε≪s0<\varepsilon\ll s. Some n−1n-1 cycles are “valuable”, i.e., each agent ii values every such cycle at 22, with a valuation evenly concentrated in two regions of length ε\varepsilon each: one at angle iπ/ni\pi/n and one at angle iπ/n+πi\pi/n+\pi (radians). The other r−(n−1)r-(n-1) cycles have no value to any agent. Every agent can partition every valuable cycle into two ss-separated regions of value 11, so MMSi2n−2=1\text{MMS}_{i}^{2n-2}=1 for every agent i∈[n]i\in[n]. But from every valuable cycle, a positive value can be allocated to at most one agent, so all in all, at most n−1n-1 agents can get a positive value.

Case 2: r≤n−1r\leq n-1. In this case, we have N−1=n+r−1N-1=n+r-1. Some r−1r-1 cycles are “small”, with length 2s+2ε2s+2\varepsilon for 0<ε≪s0<\varepsilon\ll s, and the agents’ valuations as in Case 1. The rr-th cycle is “large”, with length (n+1−r)⋅(s+ε)(n+1-r)\cdot(s+\varepsilon). Each agent ii values the large cycle at n+1−rn+1-r, with a valuation concentrated in n+1−rn+1-r small ss-separated regions of length ε\varepsilon each. Therefore, every agent can partition the large cycle into n+1−rn+1-r regions of value 11 which are ss-separated. By adding two regions for each of the r−1r-1 small cycles, we get MMSin+r−1=1\text{MMS}_{i}^{n+r-1}=1 for all i∈[n]i\in[n].

The valuable regions on the large cycle are arranged in such a way that at most n−rn-r agents can receive a positive value from the large cycle. In particular, for each i∈[n−1]i\in[n-1], the regions of agent i+1i+1 are shifted clockwise from those of agent ii by a small amount, say ε\varepsilon. This is illustrated in the figure below, where r=1r=1, n=4n=4, n+1−r=4n+1-r=4, and the length of each side of the square is s+εs+\varepsilon. Each color denotes the valuable regions of a single agent.

As at most one agent can receive a positive value from each of the r−1r-1 small cycles, at most (r−1)+(n−r)=n−1(r-1)+(n-r)=n-1 agents overall can receive a positive value. This completes the proof of Case 2, and therefore the proof of part (b).

Note that the impossibility result can be extended to graphs with any number of trees (in addition to the rr cycles), by simply assuming that all trees have a value of 0 to all agents. ∎

Theorem 4.6 shows that Theorem 4.5 is tight for unions of trees and cycles when the number of cycles is less than nn. However, the exact factor for other graphs remains open.

Discussion

In this work, we have studied the division of a graphical cake using the maximin share notion, both with and without separation constraints. Our most technically challenging result shows that a maximin allocation exists for positive separation whenever the graph is acyclic. A tempting approach to simplify this proof is by using the “last diminisher” method, wherein each agent can trim a proposed piece as long as the remaining piece after trimming still yields value at least the agent’s maximin share. Indeed, this method was used by Bouveret et al. 2017 to establish the existence result for trees in the context of indivisible goods, and the algorithm of Elkind et al. 2021b for interval cakes can also be seen as a version of last diminisher. We remark here that the approach does not work in our setting with separation. Indeed, consider the subtree in Figure 1, where two of Alice’s parts in her maximin partition are bold, while one of Bob’s parts is dashed. The last diminisher method may allocate Bob’s part to him; however, when we take the separation requirement into account, we cannot allocate either of Alice’s parts in its entirety. Note that the dashed piece is not ss-good. This example precisely demonstrates why, in the proof of Theorem 4.4, we need the elaborate lemmas on real trees in order to guarantee the existence of an ss-good piece.

More generally, our work builds upon an active line of research that incorporates realistic constraints in fair division problems. We believe that identifying and studying such considerations will lead to technically intriguing questions as well as practically useful fairness guarantees.

Acknowledgments

This work was partially supported by the European Research Council (ERC) under grant number 639945 (ACCORD), by the Israel Science Foundation under grant number 712/20, and by an NUS Start-up Grant. We would like to thank the anonymous reviewers for their valuable comments.

References