Solving Target Set Selection with Bounded Thresholds Faster than $2^n$

In this paper we consider the Target Set Selection problem. The problem naturally arises in many fields like economy, sociology, medicine. In the Target Set Selection problem one is given a graph $G$ with a function $\operatorname{thr}: V(G) \to \mathbb{N} \cup \{0\}$ and integers $k, \ell$. The goal of the problem is to activate at most $k$ vertices initially so that at the end of the activation process there is at least $\ell$ activated vertices. The activation process occurs in the following way: (i) once activated, a vertex stays activated forever; (ii) vertex $v$ becomes activated if at least $\operatorname{thr}(v)$ of its neighbours are activated. The problem and its different special cases were extensively studied from approximation and parameterized points of view. For example, parameterizations by the following parameters were studied: treewidth, feedback vertex set, diameter, size of target set, vertex cover, cluster editing number and others. Despite the extensive study of the problem it is still unknown whether the problem can be solved in $\mathcal{O}^*((2-\epsilon)^n)$ time for some $\epsilon>0$. We partially answer this question by presenting several faster-than-trivial algorithms that work in cases of constant thresholds, constant dual thresholds or when the threshold value of each vertex is bounded by one-third of its degree. Also, we show that the problem parameterized by $\ell$ is W[1]-hard even when all thresholds are constant.


Introduction
In this paper we consider the Target Set Selection problem.In the problem one is given a graph G with a function thr : V (G) → N ∪ {0} (a threshold function), and two integers k, .The question of the problem is to find a vertex subset S ⊆ V (G) (a target set) such that |S| ≤ k and if we initially activate S then eventually at least vertices of G become activated.Hypothesis 2. [29] For every hereditary graph class Π that can be recognized in polynomial time, the Maximum Induced Π-Subgraph problem can be solved in O * ((2 − ) n ) time for some > 0.
As in the stated hypotheses and mentioned papers, our goal is to come up with an algorithm that works faster than brute-force.We partially answer this question by presenting several O * ((2 − ) n ) running time algorithms for Target Set Selection when thresholds, i.e. the values of thr(v), are bounded by some fixed constant and in case when the values of thr(v) − deg(v), so-called dual thresholds, are bounded by some fixed constant for every v ∈ V (G).We think that this result may be interesting mainly because of the following two reasons.Firstly, the result is established for a well-studied problem with many applications and hence can reveal some important combinatorial or algorithmic structure of the problem.Secondly, maybe by resolving the asked question we could make progress in resolving hypotheses 1, 2.
Our results.In this paper, we establish the following algorithmic results.
Perfect Target Set Selection can be solved in We also prove the following lower bound.Target Set Selection parameterized by is W [1]-hard even if thr(v) = 2 for every v ∈ V (G).

Notation and problem definition
We use standard graph notation.We consider only simple graphs, i.e. undirected graphs without loops and multiple edges.By V (G) we denote the set of vertices of G and by E(G) we denote the set of its edges.We let n = |V (G)|.N (v) denotes the set of neighbours of vertex v ∈ V (G), and we denote the subgraph of G induced by a set F of its vertices.Define by deg For a graph G, threshold function thr and X ⊆ V (G) we put S 0 (X) = X and for every i > 0 we define We say that v becomes activated in the i th round, if v ∈ S i (X) \ S i−1 (X), i.e. v is not activated in the (i − 1) th round and is activated in the i th round.By activation process yielded by X we mean the sequence S 0 (X), S 1 (X), . . ., S i (X), . . ., S n (X).Note that S n (X) = S n+1 (X) as S i (X) ⊆ S i+1 (X) and n rounds is always enough for the activation process to converge.By S(X) we denote the set of vertices that eventually become activated, and we say that X activates S(X) in (G, thr).Thus, S(X) = S n (X).
We recall the definition of Target Set Selection.
We call a solution X of Target Set Selection a target set of (G, thr).By Perfect Target Set Selection we understand a special case of Target Set Selection with = n.We call X a perfect target set of (G, thr), if it activates all vertices of G, i.e.S(X) = V (G).
Most of the algorithms described in this paper are recursive algorithms that use branching technique.Such algorithms are described by reduction rules, that are used to simplify a problem instance, and branching rules, that are used to solve an instance by recursively solving smaller instances.If a branching rule branches an instance of size n into r instances of size n − t 1 , n − t 2 , . . ., n − t r , we call (t 1 , t 2 , . . ., t r ) a branching vector of this branching rule.By a branching factor of a branching rule we understand a constant c that is a solution of a linear reccurence corresponding to some branching vector of this rule; such constants are used to bound the running time of an algorithm following the rule with c n .Note that a branching rule may have multiple corresponding branching vectors and multiple corresponding branching factors.By the worst branching factor of a branching rule (or multiple branching rules, if they are applied within the same algorithm) we understand the largest among its branching factors.We refer to [21] for a more detailed explanation of these aspects.
In our work we also use the following folklore result.
Lemma 1.For any positive integer n and any α such that 0 < α ≤ 1 2 , we have

