• Nem Talált Eredményt

3.2 Trees

3.2.2 Growing a mapping

From now on, we assume that Reductions A and B cannot be applied. At this point, the algorithm checks whether the conditions of Lemma 3.2.1 are fulfilled, and correctly outputs

’No’ if the conditions do not hold. Letφdenote the isomorphism fromT to TS that we are looking for. As in Section 3.1, we try to grow a partial mapping fromT toTS, which is always a restriction ofφ. To begin, the algorithm chooses an arbitrary starting vertexr0 inT, and branches on the choice ofφ(r0) inG, which means|V(G)|possibilities.

Throughout its running, the algorithm may modifyG by deleting vertices of S from it.

We denote byGi the graph obtained fromGafter thei-th step, withG=G0. Assume that in thei-th step of the algorithm there is a subtreeDiofT on whichφis already known. The algorithm proceeds step by step, choosing a leafri ofDi in the i-th step that has not been examined yet. For the chosen vertex ri, it determines φ on NT(ri) by applying a method described below. This means also that it addsNT(ri) toDito getDi+1, deletesNG(φ(ri))∩S from Gi to get Gi+1, and checks whether φ is still an isomorphism. When determining φ onNT(ri), the algorithm may branch into a bounded number of branches, or may proceed

3.2. Trees 43 with a single branch. Accordingly, we distinguish betweenbranching andsimple cases.

Let us describe the details of a single step executed by the algorithm. First, it checks whether|V(Gi)| ≥ |V(T)|holds, outputting ’No’ if the condition fails. Next, it verifies some simple conditions considering the neighbors ofri and φ(ri) =r0i. To do this, it determines the minimal connected subgraphKi ofGi containing every cycle ofGi. Note thatKican be constructed fromGi easily in linear time, as the 2-connected components of a graph can be determined in linear time, e.g. by applying depth first search [37].

To proceed, let us introduce some new notation. We divide the vertices of NT(ri) into two groups as follows:

• those neighbors ofri that are inDi,

• those neighbors ofri that are not inDi. Letti1, . . . , tiαi denote these vertices, and letTji be the tree component ofT−ri containingtij.

Similarly, we classify the vertices ofNG(r0i) into three groups:

• those neighbors ofr0i that are inφ(Di),

• those neighbors of r0i outside φ(Di) that are connected to r0i by edges not in Ki. Let t01i, . . . , t0βii denote these vertices, and Tj0i denote the component of Gi−r0i that includest0ji. Observe that either Tj0i is a tree, orr0i∈/ V(Ki) andTj0i containsKi.

• those neighbors ofr0ioutsideφ(Di) that are connected tor0i by edges inKi. Letγibe the number of such vertices.

Clearly, αi ≤βii, and the equality holds if and only if NGi(r0i)∩S =∅. Thus, if the algorithm finds thatαi> βii, then it outputs ’No’.

First, let us observe that if the treeThi is isomorphic toTj0i for somehandj, then w.l.o.g.

we can assume thatφ(Thi) =Tj0i. As the trees of a forest can be classified into equivalence classes with respect to isomorphism in time linear in the size of the forest [6, 78], this case can be noticed easily. Given two isomorphic trees, an isomorphism between them can also be found in linear time, so the algorithm can extendφonThi, adding alsoThi to the subgraphDi. Hence, we only have to deal with the following case: no treeThi (h∈[αi]) is isomorphic to one of the graphs Tj0i (j ∈ [βi]). This argument makes our situation significantly easier, since every graph Tj0i must contain some vertex from S. Therefore βi ≤ |S| = k. Clearly, ifr0i ∈/ V(Ki) thenγi= 0. Ifr0i∈V(Ki) thenr0i can have degree at mostk2+kinK0, and thus inKi, by Lemma 3.2.1. Thus, we getγi≤k2+k, implying alsoαi≤βii≤k2+ 2k.

The algorithm determinesαi, βiandγiin each step, and outputs ’No’ if these bounds do not hold for them.

The algorithm faces one of the following two cases at each step.

Simple case: βii ≤ 1. In this case, αi ≤ 1. If βii = 0 then αi = 0, hence the algorithm proceeds with the next step by choosing another leaf of Di not yet visited.

Otherwise, letv be the unique vertex inNGi(r0i)\V(φ(Di)). Ifαi= 0 thenv must be inS, otherwiseφ(ti1) =v. According to this, the algorithm deletes v or extendsφ onti1, adding alsoti1 toDi.

Branching case: βii ≥ 2. In this case, the algorithm branches on every possible choice of determiningφ onNT(ri). Guessingφ(v) for a vertexv∈NV(TDi)(ri) can result in at mostβii possibilities, so the number of possible branches in a branching step is at most (βii)αi ≤(k2+ 2k)k2+2k. After guessingφ(v) for each vertexv∈NV(TDi)(ri), the algorithm puts the remaining verticesNG(r0i)\ {φ(v)| v ∈ NT(ri)} into S, deleting them fromGi.

