Results 1  10
of
27
Improved Dynamic Reachability Algorithms for Directed Graphs
, 2002
"... We obtain several new dynamic algorithms for maintaining the transitive closure of a directed graph, and several other algorithms for answering reachability queries without explicitly maintaining a transitive closure matrix. Among our algorithms are: (i) A decremental algorithm for maintaining the ..."
Abstract

Cited by 29 (3 self)
 Add to MetaCart
We obtain several new dynamic algorithms for maintaining the transitive closure of a directed graph, and several other algorithms for answering reachability queries without explicitly maintaining a transitive closure matrix. Among our algorithms are: (i) A decremental algorithm for maintaining the transitive closure of a directed graph, through an arbitrary sequence of edge deletions, in O(mn) total expected time, essentially the time needed for computing the transitive closure of the initial graph. Such a result was previously known only for acyclic graphs.
Efficient fieldsensitive pointer analysis for C
 IN PROCEEDINGS OF THE ACM WORKSHOP ON PROGRAM ANALYSIS FOR SOFTWARE TOOLS AND ENGINEERING (PASTE
"... The subject of this paper is flow and contextinsensitive pointer analysis. We present a novel approach for precisely modelling struct variables and indirect function calls. Our method emphasises efficiency and simplicity and is based on a simple language of set constraints. We obtain an O(v 4) bou ..."
Abstract

Cited by 27 (8 self)
 Add to MetaCart
The subject of this paper is flow and contextinsensitive pointer analysis. We present a novel approach for precisely modelling struct variables and indirect function calls. Our method emphasises efficiency and simplicity and is based on a simple language of set constraints. We obtain an O(v 4) bound on the time needed to solve a set of constraints from this language, where v is the number of constraint variables. This gives, for the first time, some insight into the hardness of performing fieldsensitive pointer analysis of C. Furthermore, we experimentally evaluate the time versus precision tradeoff for our method by comparing against the fieldinsensitive equivalent. Our benchmark suite consists of 11 common C programs ranging in size from 15,000 to 200,000 lines of code. Our results indicate the fieldsensitive analysis is more expensive to compute, but yields significantly better precision. In addition, our technique has been integrated into the latest release (version 4.1) of the GNU Compiler GCC. Finally, we identify several previously unknown issues with an alternative and less precise approach to modelling struct variables, known as
LinearTime PointerMachine Algorithms for Least Common Ancestors, MST Verification, and Dominators
 IN PROCEEDINGS OF THE THIRTIETH ANNUAL ACM SYMPOSIUM ON THEORY OF COMPUTING
, 1998
"... We present two new data structure toolsdisjoint set union with bottomup linking, and pointerbased radix sortand combine them with bottomlevel microtrees to devise the first lineartime pointermachine algorithms for offline least common ancestors, minimum spanning tree (MST) verification, ..."
Abstract

Cited by 27 (4 self)
 Add to MetaCart
We present two new data structure toolsdisjoint set union with bottomup linking, and pointerbased radix sortand combine them with bottomlevel microtrees to devise the first lineartime pointermachine algorithms for offline least common ancestors, minimum spanning tree (MST) verification, randomized MST construction, and computing dominators in a flowgraph.
A fully dynamic reachability algorithm for directed graphs with an almost linear update time
 In Proc. of ACM Symposium on Theory of Computing
, 2004
"... We obtain a new fully dynamic algorithm for the reachability problem in directed graphs. Our algorithm has an amortized update time of O(m+n log n) and a worstcase query time of O(n), where m is the current number of edges in the graph, and n is the number of vertices in the graph. Each update oper ..."
Abstract

Cited by 26 (1 self)
 Add to MetaCart
We obtain a new fully dynamic algorithm for the reachability problem in directed graphs. Our algorithm has an amortized update time of O(m+n log n) and a worstcase query time of O(n), where m is the current number of edges in the graph, and n is the number of vertices in the graph. Each update operation either inserts a set of edges that touch the same vertex, or deletes an arbitrary set of edges. The algorithm is deterministic and uses fairly simple data structures. This is the first algorithm that breaks the O(n 2) update barrier for all graphs with o(n 2)edges. One of the ingredients used by this new algorithm may be interesting in its own right. It is a new dynamic algorithm for strong connectivity in directed graphs with an interesting persistency property. Each insert operation creates a new version of the graph. A delete operation deletes edges from all versions. Strong connectivity queries can be made on each version of the graph. The algorithm handles each update in O(mα(m, n)) amortized time, and each query in O(1) time, where α(m, n) is a functional inverse of Ackermann’s function appearing in the analysis of the unionfind data structure. Note that the update time of O(mα(m, n)), in case of a delete operation, is the time needed for updating all versions of the graph. Categories and Subject Descriptors G.2.2 [Discrete Mathematics]: Graph Theory—Graph algorithms, Path and circuit problems
A note on onthefly verification algorithms
 In Proc. of TACAS’05, LNCS
, 2005
"... Abstract. The automatatheoretic approach to verification of LTL relies on an algorithm for finding accepting cycles in the product of the system and a B"uchi automaton for the negation of the formula. Explicitstate model checkers typically construct the product space "on the fly " a ..."
Abstract

Cited by 23 (2 self)
 Add to MetaCart
Abstract. The automatatheoretic approach to verification of LTL relies on an algorithm for finding accepting cycles in the product of the system and a B"uchi automaton for the negation of the formula. Explicitstate model checkers typically construct the product space "on the fly " and explore the states using depthfirst search. We survey algorithms proposed for this purpose and propose two improved algorithms, one based on nested DFS, the other on strongly connected components. We compare these algorithms both theoretically and experimentally and determine cases where both algorithms can be useful. 1 Introduction The modelchecking problem for finitestate systems and lineartime temporal logic (LTL) is usually reduced to checking the emptiness of a B"uchi automaton, i.e. the product of the system and an automaton for the negated formula [23]. Various strategies exist for reducing the size of the automaton. For instance, symbolic model checking employs data structures to compactly represent large sets of states. This strategy combines well with breadthfirst search, leading to solutions whose worstcase time is essentially O(n2) or O(n log n), if n is the size of the product. A survey of symbolic emptiness algorithms can be found in [8]. Explicitstate model checkers, on the other hand, construct the product automaton `on the fly', i.e. while searching the automaton. Thus, the model checker may be able to find a counterexample without ever constructing the complete state space. Onthefly verification can be combined with partial order methods [18, 15] to reduce the effect of state explosion.
Onthefly Reachability and Cycle Detection for Recursive State Machines
, 2005
"... Searching the state space of a system using enumerative and onthefly depthfirst traversal is an established technique for model checking finitestate systems. In this paper, we propose algorithms for onthefly exploration of recursive state machines, or equivalently pushdown systems, which are ..."
Abstract

Cited by 14 (1 self)
 Add to MetaCart
Searching the state space of a system using enumerative and onthefly depthfirst traversal is an established technique for model checking finitestate systems. In this paper, we propose algorithms for onthefly exploration of recursive state machines, or equivalently pushdown systems, which are suited for modeling the behavior of procedural programs. We present algorithms for reachability (is a bad state reachable?) as well as for fair cycle detection (is there a reachable cycle with progress?). We also report on an implementation of these algorithms to check safety and liveness properties of recursive boolean programs, and its performance on existing benchmarks.
Optimal Edge Deletions for Signed Graph Balancing
, 2007
"... The Balanced Subgraph problem (edge deletion variant) asks for a 2coloring of a graph that minimizes the inconsistencies with given edge labels. It has applications in social networks, systems biology, and integrated circuit design. We present an exact algorithm for Balanced Subgraph based on a com ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
The Balanced Subgraph problem (edge deletion variant) asks for a 2coloring of a graph that minimizes the inconsistencies with given edge labels. It has applications in social networks, systems biology, and integrated circuit design. We present an exact algorithm for Balanced Subgraph based on a combination of data reduction rules and a fixedparameter algorithm. The data reduction is based on finding small separators and a novel gadget construction scheme. The fixedparameter algorithm is based on iterative compression with a very effective heuristic speedup. Our implementation can solve biological realworld instances exactly for which previously only approximations [DasGupta et al., WEA 2006] were known.
Online Algorithms for Topological Order and Strongly Connected Components
, 2003
"... We consider how to maintain the topological order of a directed acyclic graph (DAG) in the presence of edge insertions and deletions. We present a new algorithm and obtain a marginally improved complexity result over the previously known O(#log#). In addition, we provide an empirical compari ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
We consider how to maintain the topological order of a directed acyclic graph (DAG) in the presence of edge insertions and deletions. We present a new algorithm and obtain a marginally improved complexity result over the previously known O(#log#). In addition, we provide an empirical comparison against three existing solutions using random DAG's. The results show our algorithm to out perform the others on sparse graphs. Finally, we show how the algorithm can be extended to identify strongly connected components online.
Eager stOrdering
, 2002
"... Given a biconnected graph G = (V; E) and an edge fs; tg 2 E, an stordering is an ordering v1, ..., vn of V such that s = v1 , t = vn , and every other vertex has both a highernumbered and a lower numbered neighbor. Previous lineartime algorithms to compute such orderings are based on a preprocess ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
Given a biconnected graph G = (V; E) and an edge fs; tg 2 E, an stordering is an ordering v1, ..., vn of V such that s = v1 , t = vn , and every other vertex has both a highernumbered and a lower numbered neighbor. Previous lineartime algorithms to compute such orderings are based on a preprocessing step in which depthfirst search is used to compute lowpoints. The actual ordering is determined only in a second pass over the graph. We present