47 research outputs found
Java Programs do not have Bounded Treewidth
We show that the control-flow graphs of Java programs, due to the labelled break and continue statements, have no upper bound on their treewidth. A single Java method containing labels and a loop nesting depth of can give a control-flow-graph with treewidth
Pushdown reachability with constant treewidth
We consider the problem of reachability in pushdown graphs. We study the problem for pushdown graphs with constant treewidth. Even for pushdown graphs with treewidth 1, for the reachability problem we establish the following: (i) the problem is PTIME-complete, and (ii) any subcubic algorithm for the problem would contradict the k-clique conjecture and imply faster combinatorial algorithms for cliques in graphs
An Efficient Algorithm for Computing Network Reliability in Small Treewidth
We consider the classic problem of Network Reliability. A network is given
together with a source vertex, one or more target vertices, and probabilities
assigned to each of the edges. Each edge appears in the network with its
associated probability and the problem is to determine the probability of
having at least one source-to-target path. This problem is known to be NP-hard.
We present a linear-time fixed-parameter algorithm based on a parameter
called treewidth, which is a measure of tree-likeness of graphs. Network
Reliability was already known to be solvable in polynomial time for bounded
treewidth, but there were no concrete algorithms and the known methods used
complicated structures and were not easy to implement. We provide a
significantly simpler and more intuitive algorithm that is much easier to
implement.
We also report on an implementation of our algorithm and establish the
applicability of our approach by providing experimental results on the graphs
of subway and transit systems of several major cities, such as London and
Tokyo. To the best of our knowledge, this is the first exact algorithm for
Network Reliability that can scale to handle real-world instances of the
problem.Comment: 14 page
Feasibility of Optimizations Requiring Bounded Treewidth in a Data Flow Centric Intermediate Representation
Data flow analyses are instrumental to effective compiler optimizations, and are typically implemented by extracting implicit data flow information from traversals of a control flow graph intermediate representation. The Regionalized Value State Dependence Graph is an alternative intermediate representation, which represents a program in terms of its data flow dependencies, leaving control flow implicit. Several analyses that enable compiler optimizations reduce to NP-Complete graph problems in general, but admit linear time solutions if the graph’s treewidth is limited. In this paper, we investigate the treewidth of application benchmarks and synthetic programs, in order to identify program features which cause the treewidth of its data flow graph to increase, and assess how they may appear in practical software. We find that increasing numbers of live variables cause unbounded growth in data flow graph treewidth, but this can ordinarily be remedied by modular program design, and monolithic programs that exceed a given bound can be efficiently detected using an approximate treewidth heuristic
LNCS
The notion of treewidth of graphs has been exploited for faster algorithms for several problems arising in verification and program analysis. Moreover, various notions of balanced tree decompositions have been used for improved algorithms supporting dynamic updates and analysis of concurrent programs. In this work, we present a tool for constructing tree-decompositions of CFGs obtained from Java methods, which is implemented as an extension to the widely used Soot framework. The experimental results show that our implementation on real-world Java benchmarks is very efficient. Our tool also provides the first implementation for balancing tree-decompositions. In summary, we present the first tool support for exploiting treewidth in the static analysis problems on Java programs
Small Vertex Cover makes Petri Net Coverability and Boundedness Easier
The coverability and boundedness problems for Petri nets are known to be
Expspace-complete. Given a Petri net, we associate a graph with it. With the
vertex cover number k of this graph and the maximum arc weight W as parameters,
we show that coverability and boundedness are in ParaPspace. This means that
these problems can be solved in space O(ef(k,W)poly(n)), where ef(k,W) is some
exponential function and poly(n) is some polynomial in the size of the input.
We then extend the ParaPspace result to model checking a logic that can express
some generalizations of coverability and boundedness.Comment: Full version of the paper appearing in IPEC 201