Finding Optimal 1-Endpoint-Crossing Trees

Dependency parsing algorithms capable of producing the types of crossing dependencies seen in natural language sentences have traditionally been orders of magnitude slower than algorithms for projective trees. For 95.8–99.8% of dependency parses in various natural language treebanks, whenever an edge is crossed, the edges that cross it all have a common vertex. The optimal dependency tree that satisfies this 1-Endpoint-Crossing property can be found with an O(n4) parsing algorithm that recursively combines forests over intervals with one exterior point. 1-Endpoint-Crossing trees also have natural connections to linguistics and another class of graphs that has been studied in NLP.


Introduction
Dependency parsing is one of the fundamental problems in natural language processing today, with applications such as machine translation (Ding and Palmer, 2005), information extraction (Culotta and Sorensen, 2004), and question answering (Cui et al., 2005). Most high-accuracy graph-based dependency parsers (Koo and Collins, 2010;Rush and Petrov, 2012;Zhang and McDonald, 2012) find the highest-scoring projective trees (in which no edges cross), despite the fact that a large proportion of natural language sentences are non-projective. Projective trees can be found in O(n 3 ) time (Eisner, 2000), but cover only 63.6% of sentences in some natural language treebanks (Table 1).
The class of directed spanning trees covers all treebank trees and can be parsed in O(n 2 ) with edge-based features (McDonald et al., 2005), but it is NP-hard to find the maximum scoring such tree with grandparent or sibling features (McDonald and Pereira, 2006;McDonald and Satta, 2007).
There are various existing definitions of mildly non-projective trees with better empirical coverage than projective trees that do not have the hardness of extensibility that spanning trees do. However, these have had parsing algorithms that are orders of magnitude slower than the projective case or the edgebased spanning tree case. For example, well-nested dependency trees with block degree 2 (Kuhlmann, 2013) cover at least 95.4% of natural language structures, but have a parsing time of O(n 7 ) (Gómez- Rodríguez et al., 2011).
No previously defined class of trees simultaneously has high coverage and low-degree polynomial algorithms for parsing, allowing grandparent or sibling features.
We propose 1-Endpoint-Crossing trees, in which for any edge that is crossed, all other edges that cross that edge share an endpoint. While simple to state, this property covers 95.8% or more of dependency parses in natural language treebanks (Table 1). The optimal 1-Endpoint-Crossing tree can be found in faster asymptotic time than any previously proposed mildly non-projective dependency parsing algorithm. We show how any 1-Endpoint-Crossing tree can be decomposed into isolated sets of intervals with one exterior point (Section 3). This is the key insight that allows efficient parsing; the O(n 4 ) parsing algorithm is presented in Section 4. 1-Endpoint-Crossing trees are a subclass of 2-planar graphs (Section 5.1), a class that has been studied in NLP. 1-Endpoint-Crossing trees also have some linguistic interpretation (pairs of cross serial verbs produce 1-Endpoint-Crossing trees, Section 5.2).
2 Definitions of Non-Projectivity Definition 1. Edges e and f cross if e and f have distinct endpoints and exactly one of the endpoints of f lies between the endpoints of e.
Definition 2. A dependency tree is 1-Endpoint-Crossing if for any edge e, all edges that cross e share an endpoint p. Table 1 shows the percentage of dependency parses in the CoNLL-X training sets that are 1-Endpoint-Crossing trees. Across six languages with varying amounts of non-projectivity, 95.8-99.8% of dependency parses in treebanks are 1-Endpoint-Crossing trees. 1 We next review and compare other relevant definitions of non-projectivity from prior work: wellnested with block degree 2, gap-minding, projective, and 2-planar.
The definitions of block degree and wellnestedness are given below: Definition 3. For each node u in the tree, a block of the node is "a longest segment consisting of descendants of u." (Kuhlmann, 2013). The block-degree of u is "the number of distinct blocks of u". The block degree of a tree is the maximum block degree of any of its nodes. The gap degree is the number of gaps between these blocks, and so by definition is one less than the block degree. (Kuhlmann, 2013) Definition 4. Two trees "T 1 and T 2 interleave iff there are nodes l 1 ,r 1 ∈ T 1 and l 2 ,r 2 ∈ T 2 such that l 1 < l 2 < r 1 < r 2 ." A tree is well-nested if no two disjoint subtrees interleave. (Bodirsky et al., 2005) As can be seen in Table 1, 95.4%-99.9% of dependency parses across treebanks are both well-nested and have block degree 2. The optimal such tree can be found in O(n 7 ) time and O(n 5 ) space (Gómez-Rodríguez et al., 2011). 1 Conventional edges from the artificial root node to the root(s) of the sentence reduce the empirical coverage of 1-Endpoint-Crossing trees. Excluding these artificial root edges, the empirical coverage for Dutch rises to 12949 (97.0%). These edges have no effect on the coverage of well-nested trees with block degree at most 2, gap-minding trees, or projective trees. Figure 1: 1a is 1-Endpoint-Crossing, but is neither block degree 2 nor well-nested; 1b is gap-minding but not 2-planar.
Definition 5. A tree is gap-minding if it is wellnested, has gap degree at most 1, and has gap inheritance degree 0. Gap inheritance degree 0 requires that there are no child nodes with descendants in more than one of their parent's blocks. (Pitler et al., 2012) Gap-minding trees can be parsed in O(n 5 ) (Pitler et al., 2012). They have slightly less empirical coverage, however: 90.4-97.7% (Table 1).
Definition 6. A tree is projective if it has block degree 1 (gap degree 0). This definition has the least coverage (as low as 63.6% for Dutch), but can be parsed in O(n 3 ) (Eisner, 2000).
Definition 7. A tree is 2-planar if each edge can be drawn either above or below the sentence such that no edges cross (Gómez-Rodríguez and Nivre, 2010).
Gómez-Rodríguez and Nivre (2010) presented a transition-based parser for 2-planar trees, but there is no known globally optimal parsing algorithm for 2-planar trees.