Algorithm: minimal_pvcs(G, F, A, Z)
Algorithm enumerating all minimal partial vertex covers of a graph.

Minimal partial vertex covers
Definition 2. Let G be a graph.We call a subset S ⊆ V (G) of its vertices a T -partial vertex cover of G for some T ⊆ E(G), if the set of edges covered by vertices in S is exactly The following theorem bounds the number of minimal partial vertex covers in graphs of bounded degree.We note that somewhat similar results were proven by Björklund et al. [8].
Theorem 3.For any positive integer t, there is a constant ω t < 1 and an algorithm that, given an n-vertex graph G with ∆(G) < t as input, outputs all minimal partial vertex covers of G in O * (2 ωtn ) time.
Proof.We present a recursive branching algorithm that lists all minimal partial vertex covers of G. Pseudocode of the algorithm is presented in Figure 1.As input, the algorithm takes three sets F, A, Z such that F A Z = V (G).The purpose of the algorithm is to enumerate all minimal partial vertex covers that contain A as a subset and do not intersect with Z.So the algorithm outputs all minimal partial vertex covers S of G satisfying S ∩ (A Z) = A. It easy to see that then minimal_pvcs(G, V (G), ∅, ∅) enumerates all minimal partial vertex covers of G.
The algorithm uses only the following branching rule.If there is a vertex In other words, we branch on which vertices in N [v] belong to minimal partial vertex cover and which do not.Note that if S is a minimal partial vertex cover then it cannot contain N [v], since otherwise S \ {v} is its proper subset and covers the same edges.Hence, above branching consider all possible cases.Since ∆(G) < t, the worst branching factor is (2 t − 1) If the branching rule cannot be applied then we apply brute-force on all possible variants of the intersection of the minimal partial vertex cover S and the set F .So we consider all 2 |F | variants of S ∩ F , and filter out variants that do not correspond to a minimal partial vertex cover.Minimality of a partial vertex cover can be checked in polynomial time, so filtering out adds only a polynomial factor. .This leads to the following upper bound on the running time of the algorithm:

I P E C
.
Hence, we can put 3 Algorithms for bounded thresholds

Algorithm for thresholds bounded by fixed constant
In this subsection we prove the following theorem.
Theorem 4. Let t be a fixed constant.For Target Set Selection with all thresholds bounded by t there is a O * ((2 − t ) n )-time algorithm, where t is a positive constant that depends only on t.
Our algorithm consists of three main stages.In the first stage we apply some simple reduction and branching rules.If the instance becomes small enough we then apply bruteforce and solve the problem.Otherwise, we move to the second stage of the algorithm.In the second stage we perform branching rules that help us describe the activation process.After that we move to the third stage in which we run special dynamic program that finally solves the problem for each branch.Let us start the description of the algorithm.

Stage I
In the first stage our algorithm applies some branching rules.In each branch we maintain the following partition of V (G) into three parts A, Z, F .These parts have the following meaning: A is the set of vertices that are known to be in our target set, Z -the set of vertices that are known to be not in the target set, F -the set of all other vertices (i.e.vertices about that we do not know any information so far).At the beginning, we have We start the first stage with exhaustive application of reduction rule 1 and branching rule 1.