Lemma 3.2.2. In a single branch of a run of the algorithm described above on a solvable input for the Cleaning(Tree,−)problem with parameterk, there can be at most g(k) + 2k−2 = 2k3(k+ 1) + 5k−2 =O(k4)branching steps.

Proof. We use the notation applied in the description of the algorithm. The i-th step can only be a branching case if eitherγi ≥2,βi ≥2, or βii = 1 holds. For each of these cases, we give an upper bound on the number of steps in a single branch of a run of the algorithm where these cases can happen.

To determine a bound for the case γi ≥2, let r be the first vertex in T examined in a step such that φ(r) is inK0. Recall thatK0−S is a tree, so supposing φ(ri)∈V(K0) we get that if ri 6= r then for the edge e incident to ri in Di it must hold that φ(e) is in K0. Now, observe that if γi≥2 holds, then this implies that eitherri =r or φ(ri) has at least three edges incident to it inK0. The latter means thatri ∈K3, where K3 denotes the vertices ofK0 having degree at least three in K0. Thus, the condition γi≥2 can hold in at most|K3|+ 1≤g(k) steps, by Lemma 3.2.1.

Now, if the algorithm finds βi≥2, then recall that bothT10i andT20iinclude at least one vertex fromS, and thusGi−φ(Di) has more connected components containing vertices ofS thanGi−φ(Di−ri) has. It is easy to see that this can be true for only at most|S| −1 such vertices ri, so this case can happen at mostk−1 times in a single branch of a run of the algorithm.

Finally, letSdenote those vertices ofS that are not contained inK0. Clearly, ifs∈S, then s is not contained in any cycle of G, so |NG(s)∩V(TS)| ≤ 1. Now, if βi = γi = 1, then r0i ∈ V(K) and the edge r0it01i must be one of the edges that connect to K0 a tree in G−K0 containing a vertex in S. Observe that there can be at most |S| ≤k−1 such edges. Therefore, the claim follows.

As Lemma 3.2.2 only bounds the number of branching steps for solvable inputs, the algorithm ensures the same bound on every input by maintaining a counter for these steps.

Thus, it outputs ’No’ if it encounters a branching case for the (g(k) + 2k−1)-th time.

As the number of branches in a branching case is kO(k2), and the number of branching cases in a single branch of a run of the algorithm isO(k4), the number of leaves in the search tree explored by the algorithm (i.e. the number of steps where the algorithm stops, regarding all the branches in total) iskO(k6). At each vertex, the algorithm uses time at most linear in|V(G)|. The number of steps performed in a single branch of a run of the algorithm is at most|V(T)|, hence the algorithm needs quadratic time after choosingφ(r0) for the starting vertexr0. Trying all possibilities forφ(r0) increases this to cubic time. ReductionsAandB can also be executed in cubic time, as argued before, so we can conclude:

Theorem 3.2.3. The Cleaning(Tree,−)problem on input(T, G)can be solved in kO(k6)n3 time, wheren=|V(T)| and|V(G)|=n+k.

CHAPTER 4

Induced Subgraph Isomorphism on interval graphs

In this chapter, we discuss the parameterized complexity of the following problem: given two interval graphs G and H, decide whether we can delete some vertices of G to obtain a graph isomorphic to H. On the one hand, we prove that this special case of Induced Subgraph Isomorphismis NP-hard, and we show that it is W[1]-hard when parameterized by the|V(H)|, denoting the number of vertices in the smaller graph.

On the other hand, we present a newly developed FPT algorithm for this problem, when parameterized by the number |V(G)| − |V(H)|, denoting the number of vertices which we have to delete fromGto obtain a graph isomorphic toH. Using the notation of the previous chapter, we will denote the resulting parameterized problem byCleaning(Interval, Interval), withInterval standing for the class of interval graphs.

Interval graphs form an important and widely studied class of graphs. Thanks to their strict structure, many NP-hard problems become polynomial-time solvable when restricted to interval graphs [64, 51]. They have numerous applications in scheduling problems but also in various areas of computational biology. Apart from the theoretical interest, the investigation of the Cleaning problem for interval graphs is also motivated by its similarity with an important problem in biology, namely theArc-Preserving Subsequenceproblem [109].

In Section 4.1 we give a brief introduction to a data structure called labeled PQ-trees which yield a canonical form for interval graphs. Section 4.2 contains the obtained hardness results, and Sections 4.3 and 4.4 cover our FPT algorithm forCleaning(Interval, Interval).

The results of this chapter appear in [108].

4.1 Interval graphs and labeled PQ-trees