Edges (and their Crossing Point) Define
Isolated Crossing Regions We introduce notation to facilitate the discussion:  Definition 8. Within a 1-Endpoint-Crossing tree, the (crossing) pencil 2 of an edge e (P(e)) is defined as the set of edges (sharing an endpoint) that cross e. The (crossing pencil) point of an edge e (Pt(e)) is defined as the endpoint that all edges in P(e) share.
We will use e uv to indicate an edge in either direction between u and v, i.e., either u → v or u ← v.
Before defining the parsing algorithm, we first give some intuition by analogy to parsing for projective trees. (This argument mirrors that of Eisner (2000, pps.38-39).) Projective trees can be produced using dynamic programming over intervals. Intervals are sufficient for projective trees: consider any edge e uv in a projective tree.
The vertices in (u, v) must only have edges to vertices in [u, v]. If there were an edge between a vertex in (u, v) and a vertex outside [u, v], such an edge would cross e uv , which would contradict the assumption of projectivity. Thus every edge in a projective tree creates one interior interval isolated from the rest of the tree, allowing dynamic programming over intervals. We can analyze the case of 1-Endpoint-Crossing trees in a similar fashion: Definition 9. An isolated interval [i, j] has no edges between the vertices in (i, j) and the vertices outside of [i, j]. An interval and one exterior vertex [i, j] ∪ {x} is called an isolated crossing region if the following two conditions are satisfied: 1. There are no edges between the vertices ∈ (i, j) and vertices / ∈ [i, j] ∪ {x} 2. None of the edges between x and vertices ∈ (i, j) are crossed by any edges with both endpoints ∈ (i, j) Proof. First note that as p = Pt(e uv ), P(e uv ) is non-empty: there must be at least one edge between vertices ∈ (u, v) and vertices / ∈ [u, v]. p is either / ∈ [u, v] (i.e., p = l∨p = r) or ∈ (u, v) (i.e., p = m): Case 1: p = l ∨ p = r: Assume without loss of generality that u < v < p (i.e., p = r).
(a) [u, v] ∪ {p} is an isolated crossing region ( Figure 2a): Condition 1: Assume for the sake of contradiction that there were an edge between a vertex ∈ (u, v) and a vertex / ∈ [u, v]∪{p}. Then such an edge would cross e uv without having an endpoint at p, which contradicts the 1-Endpoint-Crossing property for e uv .
Condition 2: Assume that for some e pa such that a ∈ (u, v), e pa was crossed by an edge in the interior of (u, v). The interior edge would not share an endpoint with e uv ; since e uv also crosses e pa , this contradicts the 1-Endpoint-Crossing property for e pa .
, which implies that e ab crosses the edges in P(e uv ); as e uv does not share a vertex with e ab , this contradicts the 1-Endpoint-Crossing property for all edges in P(e uv ).
Condition 2: Assume that for some e ua such that a ∈ (v, p), e ua was crossed by an edge in the interior of (v, p). e ua would also be crossed by all the edges in P(e uv ); as the interior edge would not share an endpoint with any of the edges in P(e uv ), this would contradict the 1-Endpoint-Crossing property for e ua .
. Then e ab crosses all edges in P(e uv ); as e ab does not share an endpoint with e uv , this contradicts the 1-Endpoint-Crossing property for the edges in P(e uv ). u, v]. Then e ab crosses e uv ; since a = p ∧ b = p, this violates the 1-Endpoint-Crossing property for e uv .
Condition 2: Assume that for some e va with a ∈ (u, p), e va was crossed by an edge in the interior of (u, v). e va is also crossed by all the edges in P(e uv ); as the interior edge will not share an endpoint with the edges in P(e uv ), this contradicts the 1-Endpoint-Crossing property for e va .