Reduction rule 1. If there is any vertex v ∈ S(A), but v /
∈ A Z, then assign v to Z.
Reduction rule 1 is correct as there is no need to put a vertex in a target set if it will become activated eventually by the influence of its neighbours.

Branching rule 1. If there is a vertex
and branch on the following branches: 1.For each subset of vertices S ⊆ T ∪ {v} of size less than thr(v) consider a branch in which we put S into A and we put other vertices T ∪ {v} \ S into Z; 2. Additionally consider the branch in which we assign all vertices from T to A and v is assigned to Z.
It is enough to consider only above-mentioned branches.All other possible branches assign at least thr(v) vertices from T ∪ {v} to A, and we always can replace such branch with the branch assigning T to A, since it leads to the activation of all vertices in T ∪ {v} and adds at most the same number of vertices into a target set.Branching rule 1 considers 2 thr(v)+1 − thr(v) − 1 options for thr(v) + 1 vertices, thus it gives the biggest branching factor of (2 t+1 − t − 1) 1 t+1 (here and below t = max v∈V (G) thr(v)).

Branching rule 2.
If |F | ≤ γn, where γ is a constant to be chosen later, then simply apply brute-force on how vertices in F should be assigned to A and Z.
If branching rule 2 is applied in all branches then the running time of the whole algorithm is at most 2 γn (2 t+1 − t − 1) and we do not need to use stages II and III, as the problem is already solved in this case.

Stage II
After exhaustive application of reduction rule 1 and branching rules 1 and 2, in each branch we either know the answer or we have the following properties: Now, in order to solve the problem it is left to identify the vertices of a target set that belong to F .It is too expensive to consider all 2 |F | subsets of F as F is too big.Instead of this direct approach (brute-force on all subsets of F ) we consider several subbranches.In each such branch we almost completely describe the activation process of the graph.For each branch, knowing this information about the activation process, we find an appropriate target set by solving a special dynamic program in stage III.
Let X be an answer (a target set).X can be expressed as X = A B where B ⊆ F .At the beginning of the activation process only vertices in S 0 (X) = X = A B are activated, after the first round vertices in S 1 (A B) are activated, and so on.It is clear that S(A B) = S n (A B).Unfortunately, we cannot compute the sequence of S i (A B) as we do not know B. Instead we compute the sequence P 0 , P 1 , . . ., P n = P such that P i \ B = S i (X) \ B and P i ⊆ P i+1 for any i.
First of all, using Theorem 3 we list all minimal partial vertex covers of the graph G[F ].For each minimal partial vertex cover C we create a branch that indicates that C ⊆ B and, moreover, C covers exactly the same edges in G[F ] as B does.In other words, any edge in G[F ] has at least one endpoint in B if and only if it has at least one endpoint in C. Note that such C exists for any B. One can obtain C by removing vertices from B one by one while it covers the same edges as B. When no vertex can be removed, then, by definition, the remaining vertices form a minimal partial vertex cover. Put We now show how to find P i+1 having P i .Recall that to do such transition from S i (X) to S i+1 (X) it is enough to find vertices with the number of neighbours in S i (X) being at least the threshold value of that vertex.As for P i and P i+1 , it is sufficient to check that the number of activated neighbours has reached the threshold only for vertices that are not in B. Thus any transition from P i to P i+1 can be done by using a procedure that, given P i and any vertex v / ∈ P i , checks whether v becomes activated in the (i + 1) th round or not, under the assumption that v / ∈ B. Given P i it is not always possible to find a unique P i+1 as we do not know B. That is why in such cases we create several subbranches that indicate potential values of P i+1 .
Let us now show how to, for each vertex v / ∈ P i , figure out whether v is in P i+1 (see pseudocode in Figure 2).Since we know P i and P i ⊆ P i+1 , we assume that v / ∈ P i .If |N (v) ∩ P i | ≥ thr(v) then we simply include v in P i+1 .We claim that this check is enough for v ∈ F .Proof.We show that by proving that