LetGbe an interval graph, meaning thatGcan be regarded as the intersection graph of a set of intervals. Formally, an interval representation ofG is a set{Ii |i∈[n]} of intervals, where Ii andIj intersect each other if and only ifvi andvj are adjacent. We say that two intervalsproperly intersect, if they intersect, but none of them contains the other.

LetC(G) be the set of all maximal cliques inG, and letC(v) ={C|v∈C, C∈ C(G)}for somev∈V(G). It is known that a graph is an interval graph if and only if its maximal cliques can be ordered consecutively, i.e. there is an ordering ofC(G) such that the cliques inC(v)

form a consecutive subsequence [65]. Note that any interval representation gives rise to a natural ordering ofC(G), which is always a consecutive ordering. The set of all consecutive orderings ofC(G) are usually represented by PQ-trees, a data structure introduced by Booth and Lueker [22].

APQ-treeofGis a rooted treeT with ordered edges with the following properties: every non-leaf node is either a Q-node or a P-node, each P-node has at least 2 children, each Q-node has at least 3 children, and the leaves ofTare bijectively associated with the elements ofC(G).

For an illustration, see Figure 4.1. Thefrontier F(T) of the PQ-treeT is the permutation ofC(G) that is obtained by ordering the cliques associated with the leaves ofT simply from left to right. Two PQ-treesT1 and T2 are equivalent, if one can be obtained from the other by applying a sequence of the following transformations: permuting the children of a P-node arbitrarily, or reversing the children of a Q-node. The consecutive orderings of the maximal cliques of a graph can be represented by a PQ-tree in the following sense: for each interval graphGthere exists a PQ-treeT, such that{F(T0)|T0is a PQ-tree equivalent toT}yields the set of all consecutive orderings ofC(G). Such a PQ-treerepresents G. For any interval graphGa PQ-tree representing it can be constructed in linear time [22].

This property of PQ-trees can be used in the recognition of interval graphs. However, to examine isomorphism of interval graphs, the information stored in a PQ-tree is not sufficient.

For this purpose, a new data structure, the labeled PQ-tree has been defined [96, 35]. For a PQ-treeT and some nodes ∈ V(T), let Ts denote the subtree of T rooted at s. For each vertex v in G, let the characteristic node R(v) of v in a PQ-treeT representing Gbe the deepest nodesinT such that the frontier ofTscontainsC(v). For a nodes∈V(T), we will also writeR1(s) ={x∈V(G)|R(x) =s}, and ifT0 is a subtree ofT, thenR1(T0) ={x∈ V(G) | R(x) ∈ V(T0)}. Observe that if R(v) is a P-node, then every clique in the frontier ofTR(v)containsv. It is also true that ifR(v) is a Q-node with childrenx1, x2, . . . , xm, then those children ofR(v) whose frontier contains v form a consecutive subseries ofx1, . . . xm. Formally, there must exist two indicesi < j such thatC(v) ={C|C∈F(Txh) for somei≤ h≤j}.

A labeled PQ-tree of G is a labeled version of a PQ-treeT of G where the labels store the following information. Ifxis a P-node or a leaf, then its label is simply |R1(x)|. If q is a Q-node with childrenx1, x2, . . . , xm (from left to right), then for eachv ∈R1(Tq) we defineQq(v) to be the pair [a, b] such thatxa andxbare the leftmost and rightmost children of q whose frontier in T contains C(v). (See again Figure 4.1.) Also, if Qq(v) = [a, b] for some vertex v, then we let Qleftq (v) =a and Qrightq (v) = b. For some 1 ≤ a ≤b ≤m, the pair [a, b] is a block of q. Considering blocks of a Q-node, we will use a terminology that treats them like intervals, so two blocks can be disjoint, intersecting, they contain indices, etc. The labelL(q) of qencodes the values|Lq(a, b)| for eacha < bin [m], whereLq(a, b) is the set{v∈R1(q)|Qq(v) = [a, b]}.

Note that a PQ-tree can be labeled in linear time. Two labeled PQ-trees are identical, if they are isomorphic as rooted trees and the corresponding vertices have the same labels.

Two labeled PQ-trees areequivalent, if they can be made identical by applying a sequence of transformations as above, with the modification that when reversing the children of a Q-node, its label must also be adjusted correctly. The key theorem that yields a way to handle isomorphism questions on interval graphs is the following:

Theorem 4.1.1([96]). LetG1andG2be two interval graphs, and letTL(G1)andTL(G2)be the labeled version of a PQ-tree representingG1 andG2, respectively. ThenG1 is isomorphic toG2 if and only if TL(G1)is equivalent to TL(G2).

Given a Q-nodeqin a PQ-treeT, letx1, . . . , xmdenote its children from left to right. For a given childxi of q, we defineMq(i) to be the set of verticesv ∈ R1(q) for which Qq(v)