Parsing Algorithm
The optimal 1-Endpoint-Crossing tree can be found using a dynamic programming algorithm that exploits the fact that edges and their crossing points define intervals and isolated crossing regions. This section assumes an arc-factored model, in which the score of a tree is defined as the sum of the scores of its edges; scoring functions for edges are generally learned from data. The full dynamic program is shown in Appendix A. The final answer must be a valid dependency tree, which requires each word to have exactly one parent and prohibits cycles. We use booleans (b i , b j , b x ) for each sub-problem, in which the boolean is set to true if and only if the solution to the sub-problem must contain the incoming (parent) edge for the corresponding boundary point. We use the suffix AFromB for a sub-problem to enforce that a boundary point A must be descended from boundary point B (to avoid cycles). We will occasionally mention these issues, (a) If l ∈ (k, j]: but for simplicity focus the discussion on the decomposition into crossing regions and the maintenance of the 1-Endpoint-Crossing property. Edge direction does not affect these points of focus, and so we will refer simply to S[e uv ] to mean the score of either the edge from u to v or vice-versa. In the following subsections, we show that the optimal parse for each type of sub-problem can be decomposed into smaller valid sub-problems. If we take the maximum over all these possible combinations of smaller solutions, we can find the maximum scoring parse for that sub-problem. Note that the overall tree is a valid sub-problem (over the interval [0, n]), so the argument will also hold for finding the optimal overall tree. Each individual vertex and each pair of adjacent vertices (with no edges) trivially form isolated intervals (as there is no interior); this forms the base case of the dynamic program.
The overall dynamic program takes O(n 4 ) time: there are O(n 2 ) interval sub-problems, each of which needs two free split points to find the maximum, and O(n 3 ) region sub-problems, each of which is a maximization over one free split point.

Decomposing an Int sub-problem
Consider an isolated interval sub-problem Int[i, j]. There are three cases: (1) there are no edges between i and the rest of the interval, (2) the longest edge incident to i is not crossed, (3) the longest edge incident to i is crossed. An Int sub-problem can be decomposed into smaller valid sub-problems in each of these three cases. Finding the optimal Int forest can be done by taking the maximum over these cases: No edges between i and [i + 1, j]: The same set of edges is also a valid Int[i + 1, j] sub-problem. b i must be true for the Int[i + 1, j] sub-problem to ensure i + 1 receives a parent. Furthest edge from i is not crossed: If the furthest edge is to j, the problem can be decomposed into S[e ij ] + Int [i, j], as that edge has no effect on the interior of the interval. Clearly, this is only applicable if the boundary point needed a parent (as indicated by the booleans) and the boolean must then be updated accordingly. If the furthest edge is to some k in (i, j), the problem is decomposed into Furthest edge from i is crossed: This is the most interesting case, which uses two split points: the other endpoint of the edge (k), and l = Pt(e ik ). The dynamic program depends on the order of k and l. l / ∈ (i, k) (Figure 4a): By Lemma 1, [i, k] ∪ {l} and [k, l]∪{i} form isolated regions. (l, j] is the remainder of the interval, and the only vertex from [i, l) that can have edges into (l, j] is k: (i, k) and (k, l) are part of isolated regions, and i is ruled out because k was i's furthest neighbor.
If at least one edge from k into (l, j] (the dashed line in Figure 4a) exists, the decomposition is as in Figure 4a, Case i; otherwise, it is as in Figure 4a Figure 4b), then all of the edges in P(e ik ) must choose i as their Pt, and so these edges cannot be crossed at all in the region [k, j] ∪ {l}, and there cannot be any edges from k into (i, l). If there are no such edges (Case ii in 4b), then k must be a valid Pt for all edges in P(e ik ), and so there can both be edges from k into (i, l) and [k, j] ∪ {l} may be of type L (allowing crossings with an endpoint at k).

