Results 1 
8 of
8
Banshee: A scalable constraintbased analysis toolkit
 In SAS ’05: Proceedings of the 12th International Static Analysis Symposium. London, United Kingdom
, 2005
"... Abstract. We introduce Banshee, a toolkit for constructing constraintbased analyses. Banshee’s novel features include a code generator for creating customized constraint resolution engines, incremental analysis based on backtracking, and fast persistence. These features make Banshee useful as a foun ..."
Abstract

Cited by 31 (1 self)
 Add to MetaCart
Abstract. We introduce Banshee, a toolkit for constructing constraintbased analyses. Banshee’s novel features include a code generator for creating customized constraint resolution engines, incremental analysis based on backtracking, and fast persistence. These features make Banshee useful as a foundation for production program analyses. 1
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 27 (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
Incremental maintenance of shortest distance and transitive closure in firstorder logic and sql
 ACM Trans. Database Syst
"... Given a database, the view maintenance problem is concerned with the efficient computation of the new contents of a given view when updates to the database happen. We consider the view maintenance problem for the situation when the database contains a (weighted) graph and the view is either the tran ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
Given a database, the view maintenance problem is concerned with the efficient computation of the new contents of a given view when updates to the database happen. We consider the view maintenance problem for the situation when the database contains a (weighted) graph and the view is either the transitive closure or the answer to the allpairs shortestdistance problem (APSD). We give incremental algorithms for (APSD), which support both edge insertions and deletions. For transitive closure, the algorithm is applicable to a more general class of graphs than those previously explored. Our algorithms use firstorder queries, along with addition (+) and lessthan (<) operations (F O(+, <)); they store O(n 2) number of tuples, where n is the number of vertices, and have AC 0 data complexity for integer weights. Since F O(+, <) is a sublanguage of SQL and is supported by almost all current database systems, our maintenance algorithms are more appropriate for database applications than nondatabase query type of maintenance algorithms.
PHALANX: Parallel Checking of Expressive Heap Assertions
 In ISMM
, 2010
"... Unrestricted use of heap pointers makes software systems difficult to understand and to debug. To address this challenge, we developed PHALANX — a practical framework for dynamically checking expressive heap properties such as ownership, sharing and reachability. PHALANX uses novel parallel algorith ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
Unrestricted use of heap pointers makes software systems difficult to understand and to debug. To address this challenge, we developed PHALANX — a practical framework for dynamically checking expressive heap properties such as ownership, sharing and reachability. PHALANX uses novel parallel algorithms to efficiently check a wide range of heap properties utilizing the available cores. PHALANX runtime is implemented on top of IBM’s Java production virtual machine. This has enabled us to apply our new techniques to real world software. We checked expressive heap properties in various scenarios and found the runtime support to be valuable for debugging and program understanding. Further, our experimental results on DaCapo and other benchmarks indicate that evaluating heap queries using parallel algorithms can lead to significant performance improvements, often resulting in linear speedups as the number of cores increases. To encourage adoption by programmers, we extended an existing JML compiler to translate expressive JML assertions about the heap into their efficient implementation provided by PHALANX. To debug her program, a programmer can annotate it with expressive heap assertions in JML, that are efficiently checked by PHALANX.
An Experimental Study of Algorithms for Fully Dynamic Transitive Closure ∗
, 2007
"... We have conducted an extensive experimental study on algorithms for fully dynamic transitive closure. We have implemented the recent fully dynamic algorithms by King [20], Roditty ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We have conducted an extensive experimental study on algorithms for fully dynamic transitive closure. We have implemented the recent fully dynamic algorithms by King [20], Roditty
BoundedLeg Distance and Reachability Oracles
"... In a weighted, directed graph an Lbounded leg path is one whose constituent edges have length at most L. For any fixed L, computing Lbounded leg shortest paths is just as easy as the standard shortest path algorithm. In this paper we study approximate distance oracles (and reachability oracles) fo ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
In a weighted, directed graph an Lbounded leg path is one whose constituent edges have length at most L. For any fixed L, computing Lbounded leg shortest paths is just as easy as the standard shortest path algorithm. In this paper we study approximate distance oracles (and reachability oracles) for bounded leg path problems, where the leg bound L is not known in advance, but forms part of the query. Boundedleg path problems are more complicated than standard shortest path problems because the number of distinct shortest paths between two vertices (over all leg bounds) could be as large as the number of edges in the graph. The bounded leg constraint models situations where there is some limited resource that must be spent when traversing an edge. For example, the size of a fuel tank or the life of a battery places a hard limit on how far a vehicle can travel in one leg before refueling or recharging. Someone making a long road trip may place a hard limit on how many hours they are willing to drive in any one day. Our main result is a nearly optimal algorithm for preprocessing a directed graph in order to answer approximate bounded leg distance and bounded leg shortest path queries. In particular, we can preprocess any graph in Õ(n3) time, producing a data structure with size Õ(n2) that answers (1 + ɛ)approximate bounded leg distance queries in O(log log n) time. If the corresponding (1 + ɛ)approximate shortest path has l edges it can be returned in O(l log log n) time. These bounds are all within polylog(n) factors of the best standard allpairs shortest path algorithm and improve substantially the previous best bounded leg shortest path algorithm, whose preprocessing time and space are O(n 4) and Õ(n 2.5). We also consider bounded leg oracles in other situations. In the context of planar directed graphs we give a timespace tradeoff for answering bounded leg reachability queries. For any k ≥ 2 we can build a data structure with size O(kn 1+1/k) that answers reachability queries in time
Improved Fully Dynamic Reachability Algorithm for Directed
, 2005
"... We propose a fully dynamic algorithm for maintaining reachability information in directed graphs. The proposed deterministic dynamic algorithm has an update time of O((ins ∗ n2) + (del ∗ (m + n ∗ log(n)))) where m is the current number of edges, n is the number of vertices in the graph, ins is the n ..."
Abstract
 Add to MetaCart
We propose a fully dynamic algorithm for maintaining reachability information in directed graphs. The proposed deterministic dynamic algorithm has an update time of O((ins ∗ n2) + (del ∗ (m + n ∗ log(n)))) where m is the current number of edges, n is the number of vertices in the graph, ins is the number of edge insertions and del is the number of edge deletions. Each query can be answered in O(1) time after each update. The proposed algorithm combines existing fully dynamic reachability algorithm with well known witness counting technique to improve efficiency of maintaining reachability information when edges are deleted. The proposed n algorithm improves by a factor of O ( 2 m+n∗log(n)) for edge deletion over the best existing fully dynamic algorithm for maintaining reachability information. 1
Banshee: A Practical ConstraintBased Analysis
"... Abstract. We introduce Banshee, a toolkit for constructing constraintbased program analyses. Banshee’s novel features include a code generator for creating customized constraint resolution engines, an incremental analysis facility based on backtracking, and fast persistence based on serializing regi ..."
Abstract
 Add to MetaCart
Abstract. We introduce Banshee, a toolkit for constructing constraintbased program analyses. Banshee’s novel features include a code generator for creating customized constraint resolution engines, an incremental analysis facility based on backtracking, and fast persistence based on serializing regions of memory. These features make Banshee useful not only for rapid prototyping, but also as a foundation for program analyses used in production software tools. 1