arXiv:1806.09992v1 [cs.DS] 26 Jun 2018 ein[3,o negon iedsg 3] Alternativel pr [30]. planning fashion. design combinatorial mine spatial underground in constrai or convexity as [23], such of design sets, kind convex some geometrically satisfy of solutio to feasible required are problems, that optimization practical many In Introduction 1 ceuig[4.Rcnl,aprmti eso fteclos the of version [10]. parametric Eppstein by a Recently, transport [34]. [28], applicatioscheduling targeting military practical instance, many For Again, acycl problem. is closed. graph downward convexity directed being Here, of the order. maximum-weigh partial where a a case of find downset the maximum-weight to In asked are edges. we outgoing and weights, vertex tive) n w etcso h ust hspriua a fdefinin of way particular a This of vertices subset. as the to the referred contain of which vertices vertices two particul of any In subsets graphs. as in graphs convexity of abstraction binatorial h pca ae ftes[,2]adsltgah 5 eekn were [5] graphs split and 24] [1, trees solvable. of cases solve to special algorithm the polynomial-time a su give convex We maximum-weight exac a graph. finding chordal convex of a problem forms the consider and We properties nice specific has tutr facodlgahfo h on fve fisconv fo results its algorithmic of two be view of a of graphs. generalization chordal on a point as the relies seen from design be graph Its can chordal a sets. of ordered structure on problem similar the ntecouepolm[2,w r ie ietdgahwit graph directed a given are we [32], problem closure the In ntersmnlppr abradJmsn[3 eeoe th developed [13] Jamison and Farber paper, seminal their In u loih o hra rpsmksueo nagrtmdu algorithm an of use makes graphs chordal for algorithm Our ovxSti hra Graph Chordal a in Set Convex tde pca ae ntesadsltgah.I lohpest b to graphs happens directed problem. and also the sets It for gen ordered algorithm partially It graphs. polynomial-time in split problem m and closure graph. a the trees chordal find to in vertex-weighted to cases is given special problem a The studied subse of set. vertice A the subset the of more. contains convex vertices it or two if four any convex between length (monophonically) paths of is cycle graph induced chordal no a with graphs of class idn Maximum-Weight a Finding ecnie aua obntra piiainpolmo chorda on problem optimization combinatorial natural a consider We oohncconvexity monophonic enCria,Ja-alDinn eoMerckx Keno Doignon, Jean-Paul Cardinal, Jean h olcino oohnccne eso graph a of sets convex monophonic of collection The . Abstract 1 to ewr ein[3 n job and [33] design network ation ,cneiycnb endi a in defined be can convexity y, r hydfie ovxst in sets convex defined they ar, scnito n rmr sets more or one of consist ns r rbe a enstudied been has problem ure re n pi rps oall to graphs, split and trees r bes[5,eetrldistrict electoral [35], oblems sitrrtda h property the as interpreted is h rbe.Utlnw only now, Until problem. the t hycntk h form the take can They nt. saerltdt h closure the to related are ns w ob polynomial-time be to own lcodesptsbetween paths chordless ll l ftegahi chordal. is graph the if tly c hsaonst n a find to amounts this ic, trudrtnigo the of understanding tter ovxt nagahis graph a in convexity g xgoer.Teresults The geometry. ex sto vertex-weighted a of bset onain facom- a of foundations e etxsbe ihno with subset vertex t rlzspreviously eralizes egv h first the give We . falchordless all of s lsl related closely e pstv rnega- or (positive h oPcr 3]for [32] Picard to e aximum-weight fvrie of vertices of t rps the graphs, l 1.1 Previous works

The notion of a convex geometry appears in various contexts in and . Dilworth [7] first examined structures very close to convex in terms of lattice theory. The convex geometries were formally introduced by Jamison [21, 22] and Edelman and Jamison [8] in 1985. Later, Korte, Lov´asz and Schrader [25] considered , which is the dual concept to the one of a convex geometry, as a subclass of greedoids. Today, the concept of a convex geometry (or ) appears in many fields of mathematics such as formal language theory (Boyd and Faigle [4]), choice theory (Koshevoy [26]), game theory (Algaba [2]) and mathematical psychology (Falmagne and Doignon [12]) among others. When weights are assigned to the points of the convex geometry, the natural question of finding a convex set with maximum-weight arises. Particular subproblems are the closure problem [32], the maximum-weight subtree problem [1, 24], the maximum-weight path-closed set [17], or in a more geometrical setting, some variants of the minimum k- gons problem [11]. A more recent example is the problem of finding a maximum-weight convex set in a split graph [5]. For all of these problems, polynomial-time algorithms were published. We also mention that, without focusing on algorithms, Korte and Lov´asz [24] gives linear characterizations of the convex set polytope for certain classes of antimatroids. Searching for a general efficient algorithm to obtain a maximum-weight convex set in convex geometries seems hopeless because the problem is NP -hard even for special cases, see Eppstein [9] and Cardinal, Doignon and Merckx [5]. However, searching for a polynomial-time algorithm for certain classes of convex geometries could reveal bridges between mathematical areas and lead to better understanding of the underlying mathe- matical objects. Chordal graphs and their representations have generated an extensive literature. See for instance Blair and Peyton [3], McKee and McMorris [27] or Golumbic [16] for theoretical and practical applications in various fields such as computational biology, phylogenetic, database, sparse matrix computation and statistics. But, despite a significant number of results about chordal graphs, there was to our knowledge, no polynomial-time algorithm to find a maximum-weight convex set.

1.2 Structure of the paper

In the next section, we give basic definitions and notation regarding convex geometries, graphs and posets, and formally define the optimization problem we consider. We also give the definition of the clique-separator graph of a chordal graph, which will be instrumental in what follows. In Section 3, we give a procedure solving the problem in a special family of instances. For this family, the problem is reduced to the closure problem in a partially ordered set. In Section 4 we generalize the algorithm to handle arbitrary chordal graphs and argue that it runs in polynomial time.

2 Preliminaries

We review here some basic notation and results for graphs and convex geometries, we also formally define the problems we investigate.

2 2.1 Notation for graphs

A (simple) graph G is a pair (V, E) where V is the (finite) set of vertices and E the set of edges, for a background on we recommend the book by Diestel [6]. A path is a sequence of distinct vertices (v1, . . . , vn) such that {vi, vi+1} ∈ E for all i in {1,...,n − 1}. The path is chordless if no two vertices are connected by an edge that is not in the path. From a path p = (v1, . . . , vn) we can extract a chordless path by taking a shortest path between v1 and vn in the subgraph induced by the vertices in p. The graph is connected if for any u, v in V there is a path (u, . . . , v). A connected component of G is a maximal connected subgraph of G. Each vertex belongs to exactly one connected component, as does each edge. A cycle is a path (v1, . . . , vn) such that {vn, v1} is an edge. A cycle is chordless if no two vertices of the cycle are connected by an edge that does not itself belong to the cycle. A graph is chordal if every chordless cycle in the graph has at most three vertices. For V ′ ⊆ V we denote by N(V ′) the set of vertices w in V \ V ′ such that {w, v}∈ E for some v in V ′. We write N(v) for N({v}). A clique K of G is a set of pairwise adjacent vertices, we say that K is a maximal ′ ′ clique if there is no clique K of G such that K ⊂ K . We denote by KG the set of all maximal cliques in G. A separator S of G is a set of vertices such that there exist two vertices u, v in V \ S connected by a path in the graph but not in G − S. We say that S is a minimal separator if there is no separator S′ of G such that S′ ⊂ S. For u, v in V , a subset S of V \ {u, v} is a uv-separator if u and v are connected in G but not in G − S. The set S is a minimal vertex separator of G if S is a uv-separator for some u, v in V and S does not strictly contain any uv-separator. Note that any minimal separator is also a minimal vertex separator, but the converse does not hold in general. We denote by SG the set of all minimal vertex separators in G. Note that in chordal graphs, every minimal vertex separator is a clique. We observe that for any chordal graph G = (V, E) we have |KG| 6 |V | and |SG| 6 |V |− 1, the proofs of those inequalities can be found in Fulkerson and Gross [14], and Ho and Lee [18] respectively.

2.2 Convex geometries on posets and chordal graphs

A set system (V, C), where V is a finite set of elements and C ⊆ 2V , is a convex geometry when

∅ ∈C,

∀C1,C2 ∈C : C1 ∩ C2 ∈C, ∀C ∈C\{V }, ∃ c ∈ V \ C : C ∪ {c}∈C.

The convex sets of the convex geometry (V, C) are the members of C. The feasible sets are the complements in V of the convex sets. An antimatroid (or learning space [12]) is a pair (V, F) such that (V, F ∁) is a convex geometry where F ∁ = {V \ F : F ∈ F}. All results on antimatroids have their counterpart for convex geometries. We recall that a partially ordered set (or poset) P is a pair (V, 6) formed of a finite set V and a binary relation 6 over V which is reflexive, antisymmetric, and transitive. For a poset (V, 6) an ideal I is a subset of V such that for all elements a in I and b in V , if b 6 a, then b is also in I. The ideals are also known as downsets. We call idl(P ) the set

3 of ideals in P . For u, v in V , we say that v covers u in P with u 6= v, if u 6 v and there is no x in V \ {u, v} such that u 6 x 6 v. One particular class of convex geometries described by Farber and Jamison [13] comes from the ideals of a poset. More precisely, let (V, 6) be a poset, then (V, idl(V, ≤)) is a convex geometry called a downset alignment. Thus the convex sets in (V, idl(V, ≤)) are the ideals in (V, 6). The downset alignments are the only convex geometries closed under union. For a graph G = (V, E), a set C of vertices is a monophonically convex set (m-convex set, or convex set) if C contains every vertex on every chordless path between vertices in C. We denote with CG the set of m-convex sets of G. It happens that (V, CG), is a convex geometry if and only if G is chordal (Farber and Jamison [13]). Many classical problems in combinatorial optimization have the following form. For a set system (V, C) and for a function w : V → R, find a set C of C maximizing the value of

w(C)= w(c). X c∈C

For instance, the problem is known to be efficiently solvable for the system of independent sets of a matroid, thanks to the the greedy algorithm (see Oxley [29]). Since convex geometries capture a combinatorial abstraction of convexity in the same way as matroids capture linear dependence, the question of finding a convex set of maximum-weight arises naturally. The problem of finding efficiently a maximum-weight convex set in a poset was solved by Picard [32]. The described algorithm calls as a subroutine a maximum flow algorithm n2 (for instance Goldberg and Tarjan [15]) and runs in O(mn log( m )) time, where n and m are respectively the number of elements and the number of cover relations in the poset.

2.3 The clique-separator graph for chordal graphs

Ibarra [20] introduces the clique-separator graph for chordal graphs. For a chordal graph G, he defines a mixed graph where the nodes are the maximal cliques and minimal vertex separators of G. Moreover, the (directed) arcs and (undirected) edges respectively repre- sent the containment relations between the maximal cliques and minimal vertex separators of G. The clique-separator graph G of a chordal graph G has a set of clique nodes, one for each clique of G and a set of separator nodes one for each minimal vertex separator of G. The clique-separator graph has also a set A of edges and arcs defined a follow. Each arc (S,S′) is from a separator node S to a separator node S′ such that S ⊂ S′ and there is no separator node S′′ such that S ⊂ S′′ ⊂ S′. Each edge {K,S} is between a clique node K and a separator node S such that S ⊂ K and there is no separator node S′ such that ′ S ⊂ S ⊂ K. Later in this work, we will denote by Ar G the set of arcs in a clique-separator graph G. Figure 1 gives us an example of a clique-separator graph of a chordal graph. Two of the mains results obtained by Ibarra [20] are the following theorems.

Theorem 2.1. Given a chordal graph G = (V, E), constructing its clique-separator graph can be done in O(|V |3) time.

4 K4 K5 K6

G K8 K9 K3 K1 K7

K2 K10 K11 K12

K4 S5 K5 S6 K6

S2 K8 S8 K9 G S4 K1 K3

S7 K2 S1 S3 K7

K10 S9 K11 S10 K12

Figure 1: A clique-separator graph G of a chordal graph G

Theorem 2.2. Let G = (V, E) be a chordal graph with clique-separator graph G and let S be a separator node of G. If G − S has connected components G1,...,Gt, then t > 1 ′ ′ ′ and G − {S : S ∈ SG,S ⊆ S} has connected components G1,..., Gt such that for every 1 6 i 6 t, the vertex set of Gi is the same as the vertex set represented by the nodes of Gi − S.

2.4 The problems

Our main problem is to find a maximum-weight convex set in a given vertex-weighted chordal graph. It is the maximum-weight convex set problem in chordal graphs.

Problem 1. Given a chordal graph G and a weight function w : V → R, find a set C in CG that maximizes the value of w(C).

Here is our main result.

Theorem 2.3. The maximum-weight convex set problem in chordal graphs can be solved in polynomial time.

The well-known problem of finding a maximum-weight connected subtree in a tree can be solved by selecting a vertex as “root”, finding a maximum-weight subtree that contains the root, and iterating this procedure for all possible roots (see Wolsey et al. [1]). In order to use a similar approach to solve Problem 1, we define a notion of root. It will be easier to work with chordal graphs which are connected. Note that our results straightforwardly extend to the non-connected case. In order to simplify some of the later statements and arguments, we want to have in each maximal clique some vertex which is adjacent to no vertex outside the clique and which has weight zero. To this aim, we add such a vertex to any maximal clique (without changing the result of the optimization problems, see the end of the present subsection).

5 Formally, let G = (V, E) be a vertex-weighted graph. For each maximal clique K of G, we add a new vertex dK to the graph and we make dK adjacent to exactly the vertices in K. The weight of dK is set to 0, while the other vertices keep their weight. The resulting vertex-weighted graph is called the extension G′ of G. Notice that the maximal cliques ′ of G are all of the form K ∪ {dK }, where K is a maximal clique of G; we call dK the dummy vertex of the maximal clique K ∪ {dK }. Given a vertex-weighted chordal graph G = (V, E), its extension G′ = (V ′, E′) is also a vertex weight chordal graph. Remark that G and G′ essentially have the same clique-separator graph. When G = G′, we say that the vertex-weighted chordal graph G is extended. For a set R of vertices of an extended vertex weight chordal graph G, we say that a convex set C of CG is R-rooted if R ⊆ C. If R is a singleton {r} we write r-rooted instead of {r}-rooted. This modification allows us to define the following problem.

Problem 2. Given an extended chordal graph G with a weight function w : V → R and a maximal clique K of G, find a dK -rooted convex set C of G that maximizes the value of w(C).

We show below that, given any vertex-weighted chordal graph G, solving Problem 2 ′ for the extension G of G for all K in KG gives us a solution to Problem 1. The first lemma states the obvious link between the convex sets of G and G′.

Lemma 2.1. Let G = (V, E) be a chordal graph, C be a convex set of G and C′ be a convex set of G′ = (V ′, E′), the extension of G. Then C is a convex set of G′ and C′ ∩ V is a convex set of G.

Proof. First, C is a convex set of G′ because any chordless path in G′ between two vertices of C is a chordless path in G. Second, C′ ∩ V is convex in G because any chordless path in G between two vertices of C′ ∩ V is a chordless path in G′.

The next lemma shows a stronger result than what we need for proving the equivalence between Problem 1 and Problem 2, but it will be useful.

Lemma 2.2. Let G = (V, E) be a chordal graph with a convex set C in G, and G′ be the extension of G. Let KC be a maximal clique of the graph induced by C. Then, for every ′ ′ ′ K in KG′ such that KC ⊆ K , the set {dK′ }∪ C is convex in G .

′ ′ Proof. For K in KG′ such that KC ⊆ K, suppose that {dK′ }∪ C is not convex in G . ′ So there is a chordless path (dK′ ,f1,...,ft, c) in G with c in C but f1,...,ft not in C. ′ Because f1 must be in K , we know that for all v in KC we must have {v, c}∈ E (otherwise any monophonic path in G we can extract from (v,f1,...,ft, c) contradicts the convexity of C). There results a contradiction with the maximality of KC .

Lemmas 2.1 and 2.2 combined show that any algorithm solving Problem 2 in polynomial time establishes Theorem 2.3. Indeed, we run the algorithm solving Problem 2 on every maximal clique and save a maximum-weight solution C∗ among all the outputs of the executions. Then we remove the dummy vertices from C∗ and we are done. In what follows, the chordal graphs we consider are extended: we consider that every maximal clique K contains a fixed, dummy vertex dK .

6 3 A special case

In this section, we solve Problem 2 for a family of special instances. We first define a partial order relation on the vertices of a given chordal graph. Then we use this relation to reduce instances of Problem 2 in this family to the closure problem in posets. The latter problem can be solved in polynomial time using Picard’s algorithm [32].

3.1 The rooted poset

Let K be a maximal clique of a chordal graph G = (V, E). We define the binary relation 6K on V as the set of pairs (u, v) ∈ V × V such that there is a chordless path (v,...,dK ) that contains u. For the reduction we need to check that the relation is indeed a partial order.

Theorem 3.1. For G = (V, E) a chordal graph and K a maximal clique of G, the pair (V, 6K ) is a poset.

We give a proof for Theorem 3.1 in Appendix A. It can be shown that the order relation we just defined is a special case of the C-factor relation defined by Edelman and Jamison [8] (taking the convex set C equal to {dK }). The poset PK = (V, 6K ) will be referred to as the K-rooted poset of G. Figure 2 shows a chordal graph and the Hasse diagram for (V, 6K ) with K = {1, 2, d{1,2}}.

d{7,8} 7 8 d{4,6,7} 1 d{4,5,7} d{1,2} 6 3 2 d{3,4,5} d{3,4,5} d{2,3,4} 5 G = (V, E) V, 6 1 2 5 4  { , ,d{1,2}} d{2,3,4} d{4,5,7} d{4,6,7} 3 4 6 7 d{7,8} 1 2 8 d{1,2}

Figure 2: A chordal graph and its {1, 2, d{1,2}}-rooted poset.

3.2 A reduction to the maximum-weight ideal in poset problem

We now give a sufficient condition on a pair (G, K), where G is a chordal graph and K a maximal clique of G, for the existence of a one-to-one correspondence between the nonempty ideals of the K-rooted poset and the dK -rooted convex sets. Given a chordal graph G with clique-separator graph G, for K in KG and a = (S1,S2) in Ar G, we say that a is K-blocking if S1 is a minimal s2dK -separator for every s2 in S2 \ S1. There is also an interpretation of the K-blocking property in the clique-separator graph. An arc (S1,S2) is ′ ′ ′ K-blocking if G − {S : S ∈ SG,S ⊂ S1} has connected components G1,..., Gt such that S2 is included in Gi and K in Gj for some distinct i and j, and that there is no S in Gj

7 K3 S3 K4 S4 K5 K8 S7 K9

K2 S2 S5 K6 S6 K7

K1 S1

Figure 3: A clique-separator graph with exactly two K1-blocking arcs.

such that (S,S1) is an arc in G. Figure 3 shows a clique-separator graph in which (S1,S2) and (S6,S7) are K1-blocking arcs but (S2,S3) and (S5,S4) are not. As shown in Theorem 3.2, the absence of K-blocking arcs is a sufficient condition for the correspondence between ideals of PK and dK -rooted convex sets. Figure 4 below gives a schematic view of the second part of the proof.

Theorem 3.2. Let G = (V, E) be a chordal graph with clique-separator graph G, a maximal clique K in KG such that there is no K-blocking arc in G and PK be the K-rooted poset of G. Then a subset I of V is an nonempty ideal of PK if and only if I is a dK -rooted convex set in G.

Proof. First, let C be a convex set containing dK . For c in C \ {dK }, any vertex u such that u 6K c belongs to some chordless path. By convexity, we have u ∈ C so C is an ideal of PK . Now let I be an ideal of PK and suppose, for contradiction, that I is not convex. Then by definition, there must exist x and y in I and a chordless path (x,f1,f2,...,ft,y) such that f1,f2,...,ft do not belong to I. Note that x and y must be incomparable in PK , as for otherwise f1 or ft would be contained in I. In particular, they are both different from dK . Moreover we cannot have both {x, dK } and {y, dK } as edges, since otherwise {x,y}⊆ K. So without loss of generality, we assume that {x, dK } 6∈ E. Let T be a minimal xy-separator included in the neighborhood N(x) of x. Let S = T ∩ I. We claim that S is either an xdK-separator or a ydK -separator. Suppose otherwise. Then there must be two chordless paths of the form (x, u1, u2, . . . , un, dK ) and (y, v1, v2, . . . , vn′ , dK ) contained in I and avoiding S. By concatenating them, we obtain a path from x to y in I avoiding S, which contradicts the fact that T was an xy-separator. This proves the claim. In fact, S is an xdK -separator because otherwise, we can extract a chordless path from (y,ft,...,f1,x,...,dK ) that avoids S and contradicts the previous claim. Now consider a minimal xdK -separator S1 ⊆ S and a minimal vertex separator S2 ⊆ T such that a = (S1,S2) is an arc of G. We know such an arc exists because T is an xy-separator while S is not. We now show that a is K-blocking, a contradiction. By definition, a is K-blocking if and only if S1 is a tdK-separator for any t ∈ S2 \ S1. Suppose for contradiction that for some such t there exists a chordless path from t to dK avoiding S1. We recall that t ∈ T and T ⊆ N(x), hence {x,t} is in E. But then there is a chordless path from x to dK avoiding S1, contradicting that S1 is an xdK-separator. Hence a is indeed K-blocking.

8 f1 ft x T y

S I u1 v1

dK

Figure 4: Illustration of the second part of proof for Theorem 3.2.

Hence whenever G has no K-blocking arc, it is possible to compute a maximum-weight dK-rooted convex set of G in polynomial time by first computing the cover relation of the K-rooted poset, then using Picard’s algorithm [32]. Note that the relation 6K can be computed in polynomial time as we show latter. There are some well-known examples of chordal graphs G such that for every K in KG, the clique-separator graph of G has no K-blocking arc. For example, k-trees have no arc in their clique-separator graph (see Patil [31] for details). We recall that a k-tree is a graph formed by starting with a clique of size k + 1 and then repeatedly adding vertices with exactly k neighbors inducing a clique. In the next section, we will see how to deal with the case where the clique-separator graph contains a K-blocking arc.

4 A Polynomial-time Algorithm

We now consider chordal graphs G with one or more K-blocking arcs in their clique- separator graph, for some K in KG. We describe an algorithm for finding a maximum- weight convex set rooted in K. For a chordal graph G with clique-separator graph G we define the subgraph G ⊖ a for a = (S1,S2) in Ar G as the graph induced by the union of S1 and the connected component of G − S1 that intersects S2. Figure 5 shows an example of the ⊖ operation. Note that G ⊖ a is also a chordal graph (as any induced subgraph of a chordal graph is also chordal). For a chordal graph G = (V, E), a subset R of V and a weight function w, we denote by opt(G, R) a maximum-weight R-rooted convex set of G with respect to w. If R is a singleton {r}, we will write opt(G, r) instead of opt(G, {r}). The algorithm proceeds in two main steps. In a first preprocessing phase, for each arc a = (S1,S2), we compute opt(G⊖a, S1) that is, a maximum-weight convex set of G⊖a rooted in the vertex separator S1. After this preprocessing phase we denote by label(a) the solution of this subproblem. An algorithm for this preprocessing phase is described in Section 4.2.

4.1 Computation phase

In this second phase, we are going to use the labels of the arcs to compute a maximum- weight dK-rooted convex. The algorithm proceeds essentially by collapsing the vertices of the subgraph (G ⊖ a) − S1 into a single vertex za for each arc a = (S1,S2) that is

9 3 4 5

{2, 4} G = (V, E) G d{2,3,4} d{2,4,5} 2 {2, 3, 4, d{2,3,4}}{2, 4, 5, d{2,4,5}} a

d{1,2} 1 {1, 2, d{1,2}}{2} 3 4 5

{2, 4} H = G ⊖ a H d{2,3,4} d{2,4,5} 2 {2, 3, 4, d{2,3,4}} {2, 4, 5, d{2,4,5}}

Figure 5: An example of the ⊖ operation.

K-blocking. The weight of za is then set to w(label(a)) − w(S1), so that the weight of an optimal solution remains unchanged. This is detailed in Algorithm 1.

Algorithm 1: Finding a maximum dK-rooted convex set in a chordal graph Input: a chordal graph G and its clique-separator graph G, a maximal clique K of G, a weight function w, the function label Output: a maximum-weight K-rooted convex set C 1 while ∃ a = (S1,S2) ∈ Ar G such that a is K-blocking do 2 Identify the vertices of (G ⊖ a) − S1 into a new vertex za 3 w(za) ← w(label(a)) − w(S1) 4 Add a dummy vertex to the new maximal clique {za}∪ S1 5 Update G

6 Use Picard’s algorithm to compute a maximal weight dK -rooted convex set C of G 7 Return C

Note that the number of K-blocking arcs decreases at each iteration of the loop. Indeed, at least the vertex separator S2 disappears. One step of the algorithm is illustrated by Figure 6. Since the goal is to find a maximum-weight convex set in the graph, we need to remember that including the vertex za in a solution for the collapsed instance amounts to choosing the set label(a) \ S1 in a solution of the original instance.

Theorem 4.1. Let G = (V, E) be a chordal graph with a maximal clique K and let ∗ a = (S1,S2) be a K-blocking arc of Ar G. Let G be the graph obtained from G after ∗ applying Steps 2–4 of Algorithm 1 on a. Then w(opt(G, dK )) = w(opt(G , dK )).

Before proving Theorem 4.1, we make two simple observations.

Lemma 4.1. Let G be a chordal graph, S be a minimal vertex separator of G and let V1 and V2 be the vertex sets of two distinct components of G − S. If C1 and C2 are two S-rooted convex sets in the graphs induced by V1 ∪ S and V2 ∪ S respectively, then C1 ∪ C2 is a convex set of G.

10 S2 S2 S1 G a

S1

za d{za}∪S1 {za, d{za}∪S1 } ∪ S1

S1 G∗

S1

Figure 6: Illustration of the transformation in Algorithm 1 and the implication for the clique-separator graph.

′ Proof. By contradiction, suppose there are c and c in C1 ∪ C2 and a chordless path ′ (c, f1,...,fn, c ) of G with f1,...,fn outside of C1 ∪ C2. There must exist i in {1,...,n} such that fi is in S otherwise we have a contradiction with the convexity of C1 or C2. But then, fi ∈ C1 ∪ C2 because S ⊆ C1 ∩ C2, and we have a contradiction.

Lemma 4.2. Let G = (V, E) be a chordal graph with a maximal clique K and let a = (S1,S2) be a K-blocking arc of Ar G. Then, for a dK -rooted convex set C in G that contains some vertex of (G ⊖ a) − S1, we have S1 ⊂ C.

Proof. By contradiction, let s1 be in S1 \ C and let c be in C ∩ (G ⊖ a − S1). We know that dK and c are not in the same connected component of G − S1. Because a is K-blocking, there is a chordless path (dK , v1, . . . , vn,s1,s2) with s2 ∈ S2 \ S1, s1 ∈ S1 and vn ∈/ S1. ′ ′ There is also a path (s1,s2,...,c) in G ⊖ a with s2 ∈ S2 \ S1 from which we can extract a chordless path that only intersects S1 in s1. So we build a path (dK , v1, . . . , vn,s1,...,c) that can not have a chord, a contradiction.

Proof of Theorem 4.1. We decompose the equality into two inequalities. First, we show ∗ w(opt(G, dK )) > w(opt(G , dK )). More precisely, we show that for every dK -rooted convex ∗ ∗ ∗ C of G , we have a dK-rooted convex set C of G with w(C)= w(C ). If za ∈/ C we take ∗ ∗ ∗ C = C and we are done. Now, if za ∈ C , we define C as the union of C \ {za} (which is ∗ convex because za is simplicial) with label(a). Obviously w(C)= w(C ), we only need to ∗ check that C is convex. Because a is K-blocking, N(za) \ {d{za}∪S1 } = S1 is a minimal dKza-separator, hence C \ {za} must includes S1. We also know that S1 is contained in ∗ label(a). From Lemma 4.1, C is convex in G, therefore w(opt(G, dK )) > w(opt(G , dK )). ∗ We now show w(opt(G, dK )) 6 w(opt(G , dK )). More precisely, for every dK -rooted ∗ ∗ ∗ convex C of G, we have a dK -rooted convex set C of G with w(C) 6 w(C ). If C ∗ does not intersect (G ⊖ a) − S1, we take C = C and we are done. If C does intersect ∗ (G ⊖ a) − S1, we define C as the union of za with the vertices of C that also are in G∗. We have w(C) 6 w(C∗), otherwise we contradict the maximality of label(a). From ∗ Lemma 4.2, the vertices of C that are also in G form a convex set containing S1. Since ∗ {za}∪ S1 is a clique, hence is convex, Lemma 4.1 implies that C is also convex. So we ∗ have w(opt(G, dK )) 6 w(opt(G , dK )).

11 4.2 Preprocessing

We now describe the algorithm for computing the labels for the arcs in G. This step is done only once and does not depend on the root of the convex set we are looking for. Recall that the label of an arc a = (S1,S2) is the maximum-weight convex set of G ⊖ a rooted in S1. Note that this algorithm uses Algorithm 1 as a subroutine on smaller graphs. The algorithm is composed of two main ingredients. First, we need to label the arcs in an order such that the computation only involves arcs that are already labeled. We prove that we can achieve this by following the order of inclusion of the graphs G⊖a. Second, in order to compute the optimal convex set rooted in S1, we need to check all possible roots dK such that S1 is contained in K. This is detailed in Algorithm 2.

Algorithm 2: Labeling the arcs in G Input: a chordal graph G and its clique separator graph G, a maximal clique K of G, a weight function w Output: the label function 1 while ∃ an arc in Ar G without label do ′ 2 Select a = (S1,S2) ∈ Ar G without label such that every arc a with G ⊖ a′ ⊂ G ⊖ a is already labeled 3 M ← S1 4 Let Ka be the set of maximal cliques of G that contain S1 and are contained in G ⊖ a 5 for K in Ka do 6 Using Algorithm 1, compute a maximum-weight convex set C∗ of G ⊖ a rooted in dK and containing S1 ∗ 7 M ← maxw{M,C } 8 label(a) ← M

∗ In step 6 of Algorithm 2, we can force S1 to be in the solution C by assigning suffi- ciently large weight to each vertex of S1 before calling Algorithm 1. More precisely, we assign them the weight |w(v)|. By Lemma 2.2, looking for all the dK -rooted convex Pv∈V sets with K in Ka ensures that we will find a maximum-weight S1-rooted convex set of G ⊖ a. Note that Algorithm 2 labels the arcs in an order compatible with the partial order of inclusion of the graphs G ⊖ a. The following lemma guarantees that the K-blocking arcs that will be processed by Algorithm 1 are all already labeled.

Lemma 4.3. Let G be a chordal graph with clique-separator graph G and let a = (S1,S2) ′ ′ in Ar G and a = (S3,S4) an arc of the clique-separator graph of G ⊖ a. If G ⊖ a 6⊂ G ⊖ a, ′ then a is not K-blocking for any maximal clique K in Ka.

′ Proof. Suppose that G ⊖ a 6⊂ G ⊖ a. We show that S3 is not a minimal s4dK -vertex ′ ′ separator for s4 in S4 \ S3. If G ⊖ a = G ⊖ a, then dK is connected to s4 in (G ⊖ a ) − S3 and we have the result. If G ⊖ a′ 6= G ⊖ a, there is v in G ⊖ a′ such that v is not in G ⊖ a. So there must exist a chordless path p from s4 to v that avoids S3. But, because S4 is in G ⊖ a and v is not,

12 the path p must contains a vertex s1 ∈ S1. Now, because {s1, dK } is an edge in G, we can deduce the existence of a path from s4 to dK that avoids S3.

A complete execution of the algorithm on an example is given in Appendix B.

4.3 Time complexity

From Algorithms 1 and 2, it seems straightforward that the time complexity needed to solve the maximum-weight convex set problem on a chordal graph G = (V, E) is bounded by a polynomial in |V | and |E|. More precisely, we see that the complexity of the algorithm used to solve Problem 1 on G will be bounded by that of the preprocessing step. Indeed, the preprocessing step involves |V ||E| calls to Picard’s algorithm. We recall that the |V |2 time complexity of Picard’s algorithm in our case is O(|V ||E| log( |E| )). Hence the overall 2 2 |V |2 running time of our algorithm is O(|V | |E| log( |E| )). If we denote by n the number of vertices of the input graph, then this running time is O(n6 log n). To prove that the maximum-weight convex set problem on a chordal graph can be solved in this running time we need to show that all the information we need in Algo- rithms 1 and 2 can be computed in a time bounded asymptotically by the time of the preprocessing step. More precisely, given the chordal graph G, we can compute the fol- 2 2 |V |2 lowing information in O(|V | |E| log( |E| )) time: the clique-separator graph G of G, the vertices in G ⊖ a for each a in Ar G, the cliques in KG for which a is K-blocking for each a in Ar G, the clique in Ka for each a in Ar G, the matrix of the relations 6K for each K ′ ′ ′ in KG and a total order on the arcs G such that G ⊖ a ⊆ G ⊖ a implies a < a for a, a in Ar G. The detailed proofs are given in Appendix C. This concludes the proof of Theorem 2.3.

13 References

[1] El Houssaine Aghezzaf, Thomas L. Magnanti, and Laurence A. Wolsey. Optimizing constrained subtrees of trees. Math. Programming, 71(2, Ser. A):113–126, 1995. URL: https://doi.org/10.1007/BF01585993, doi:10.1007/BF01585993.

[2] Encarnaci´on Algaba Algaba, Jes´us Mario Bilbao, Ren´e van den Brink, and Andr´es Jim´enez-Losada. Cooperative games on an- timatroids. Discrete Mathematics, 282(1-3):1–15, 2004. URL: http://dblp.uni-trier.de/db/journals/dm/dm282.html#DuranBBJ04.

[3] Jean R. S. Blair and Barry Peyton. An introduction to chordal graphs and clique trees. In Graph theory and sparse matrix computa- tion, volume 56 of IMA Vol. Math. Appl., pages 1–29. Springer, New York, 1993. URL: http://dx.doi.org/10.1007/978-1-4613-8369-7_1, doi:10.1007/978-1-4613-8369-7_1.

[4] E. Andrew Boyd and Ulrich Faigle. An algorithmic charac- terization of antimatroids. Discrete Appl. Math., 28(3):197–205, 1990. URL: http://dx.doi.org/10.1016/0166-218X(90)90002-T, doi:10.1016/0166-218X(90)90002-T.

[5] Jean Cardinal, Jean-Paul Doignon, and Keno Merckx. On the shelling antimatroids of split graphs. Discrete Mathematics & Theoretical Computer Science, Vol 19 no. 1, March 2017. URL: http://dmtcs.episciences.org/3201.

[6] Reinhard Diestel. Graph theory, volume 173 of Graduate Texts in Mathematics. Springer, Heidelberg, fourth edition, 2010. URL: http://dx.doi.org/10.1007/978-3-642-14279-6, doi:10.1007/978-3-642-14279-6.

[7] Robert P. Dilworth. Lattices with unique irreducible decompositions. Ann. of Math. (2), 41:771–777, 1940.

[8] Paul H. Edelman and Robert E. Jamison. The theory of convex geometries. Geom. Dedicata, 19(3):247–270, 1985. URL: http://dx.doi.org/10.1007/BF00149365, doi:10.1007/BF00149365.

[9] David Eppstein. Pruning antimatroids is hard, 2007. URL: http://11011110.livejournal.com/91976.html.

[10] David Eppstein. The parametric closure problem. ACM Trans. Algorithms, 14(1):2:1– 2:22, 2018. URL: http://doi.acm.org/10.1145/3147212, doi:10.1145/3147212.

[11] David Eppstein, Mark Overmars, G¨unter Rote, and Gerhard Woeginger. Find- ing minimum area k-gons. Discrete Comput. Geom., 7(1):45–58, 1992. URL: https://doi.org/10.1007/BF02187823, doi:10.1007/BF02187823.

[12] Jean-Claude. Falmagne and Jean-Paul Doignon. Learning Spaces. Springer-Verlag, Berlin, 2011.

14 [13] Martin Farber and Robert E. Jamison. Convexity in graphs and hyper- graphs. SIAM J. Algebraic Discrete Methods, 7(3):433–444, 1986. URL: http://dx.doi.org/10.1137/0607049, doi:10.1137/0607049.

[14] Delbert R. Fulkerson and Oliver A. Gross. Incidence matrices and interval graphs. Pacific J. Math., 15(3):835–855, 1965. URL: http://projecteuclid.org/euclid.pjm/1102995572.

[15] Andrew V. Goldberg and Robert E. Tarjan. A new approach to the maximum-flow problem. J. Assoc. Comput. Mach., 35(4):921–940, 1988. URL: http://dx.doi.org/10.1145/48014.61051, doi:10.1145/48014.61051.

[16] Martin Charles Golumbic. Algorithmic graph theory and perfect graphs, volume 57 of Annals of Discrete Mathematics. Elsevier Science B.V., Amsterdam, second edition, 2004. With a foreword by Claude Berge.

[17] Heinz Gr¨oflin. Path-closed sets. Combinatorica, 4(4):281–290, 1984. URL: https://doi.org/10.1007/BF02579138, doi:10.1007/BF02579138.

[18] Chin Wen Ho and Richard C. T. Lee. Counting clique trees and com- puting perfect elimination schemes in parallel. Inform. Process. Lett., 31(2):61–68, 1989. URL: http://dx.doi.org/10.1016/0020-0190(89)90070-7, doi:10.1016/0020-0190(89)90070-7.

[19] John Hopcroft and Robert Tarjan. Algorithm 447: Efficient algorithms for graph manipulation. Commun. ACM, 16(6):372–378, June 1973. URL: http://doi.acm.org/10.1145/362248.362272, doi:10.1145/362248.362272.

[20] Louis Ibarra. The clique-separator graph for chordal graphs. Discrete Appl. Math., 157(8):1737–1749, 2009. URL: http://dx.doi.org/10.1016/j.dam.2009.02.006, doi:10.1016/j.dam.2009.02.006.

[21] Robert E. Jamison-Waldner. Partition numbers for trees and ordered sets. Pacific J. Math., 96(1):115–140, 1981. URL: http://projecteuclid.org/euclid.pjm/1102734951.

[22] Robert E. Jamison-Waldner. A perspective on abstract convexity: classifying align- ments by varieties. In Convexity and related combinatorial geometry (Norman, Okla., 1980), volume 76 of Lecture Notes in Pure and Appl. Math., pages 113–150. Dekker, New York, 1982.

[23] Douglas M. King, Sheldon H. Jacobson, Edward C. Sewell, and Wendy K. Tam Cho. Geo-graphs: An efficient model for enforcing contiguity and hole constraints in planar graph partitioning. Operations Research, 60(5):1213–1228, 2012. URL: https://doi.org/10.1287/opre.1120.1083, doi:10.1287/opre.1120.1083.

[24] Bernhard Korte and L´aszl´oLov´asz. Polyhedral results for antimatroids. Annals New York Academy of Sciences, 555:283–295, 1989.

15 [25] Bernhard Korte, L´aszl´o Lov´asz, and Rainer Schrader. Gree- doids, volume 4 of Algorithms and Combinatorics. Springer-Verlag, Berlin, 1991. URL: http://dx.doi.org/10.1007/978-3-642-58191-5, doi:10.1007/978-3-642-58191-5.

[26] Gleb A. Koshevoy. Choice functions and abstract con- vex geometries. Math. Social Sci., 38(1):35–44, 1999. URL: http://dx.doi.org/10.1016/S0165-4896(98)00044-4, doi:10.1016/S0165-4896(98)00044-4.

[27] Terry A. McKee and F. R. McMorris. Topics in intersection graph theory. SIAM Monographs on Discrete Mathematics and Applications. Society for In- dustrial and Applied Mathematics (SIAM), Philadelphia, PA, 1999. URL: https://doi.org/10.1137/1.9780898719802.

[28] D. Orlin. Optimal weapons allocation against layered defenses. Naval Research Logistics (NRL), 34(5):605–617, 1987. URL: https://onlinelibrary.wiley.com/doi/abs/10.1002/1520-6750%28198710%2934%3A5%3C605%3A%3AAID-NAV3220340502%3E3.0.CO%3B2-L, doi:10.1002/1520-6750(198710)34:5<605::AID-NAV3220340502>3.0.CO;2-L.

[29] James Oxley. Matroid theory, volume 21 of Oxford Graduate Texts in Mathematics. Oxford University Press, Oxford, second edition, 2011. URL: http://dx.doi.org/10.1093/acprof:oso/9780198566946.001.0001, doi:10.1093/acprof:oso/9780198566946.001.0001.

[30] Anita Frances Parkinson. Essays on sequence optimization in block cave mining and inventory policies with two delivery sizes. PhD thesis, University of British Columbia, 2012. URL: https://open.library.ubc.ca/cIRcle/collections/24/items/1.0073023, doi:http://dx.doi.org/10.14288/1.0073023.

[31] H. P. Patil. On the structure of k-trees. J. Combin. Inform. System Sci., 11(2-4):57– 64, 1986.

[32] Jean-Claude Picard. Maximal closure of a graph and applications to combinatorial problems. Management Sci., 22(11):1268–1272, 1975/76.

[33] J. M. W. Rhys. A selection problem of shared fixed costs and network flows. Management Science, 17(3):200–207, 1970. URL: https://EconPapers.repec.org/RePEc:inm:ormnsc:v:17:y:1970:i:3:p:200-207.

[34] Jeffrey B. Sidney. Decomposition algorithms for single-machine sequencing with prece- dence relations and deferral costs. Operations Research, 23(2):283–298, 1975. URL: http://www.jstor.org/stable/169530.

[35] Justin C Williams. Convex land acquisition with zero-one programming. En- vironment and Planning B: Planning and Design, 30(2):255–270, 2003. URL: https://doi.org/10.1068/b12925, arXiv:https://doi.org/10.1068/b12925, doi:10.1068/b12925.

16 A Proof of Theorem 3.1

Theorem 3.1 directly follows from the two lemmas below, respectively stating that the relation is antisymmetric and transitive, and whose proofs are illustrated in Figure 7. The reflexivity of the relation is obvious.

Lemma A.1 (Antisymmetry). For G = (V, E) a chordal graph and K a maximal clique of G, the relation 6K is antisymmetric.

Proof. For a and b in V , we show that we cannot have a 6K b, b 6K a and a 6= b. Suppose a 6K b and b 6K a, so there are two chordless paths (u1, . . . , uj, . . . , un) and (v1, . . . , vl, . . . , vm) with u1 = vl = a, uj = v1 = b and un = vm = dK . If we take the path

(uj+1, . . . , un, vm−1, . . . , vl, u2, . . . , uj−1), we can extract a chordless path p with starting vertex uj+1 and ending vertex uj−1. The path p has at least three vertices because {uj+1, uj−1} is not in E. The vertex b is not in p because a 6= b, so we can add it to p. But then, a contradiction arises, because we obtain a chordless cycle with more than three vertices due to the fact that b only forms an edge with uj−1 and uj+1 among the considered vertices.

Lemma A.2 (Transitivity). For G = (V, E) a chordal graph and K a maximal clique of G, the relation 6K is transitive.

Proof. For a, b and c three different vertices in V , suppose we have a 6K b and b 6K c. So we have two chordless paths (u1, . . . , uj, . . . , un) and (v1, . . . , vl, . . . , vm) with u1 = a, uj = v1 = b, vl = c and un = vm = dK. From the path (u1, . . . , uj, v2, . . . , vm) we extract a chordless path (u1, . . . , ux, vy, . . . , vm). If y ∈ {1,...,l} then c is in the chordless path and we have a 6K c. If y ∈ {l + 1,...,m}, then from the following path:

(uj+1, . . . , un, vm, vm−1, . . . , vy, ux, . . . , uj−1), we can extract a chordless path p with starting vertex uj+1 and ending vertex uj−1. The path p has at least three vertices because {uj−1, uj+1} is not in E. If we add b to p we got a contradiction, because it gives a chordless cycle with more than three vertices due to the fact that b only forms an edge with uj−1 and uj+1 among the considered vertices.

vy

vm−1 a, c uj−1 uj+1 a, ux u1, dK dK u1 uj−1 uj+1 vl b, uj , v1 b, uj , v1 vm−1

Figure 7: Illustrations of the proofs of antisymmetry and transitivity for the relation 6K.

17 B Example

Looking at Algorithms 1 and 2, it seems possible to merge them to save computation time. But the situation is not that simple, because in Theorem 4.1, the assumption that a is K-blocking cannot be removed. To illustrate the mechanism of the two algorithms, we give an example. Figure 8 shows a chordal graph G, its clique-separator graph G and a weight function. The goal is to compute opt(G, dK1 ).

dK4 dK5 6 7 8 Vertex Weight 1 1 2 0 3 5 4 3 -1 K4 S3 K5 4 -4 a2 5 -1

d d 6 4 K2 2 K3 K2 S2 K3 a1 7 -2 8 3 d 1 K1 K1 S1

Figure 8: A chordal graph and its clique-separator graph for illustrating Algorithms 1 and 2.

We look at the preprocessing phase first, and we use Algorithm 2 to label a1 and a2. Because G ⊖ a2 ⊂ G ⊖ a1, we begin by computing label(a2). In other word, we want to compute a maximum-weight S2-rooted convex set of G ⊖ a2, illustrated in Figure 9. There is no K-blocking arc in G ⊖ a2 for any K in Ka2 , we can directly use Picard’s algorithm on each clique in Ka2 after temporarily changing the weight of the vertices in S2 in order to impose that S2 be contained in the solution. So Picard’s algorithm is used two times, with K4 and K5, and we keep the best solution among the outputs. The result will be a convex set of weight 1, for instance {2, 4, 6, 7, 8, dK5 }, which becomes label(a2).

dK4 dK5 6 7 8

4

K4 S3 K5 S2

2

Figure 9: The graph G ⊖ a2 and its clique-separator graph.

Now we compute label(a1), so we are looking for an S1-rooted convex set in G ⊖ a1 represented in Figure 10. We temporarily change the weight of the vertices in S1 and we run Algorithm 1 on the graph G ⊖ a1 four times, with the cliques K2, K3, K4 and K5. For the clique K4 there is no K4-blocking arc and we use Picard’s algorithm. The same process is applied with K5. For the clique K2, the arc a2 is K2-blocking but already labeled. So we

18 identify the vertices of (G ⊖ a2) − S2 to a vertex za2 with weight w(label(a2)) − w(S2) = 1. After this operation, there is no K2-blocking arc and we use Picard’s algorithm. Figure 11 shows a visual representation of the transformation. The same process is applied with K3. For the labeling of a1 we have used Picard’s algorithm four times. A best S1-rooted convex set of G ⊖ a1 is {2, 6, dK4 } with weight 4.

dK4 dK5 6 7 8

3 4 5

K4 S3 K5 a2

d d K2 2 S1 K3 K2 S2 K3

Figure 10: The graph G ⊖ a1 and its clique-separator graph.

dK6 za2

3 4 5 {dK6 ,za2 } ∪ S2 Vertex Weight

za2 1

d d K2 2 S1 K3 K2 S2 K3

Figure 11: The graph after the identification of vertices in order to remove K2-blocking arcs.

Now every arc is labeled, and we look at the computing phase. Because we want a maximum-weight dK1 -rooted convex set, we run Algorithm 1. There is only one K1- blocking arc, namely a1. So we identify the vertices of (G ⊖ a1) − S1 to a vertex za1 with weight w(label(a1))−w(S1) = 4. After this operation, there is no K1-blocking arc as shown in Figure 12, and we use Picard’s algorithm to find {1, 2, za1 , dK1 } as a maximum-weight ∗ K1-rooted convex set, which gives rise to the convex set C = {1, 2, dK1 }∪(label(a1)\S1)= ∗ {1, 2, 6, dK1 , dK4 } of G, with w(C ) = 5.

za1

Vertex Weight 1 1

dK7 2 0 2 K1 S1 {2,za1 , dK7 } za1 4

1 dK1

Figure 12: The state of the graph after removing the K1 blocking arc.

19 C Detailed time complexity

We now prove that for a chordal graph G = (V, E) given by its adjacency matrix, and a 2 2 |V |2 weight function on the vertices, the running time of our algorithm is in O(|V | |E| log( |E| )), in the worst-case. We need to check that the information needed for the execution of Al- gorithms 1 and 2 can be computed in advance, only once for a given graph. We recall that for a graph G, finding a connected component of G − X that contains v where X ⊆ V and v ∈ V \ X can be done in time O(|V | + |E|) as stated by Hopcroft and Tarjan [19]. We will use the following lemma. Lemma C.1. Given a (connected) chordal graph G = (V, E) with clique-separator graph G, we have |V |− 1 6 |E| and |Ar G| 6 |E|. Proof. The first inequality follows from connectedness. For the second inequality, notice each arc (S1,S2) ∈ Ar G is generated by two cliques S1 and S2 such that S1 ⊂ S2 and there is no vertex S3 such that S1 ⊂ S3 ⊂ S2. We assign to each arc a = (S1,S2) a unique edge

{s1,s2} in G with s1 ∈ S1 and s2 ∈ S2. This implies |Ar G| 6 |E|.

Lemma C.2. Given a chordal graph G = (V, E) and its clique-separator graph G, listing 2 G ⊖ a for all a in Ar G can be done in O(|E| ).

Proof. For each arc a = (S1,S2), we need to find the connected component of G − S1 that 2 intersects S2. Using Lemma C.1, we have O(|E| ) as total running time.

Lemma C.3. Given a chordal graph G = (V, E) with clique-separator graph G, obtaining 2 2 the list, for each a in Ar G, of the cliques in KG for which a is K-blocking takes O(|E| |V | ). 2 Proof. By Lemma C.2 we can obtain the list of G⊖a for all a in Ar G in O(|E| ). Then, for each a = (S1,S2) in Ar G, and for each K in KG, we check two conditions. First, that dK is ′ not in G⊖a (i.e. S1 is a dks2-separator for s2 in S2). Second, that there is no a = (S3,S1) ′ in Ar G such that dK is not in G ⊖ a (i.e. S1 is minimal among the s2dK -separator for every s2 in S2).

Lemma C.4. Given a chordal graph G = (V, E) and its clique-separator graph G, obtain- 2 2 ing the relations 6K for all K in KG takes time O(|V | |E| ).

Proof. By Lemmas C.2 and C.3 we can obtain, for each arc a in Ar G, the vertices in G ⊖ a 2 2 and the cliques in KG for which a is K-blocking in Ar G in O(|E| |V | ). First, for all K in KG, we set dk 6K k for all k in K. Second, for all K in KG, and for all a = (S1,S2) in Ar G such that a is K-blocking, we set s 6K u for all s ∈ S1 and u ∈ (G ⊖ a) − S1.

Lemma C.5. Given a chordal graph G = (V, E) and its clique-separator graph G, sorting ′ ′ 2 the arcs of Ar G such that G ⊖ a ⊆ G ⊖ a implies a < a can be done in O(|V ||E| ) time.

Proof. We use Lemma C.2 to obtain a list of G ⊖ a for all a in Ar G. The comparison ′ ′ between G ⊖ a and G ⊖ a for a, a in Ar G takes O(|V |) time. Hence sorting takes O(|V ||E|2) time.

Lemma C.6. Given a chordal graph G = (V, E) with clique-separator graph G and the 2 list of G ⊖ a for all a in Ar G, obtaining elements in Ka for all a in Ar G takes O(|E||V | ) time.

20 Proof. For each arc a = (S1,S2) in Ar G, we look at each K ∈ KG such that S1 ⊂ K, and we check if the clique is in G ⊖ a.

21