Decomposing an LR sub-problem
An LR sub-problem is over an isolated crossing region [i, j] ∪ {x}, such that edges from x into (i, j) may be crossed by edges with an endpoint at either i or j. This sub-problem is only defined when neither i nor j get their parent from this sub-problem. From a top-down perspective, this case is only used when there will be an edge between i and j (as in one of the sub-problems in Figure 4a, Case ii).
If none of the edges from x are crossed by any edges with an endpoint at i, this can be considered an R problem. Similarly, if none are crossed by any edges with an endpoint at j, this may be considered an L sub-problem. The only case which needs discussion is when both edges with an endpoint at i and also at j cross edges from x; see Figure 3c for a schematic. In that scenario, there must exist a split point such that: (1) to the left of the point, all edges crossing x-edges have an endpoint at i, and to the right of the point, all such edges have an endpoint at j, and (2) no edges in the region cross the split point.
Let r i be i's rightmost child in (i, j); let l j be j's leftmost child in (i, j). Every edge from x into (i, r i ) is crossed by e ir i ; every edge between x and (l j , j) is crossed by e l j j . e ir i cannot cross e l j j , as that would either violate 1-Endpoint-Crossing (because of the x-interior edges) or create a cycle (if both children are also connected by an edge to x). r i and l j also cannot be equal: as neither i nor j may be assigned a parent, they must both be in the direction of the child, and the child cannot have multiple parents. Thus, r i is to the left of l j .
Any split point between r i and l j clearly satisfies (1). There is at least one point within [r i , l j ] that satisfies (2) as long as there is not a chain of crossing edges from e ir i to e l j j . The proof is omitted for space reasons, but such a chain can be ruled out using a counting argument similar to that in the proof in Section 5.1. The decomposition is: L[i, k, x] + R[k, j, x] for some k ∈ (i, j).

Decomposing an N sub-problem
Consider the maximum scoring forest of type N over [i, j] ∪ {x} (Figure 3d; no edges from x are crossed in this sub-problem). If there are no edges from x, then it is also a valid Int[i, j] sub-problem. If there are edges between x and the endpoints i or j, then the forest with that edge removed is still a valid N sub-problem (with the ancestor and parent bookkeeping updated). Otherwise, if there are edges between x and (i, j), choose the neighbor of x closest to j (call it k). Since the edge e xk is not crossed, there are no edges from [i, k) into (k, j]; since k was the neighbor of x closest to j, there are no edges from x into (k, j]. Thus, the region decomposes into As an aside, if b x was true (x needed a parent from this sub-problem), and k was a child of x, then x's parent must come from the [i, k] ∪ {x} subproblem. However, it cannot be a descendant of k, as that would cause a cycle. Thus in this case, we call the sub-problem a N _XF romI problem, to indicate that x needs a parent, i and k do not, and x must be descended from i, not k.

Decomposing an L or R sub-problem
An L sub-problem over [i, j] ∪ {x} requires that any edges in this region that cross an edge with an endpoint at x have an endpoint at i (the left endpoint). If there are no edges between x and [i, j] in an L subproblem, then it is also a valid Int sub-problem over [i, j]. If there are edges between x and i or j, then the sub-problem can be decomposed into that edge plus the rest of the forest with that edge removed.
The interesting case is when there are edges between x and the interior ( Figure 5). Let k be the neighbor of x within (i, j) that is furthest from i. As all edges that cross e xk will have an endpoint at i, there are no edges between (i, k) and (k, j]. Combined with the fact that k was the neighbor of x closest to j, we have that [i, k] ∪ {x} must form an iso- If there are additional edges between x and the interior (Case i in 5), all of the edges from i into (k, j] cross both the edge e xk and the other edges from x into (i, k). The Pt for all these edges must therefore be x, and as x is not in the region [k, j] ∪ {i}, those edges cannot be crossed at all in that region (i.e., [k, j] ∪ {i} must be of type N ). If there are no additional edges from x into (i, k) (Case ii in Figure 5), then all of the edges from i into (k, j) must choose either x or k as their Pt. As there will be no more edges from x, choosing k as their Pt allows strictly more trees, and so [k, j] ∪ {i} can be of type L (allowing edges from i to be crossed in that region by edges with an endpoint at k).
An R sub-problem is identical, with k instead chosen to be the neighbor of x furthest from j.