I P E C
If v ∈ B, the decision for v does not matter.Thus if v ∈ F and |N (v) ∩ P i | < thr(v), we may simply not include v in P i+1 .
If v ∈ Z, at this point, we cannot compute the number of activated neighbours of v exactly as we do not know what neighbours of v are in B. Note that we do not need the exact number of such neighbours if we know that this value is at least thr(v).Thus we branch into thr(v) + 1 subbranches corresponding to the value of min{|N (v) ∩ B|, thr(v)}, from now on we denote this value as dg(v).
On the other hand, we know all activated neighbours of v that are in So the number of activated neighbours of v is at least m + dg(v).Also there may be some activated neighbours of v in N (v) ∩ P i ∩ F .However, we cannot simply add |N (v) ∩ P i ∩ F | to m + dg(v) since vertices in P i ∩ B will be computed twice.So we are actually interested in the value of |(N (v) ∩ P i ∩ F ) \ B|.That is why for vertices from N (v) ∩ P i ∩ F we simply branch whether they are in B or not.After that we compare m + dg(v) + |(N (v) ∩ P i ∩ F ) \ B| with thr(v) and figure out whether v becomes activated in the current round or not.
Note that once we branch on the value of min{|N (v) ∩ B|, thr(v)}, or on whether v ∈ B or not for some v, we will not branch on the same value or make a decision for the same vertex again as it makes no sense.Once fixed, the decision should not change along the whole branch and all of its subbranches, otherwise the information about B would just become inconsistent.
Let us now bound the number of branches created.There are three types of branchings in the second stage: 1. Branching on the value of the minimal partial vertex cover C. By Theorem 3, there is at most O * 2 ωt|F | such branches.2. Branching on the value of dg(v) = min{|N (v) ∩ B|, thr(v)} with v ∈ Z.There is at most (t + 1) |Z| such possibilities since t ≥ min{|N (v) ∩ B|, thr(v)} ≥ 0. 3. Branching on whether vertex u is in B or not.We perform this branching only for vertices in the set N (v) ∩ P i ∩ F with v ∈ Z only when its size is strictly smaller than thr(v) ≤ t.
Hence we perform a branching of this type on at most (t − 1)|Z| vertices.
Hence, the total number of the branches created in stage II is at most 1) .

