1,133 research outputs found

    Hitting and Harvesting Pumpkins

    Full text link
    The "c-pumpkin" is the graph with two vertices linked by c>0 parallel edges. A c-pumpkin-model in a graph G is a pair A,B of disjoint subsets of vertices of G, each inducing a connected subgraph of G, such that there are at least c edges in G between A and B. We focus on covering and packing c-pumpkin-models in a given graph: On the one hand, we provide an FPT algorithm running in time 2^O(k) n^O(1) deciding, for any fixed c>0, whether all c-pumpkin-models can be covered by at most k vertices. This generalizes known single-exponential FPT algorithms for Vertex Cover and Feedback Vertex Set, which correspond to the cases c=1,2 respectively. On the other hand, we present a O(log n)-approximation algorithm for both the problems of covering all c-pumpkin-models with a smallest number of vertices, and packing a maximum number of vertex-disjoint c-pumpkin-models.Comment: v2: several minor change

    Strong Connectivity in Directed Graphs under Failures, with Application

    Full text link
    In this paper, we investigate some basic connectivity problems in directed graphs (digraphs). Let GG be a digraph with mm edges and nn vertices, and let G∖eG\setminus e be the digraph obtained after deleting edge ee from GG. As a first result, we show how to compute in O(m+n)O(m+n) worst-case time: (i)(i) The total number of strongly connected components in G∖eG\setminus e, for all edges ee in GG. (ii)(ii) The size of the largest and of the smallest strongly connected components in G∖eG\setminus e, for all edges ee in GG. Let GG be strongly connected. We say that edge ee separates two vertices xx and yy, if xx and yy are no longer strongly connected in G∖eG\setminus e. As a second set of results, we show how to build in O(m+n)O(m+n) time O(n)O(n)-space data structures that can answer in optimal time the following basic connectivity queries on digraphs: (i)(i) Report in O(n)O(n) worst-case time all the strongly connected components of G∖eG\setminus e, for a query edge ee. (ii)(ii) Test whether an edge separates two query vertices in O(1)O(1) worst-case time. (iii)(iii) Report all edges that separate two query vertices in optimal worst-case time, i.e., in time O(k)O(k), where kk is the number of separating edges. (For k=0k=0, the time is O(1)O(1)). All of the above results extend to vertex failures. All our bounds are tight and are obtained with a common algorithmic framework, based on a novel compact representation of the decompositions induced by the 11-connectivity (i.e., 11-edge and 11-vertex) cuts in digraphs, which might be of independent interest. With the help of our data structures we can design efficient algorithms for several other connectivity problems on digraphs and we can also obtain in linear time a strongly connected spanning subgraph of GG with O(n)O(n) edges that maintains the 11-connectivity cuts of GG and the decompositions induced by those cuts.Comment: An extended abstract of this work appeared in the SODA 201
    • …
    corecore