Graph Theory: All 1-Endpoint-Crossing
Trees are 2-Planar The 2-planar characterization of dependency structures in Gómez-Rodríguez and Nivre (2010) exactly correspond to 2-page book embeddings in graph theory: an embedding of the vertices in a graph onto a line (by analogy, along the spine of a book), and the edges of the graph onto one of 2 (more generally, k) half-planes (pages of the book) such that no edges on the same page cross (Bernhart and Kainen, 1979). The problem of finding an embedding that minimizes the number of pages required is a natural formulation of many problems arising in disparate areas of computer science, for example, sorting a sequence using the minimum number of stacks (Even and Itai, 1971), or constructing fault-tolerant layouts in VLSI design (Chung et al., 1987). In this section we prove 1-Endpoint-Crossing ⊆ 2-planar. These classes are not equal (Figure 6). We first prove some properties about the crossings graphs (Gómez-Rodríguez and Nivre, 2010) of 1-Endpoint-Crossing trees. The crossings graph of a (a,b) (a,c) Figure 7: The crossing graphs for Figures 1a and 1b. graph has a vertex corresponding to each edge in the original, and an edge between two vertices if the two edges they correspond to cross. The crossings graphs for the dependency trees in Figures 1a and  1b are shown in Figures 7a and 7b, respectively.
Lemma 2. No 1-Endpoint-Crossing tree has a cycle of length 3 in its crossings graph.
Proof. Assume there existed a cycle e 1 , e 2 , e 3 . e 1 and e 3 must share an endpoint, as they both cross e 2 . Since e 1 and e 3 share an endpoint, e 1 and e 3 do not cross. Contradiction.
Lemma 3. Any odd cycle of size n (n ≥ 4) in a crossings graph of a 1-Endpoint-Crossing tree uses at most n distinct vertices in the original graph.
Proof. Let e 1 , e 2 , ..., e n be an odd cycle in a crossings graph of a 1-Endpoint-Crossing tree with n ≥ 4. Since n ≥ 4, e 1 , e 2 , e n−1 , and e n are distinct edges. Let a be the vertex that e 1 and e n−1 share (because they both cross e n ) and let b be the vertex that e 2 and e n share (both cross e 1 ). Note that e 1 and e n−1 cannot contain b and that e 2 and e n cannot contain a (otherwise they would not cross an edge adjacent to them along the cycle).
We will now consider how many vertices each edge can introduce that are distinct from all vertices previously seen in the cycle. e 1 and e 2 necessarily introduce two distinct vertices each.
Let e o be the first odd edge that contains b (we know one exists since e n contains b). (o is at least 3, since e 1 does not contain b.) e o 's other vertex must be the one shared with e o−2 (e o−2 does not contain b, since e o was the first odd edge to contain b). Therefore, both of e o 's vertices have already been seen along the cycle.
Similarly, let e e be the first even edge that contains an a. By the same reasoning, e e must not introduce any new vertices.
All other edges e i such that i > 2 and e i = e o and e i = e e introduce at most one new vertex, since one must be shared with the edge e i−2 . There are n − 4 such edges.
Counting up all possibilities, the maximum number of distinct vertices is 4 + (n − 4) = n.
Proof. Assume there existed an odd cycle in the crossings graph of a 1-Endpoint-Crossing tree. The cycle has size at least 5 (by Lemma 2). There are at least as many edges as vertices in the subgraph of the forest induced by the vertices used in the cycle (by Lemma 3). That implies the existence of a cycle in the original graph, contradicting that the original graph was a tree.
Since there are no odd cycles in the crossings graph, the crossings graph of edges is bipartite. Each side of the bipartite graph can be assigned to a page, such that no two edges on the same page cross. Therefore, the original graph was 2-planar.