Stage III
Now, for each branch our goal is to find the smallest set X which activates at least vertices and agrees with all information obtained during branching in a particular branch.That is, A ⊆ X, Z ∩ X = ∅ (branchings made in stage I); C ⊆ X (branching of the first type in stage II); Algorithm: is_activated(G, thr, A, Z, F, P i , v) Input: G, thr, A, Z, F as usual, P i such that P i \ B = S i (A B) \ B for some B, and a vertex v / From now on we assume that we are considering some particular branching leaf.Let A be the set of vertices that are known to be in X for a given branch and Z be the set of vertices known to be not in X (note that A ⊆ A and Z and for each i ∈ {1, 2, . . ., z} the value min{thr(v i ), |N (v i ) ∩ B|} equals dg(v i ).This is true since the information obtained during branching completely determines the value of P .
In order to solve the obtained problem we employ dynamic programming.We create a table T S of size f × × (t + 1) z .For all Note that the choice of B 2 depends only on values i, p, d 1 , d 2 , . . ., d z , but not on the value of B 1 directly.In other words, T S(i, p, d 1 , d 2 , . . ., d z ) stores one of optimal ways of how the remaining f − i vertices in F should be chosen into B if the first i vertices in F was chosen correspondingly to the values of p and d j .
Note that for some fields in the T S table there may be no appropriate value of B 2 (there is no appropriate solution).In such cases, we put the corresponding element to be equal to V (G).It is a legitimate operation since we are solving a minimization problem.Note that I P E C 2 0 1 8

22:10
Solving Target Set Selection Faster than 2 n the desired value of B will be stored as We assign T S(f , p, dg(v 1 ), dg(v 2 ), . . .dg(v z )) = ∅ for every p such that p + |P ∩ (V (G) \ F )| ≥ .We do this since values p, dg(v 1 ), dg(v 2 ), . . .dg(v z ) indicate that A B 1 is already a solution.In all other fields of type T S(f , •, • • • , •) we put the value of V (G).We now show how to evaluate values T S(i, p, d 1 , d 2 , . . ., d z ) for any i ≥ 0 smaller than f .We can evaluate any T S(i,  1) time for any fixed subbranch of stage I.
Actually, the (t + 1) 2|Z| multiplier in the upper bound can be improved.Recall that it corresponds to the number of possible variants of dg(v j ) and the number of possible variants of d j .However, note that d j ≤ dg(v j ).So after each of dg(v j ) is fixed in stage II, for d j there is only dg(v j ) + 1 options in stage III.Hence, each of the pairs (d j , dg(v j )) can be presented only in t+2 2 variants.This gives an improvement of the (t + 1) 2|Z| multiplier to a Now we are ready to choose γ.We set the value of γ so that computation in each branch created at the end of stage I takes at most O * (2 γn ) time.Note that the upper bound on the running time required for stages II and III increases while the value of |F | decreases.

Two algorithms for constant thresholds in the perfect case
Here, we present two algorithms for special cases of Perfect Target Set Selection with thresholds being at most two or three.These algorithms use the idea that cannot be used in the general case of Target Set Selection, so the running times of these algorithms are significantly faster than the running time of the algorithm from the previous subsection.We provide their full descriptions in the full version of our paper.
Theorem 5. Perfect Target Set Selection with thresholds being at most two can be solved in O * (1.90345 n ) time.
will additionally activate all vertices in S E,1 .Note that S 1 is a target set S of size at most k activating at least vertices.
If |H| > ke,1 2 then construct S 1 from S by simply adding ke,1 2 arbitrary vertices from H.Each of these vertices will additionally activate at least one vertex corresponding edge, thus S 1 is a target set of size at most k activating at least vertices.
We have shown how to transform any target set S activating at least k + k 2 vertices in G into a target set S 1 such that S 1 ⊆ V and S 1 activates at least the same number of vertices in G .As we have shown earlier, no vertex in E \ S 1 influence the activation process after becoming activated.Then, since S 1 ∩ E = ∅, S 1 activates only vertices in E in the first round and the process finishes.Hence, if the instance for G has a solution, then G has a clique of size k.

Claim 1 .
If v ∈ F \ B, then v becomes activated in the i th round if and only if |N (v) ∩ P i | ≥ thr(v).

Figure 2
Figure 2 Procedure determining whether a vertex becomes activated in the current round.

Table 1
Some known results on different parameterizations of Perfect Target Set Selection.In the Thresholds column we indicate restrictions on the threshold function under which the results were obtained.Here t denotes the maximum threshold value.

2 0 1 8 22:6 Solving Target Set Selection Faster than 2 n
Note that we run brute-force only if every vertex in F has at least one neighbour in A Z, in other words, A Z is a dominating set of G. Since ∆(G) < t, any dominating set of G consists of at least n t vertices.Hence, |F | ≤ (t−1)n •, •, . . ., •) in polynomial time if we have all values T S(i + 1, •, •, . . ., •) evaluated.For each j ∈ {1, 2, . . ., z}, let d i+1 j = min {thr(v j ), d j + |N (v j ) ∩ {u i+1 }|}.In order to compute T S(i, p, d 1 , d 2 , . . ., d z ), we need to decide whether u i+1 is in target set or not.If u i+1 is taken into B then d j becomes equal to d i+1 j for each j, if it is not, none of d j should change.Hence, T S(i, p, d j ) = min T S(i + 1, p + 1, d i+1 j ) ∪ {u i+1 }, T S(i + 1, p + |P ∩ {u i+1 }|, d j )] .Since 0 ≤ d j ≤ dg(v j ) for any j, the T S table has O * (t + 1) |Z| fields.Each field of the table is evaluated in polynomial time.So the desired B is found (hence, the solution is found) in O * (t + 1) |Z| time for any branch fixed in stage II.Stages II and III together run in 2 ωt|F |