Linguistics: Cross-serial Verb Constructions and Successive Cyclicity
Cross-serial verb constructions were used to provide evidence for the "non-context-freeness" of natural language (Shieber, 1985). Cross-serial verb constructions with two verbs form 1-Endpoint-Crossing trees. Below is a cross-serial sentence from Swiss-German, from (1) in Shieber (1985): das mer em Hans es huus hälfed aastriiche that we HansDAT the houseACC helped paint The edges (that, helped ), (helped , we), and (helped , Hans) are each only crossed by an edge with an endpoint at paint; the edge (paint, house) is only crossed by edges with an endpoint at helped. More generally, with a set of two cross serial verbs in a subordinate clause, each verb should suffice as the crossing point for all edges incident to the other verb that are crossed.
Cross-serial constructions with three or more verbs would have dependency trees that violate 1-  Figure 8: An example of wh-movement over a potentially unbounded number of clauses. The edges between the heads of each clause cross the edges from trace to trace, but all obey 1-Endpoint-Crossing.
Endpoint-Crossing. Psycholinguistically, between two and three verbs is exactly where there is a large change in the sentence processing abilities of human listeners (based on both grammatical judgments and scores on a comprehension task) (Bach et al., 1986). More speculatively, there may be a connection between the form of 1-Endpoint-Crossing trees and phases (roughly, propositional units such as clauses) in Minimalism (Chomsky et al., 1998). Figure 8 shows an example of wh-movement over a potentially unbounded number of clauses. The phaseimpenetrability condition (PIC) states that only the head of the phase and elements that have moved to its edge are accessible to the rest of the sentence (Chomsky et al., 1998, p.22). Movement is therefore required to be successive cyclic, with a moved element leaving a chain of traces at the edge of each clause on its way to its final pronounced location (Chomsky, 1981). In Figure 8, notice that the crossing edges form a repeated pattern that obeys the 1-Endpoint-Crossing property. More generally, we suspect that trees satisfying the PIC will tend to also be 1-Endpoint-Crossing. Furthermore, if the traces were not at the edge of each clause, and instead were positioned between a head and one of its arguments, 1-Endpoint-Crossing would be violated. For example, if t 2 in Figure 8 were between C and said 2 , then the edge (t 1 , t 2 ) would cross (say, said 1 ), (said 1 , said 2 ), and (C, said 2 ), which do not all share an endpoint. An exploration of these linguistic connections may be an interesting avenue for further research.

Conclusions
1-Endpoint-Crossing trees characterize over 95% of structures found in natural language treebank, and can be parsed in only a factor of n more time than projective trees. The dynamic programming algorithm for projective trees (Eisner, 2000) has been extended to handle higher order factors (McDonald and Pereira, 2006;Carreras, 2007;Koo and Collins, 2010), adding at most a factor of n to the edgebased running time; it would be interesting to extend the algorithm presented here to include higher order factors. 1-Endpoint-Crossing is a condition on edges, while properties such as well-nestedness or block degree are framed in terms of subtrees. Three edges will always suffice as a certificate of a 1-Endpoint-Crossing violation (two vertex-disjoint edges that both cross a third). In contrast, for a property like ill-nestedness, two nodes might have a least common ancestor arbitrarily far away, and so one might need the entire graph to verify whether the sub-trees rooted at those nodes are disjoint and ill-nested. We have discussed cross-serial dependencies; a further exploration of which linguistic phenomena would and would not have 1-Endpoint-Crossing dependency trees may be revealing.

Acknowledgments
We would like to thank Julie Legate for an interesting discussion. This material is based upon work supported under a National Science Foundation Graduate Research Fellowship, NSF Award CCF 1137084, and Army Research Office MURI grant W911NF-07-1-0216.
A Dynamic Program to find the maximum scoring 1-Endpoint-Crossing Tree Input: Matrix S: S[i, j] is the score of the directed edge (i, j) Output: Maximum score of a 1-Endpoint-Crossing tree over vertices [0, n], rooted at 0 Shorthand for booleans: T F (x, S) := if x = T , exactly one of the set S is true if x = F , all of the set S must be false bi, bj, bx are true iff the corresponding boundary point has its incoming edge (parent) in that sub-problem. For the LR subproblem, bi and bj are always false, and so omitted. For all sub-problems with the suffix AF romB, the boundary point A has its parent edge in the sub-problem solution; the other two boundary points do not. For example, L_XF romI would correspond to having booleans bi = bj = F and bx = T , with the restriction that x must be a descendant of i.