Results 1  10
of
19
What Are Principal Typings and What Are They Good For?
, 1995
"... We demonstrate the pragmatic value of the principal typing property, a property more general than ML's principal type property, by studying a type system with principal typings. The type system is based on rank 2 intersection types and is closely related to ML. Its principal typing property ..."
Abstract

Cited by 102 (0 self)
 Add to MetaCart
We demonstrate the pragmatic value of the principal typing property, a property more general than ML's principal type property, by studying a type system with principal typings. The type system is based on rank 2 intersection types and is closely related to ML. Its principal typing property provides elegant support for separate compilation, including "smartest recompilation" and incremental type inference, and for accurate type error messages. Moreover, it motivates a novel rule for typing recursive definitions that can type many examples of polymorphic recursion.
A Framework for Selective Recompilation in the Presence of Complex Intermodule Dependencies
, 1995
"... Compilers and other programming environment tools derive information from the source code of programs; derived information includes compiled code, interprocedural summary information, and call graph views. If the source program changes, the derived information needs to be updated. We present a simpl ..."
Abstract

Cited by 28 (10 self)
 Add to MetaCart
Compilers and other programming environment tools derive information from the source code of programs; derived information includes compiled code, interprocedural summary information, and call graph views. If the source program changes, the derived information needs to be updated. We present a simple framework for maintaining intermodule dependencies, embodying different tradeoffs in terms of space usage, speed of processing, and selectivity of invalidation, that eases the implementation of incremental update of derived information. Our framework augments a directed acyclic graph representation of dependencies with factoring nodes (to save space) and filtering nodes (to increase selectivity), and it includes an algorithm for efficient invalidation processing. We show how several schemes for selective recompilation, such as smart recompilation, filter sets for interprocedural summary information, and dependencies for wholeprogram optimization of objectoriented languages, map naturally...
Online Topological Ordering
, 2005
"... It is shown that the problem of maintaining the topological order of the nodes of a directed acyclic graph while inserting m edges can be solved in O(min{m 3/2 log n, m 3/2 + n 2 log n}) time, an improvement over the best known result of O(mn). In addition, we analyze the complexity of the same alg ..."
Abstract

Cited by 19 (1 self)
 Add to MetaCart
It is shown that the problem of maintaining the topological order of the nodes of a directed acyclic graph while inserting m edges can be solved in O(min{m 3/2 log n, m 3/2 + n 2 log n}) time, an improvement over the best known result of O(mn). In addition, we analyze the complexity of the same algorithm with respect to the treewidth k of the underlying undirected graph. We show that the algorithm runs in time O(mk log 2 n) for general k and that it can be implemented to run in O(n log n) time on trees, which is optimal. If the input contains cycles, the algorithm detects this.
Incremental Algorithms for Managing Temporal Constraints
 In Proceedings of the 8th IEEE International Conference on Tools with Arti Intelligence
, 1996
"... This paper addresses the problem of efficiently updating a network of temporal constraints when constraints are removed from or added to an existing network. Such processing tasks are important in many AI applications requiring a temporal reasoning module. First we analyze the relationship between s ..."
Abstract

Cited by 13 (1 self)
 Add to MetaCart
(Show Context)
This paper addresses the problem of efficiently updating a network of temporal constraints when constraints are removed from or added to an existing network. Such processing tasks are important in many AI applications requiring a temporal reasoning module. First we analyze the relationship between shortestpaths algorithms for directed graphs and arcconsistency techniques. Then we focus on a subclass of STP for which we propose new fast incremental algorithms for consistency checking and for maintaining the feasible times of the temporal variables. 1 Introduction The efficient management of temporal constraints is an important issue in several areas of Artificial Intelligence (AI), including knowledge representation and planning & scheduling. In these areas determining the consistency of a given set of constraints, and computing for each involved temporal variable a "window" of feasible values are essential reasoning tasks. In many AI applications these are "online" tasks prompted b...
A New Approach to Incremental Topological Ordering
"... Let G = (V,E) be a directed acyclic graph (dag) with n = V and m = E. We say that a total ordering ≺ on vertices V is a topological ordering if for every edge (u,v) ∈ E, we have u ≺ v. In this paper, we consider the problem of maintaining a topological ordering subject to dynamic changes to the ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
Let G = (V,E) be a directed acyclic graph (dag) with n = V and m = E. We say that a total ordering ≺ on vertices V is a topological ordering if for every edge (u,v) ∈ E, we have u ≺ v. In this paper, we consider the problem of maintaining a topological ordering subject to dynamic changes to the underlying graph. That is, we begin with an empty graph G =(V, /0) consisting of n nodes. The adversary adds m edges to the graph G, one edge at a time. Throughout this process, we maintain an online topological ordering of the graph G. In this paper, we present a new algorithm that has a total cost of O(n2 logn) for maintaining the topological ordering throughout all the edge additions. At the heart of our algorithm is a new approach for maintaining the ordering. Instead of attempting to place the nodes in an ordered list, we assign each node a label that is consistent with the ordering, and yet can be updated efficiently as edges are inserted. When the graph is dense, our algorithm is more efficient than existing algorithms. By way of contrast, the best known prior algorithms achieve only O(min(m1.5,n2.5)) cost.
Faster algorithms for incremental topological ordering
 In ICALP
, 2008
"... Abstract. We present two online algorithms for maintaining a topological order of a directed acyclic graph as arcs are added, and detecting a cycle when one is created. Our first algorithm takes O(m 1/2) amortized time per arc and our second algorithm takes O(n 2.5 /m) amortized time per arc, where ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
(Show Context)
Abstract. We present two online algorithms for maintaining a topological order of a directed acyclic graph as arcs are added, and detecting a cycle when one is created. Our first algorithm takes O(m 1/2) amortized time per arc and our second algorithm takes O(n 2.5 /m) amortized time per arc, where n is the number of vertices and m is the total number of arcs. For sparse graphs, our O(m 1/2) bound improves the best previous bound by a factor of log n and is tight to within a constant factor for a natural class of algorithms that includes all the existing ones. Our main insight is that the twoway search method of previous algorithms does not require an ordered search, but can be more general, allowing us to avoid the use of heaps (priority queues). Instead, the deterministic version of our algorithm uses (approximate) medianfinding; the randomized version of our algorithm uses uniform random sampling. For dense graphs, our O(n 2.5 /m) bound improves the best previously published bound by a factor of n 1/4 and a recent bound obtained independently of our work by a factor of log n. Our main insight is that graph search is wasteful when the graph is dense and can be avoided by searching the topological order space instead. Our algorithms extend to the maintenance of strong components, in the same asymptotic time bounds. 1
An O(n 2.75 ) algorithm for online topological ordering
 In Proceedings of the 10th Scandinavian Workshop on Algorithm Theory, LNCS 4059
, 2006
"... Abstract. We present a simple algorithm which maintains the topological order of a directed acyclic graph with n nodes under an online edge insertion sequence in O(n 2.75) time, independent of the number of edges m inserted. For dense DAGs, this is an improvement over the previous best result of O( ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
(Show Context)
Abstract. We present a simple algorithm which maintains the topological order of a directed acyclic graph with n nodes under an online edge insertion sequence in O(n 2.75) time, independent of the number of edges m inserted. For dense DAGs, this is an improvement over the previous best result of O(min{m 3 2 log n,m 3 2 + n 2 log n}) by Katriel and Bodlaender. We also provide an empirical comparison of our algorithm with other algorithms for online topological sorting. 1
Faster algorithms for online topological ordering
, 2007
"... We present two algorithms for maintaining the topological order of a directed acyclic graph with n vertices, under an online edge insertion sequence of m edges. Efficient algorithms for online topological ordering have many applications, including online cycle detection, which is to discover the fir ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
(Show Context)
We present two algorithms for maintaining the topological order of a directed acyclic graph with n vertices, under an online edge insertion sequence of m edges. Efficient algorithms for online topological ordering have many applications, including online cycle detection, which is to discover the first edge that introduces a cycle under an arbitrary sequence of edge insertions in a directed graph. The current fastest algorithms for the online topological ordering problem run in time O(min(m 3/2 logn,m 3/2 + n 2 logn)) and O(n 2.75) (the latter algorithm is faster for dense graphs, i.e., when m> n 11/6). In this paper we present faster algorithms for this problem. We first present a simple algorithm with running time O(n 5/2) for the online topological ordering problem. This is the current fastest algorithm for this problem on dense graphs, i.e., when m> n 5/3. We then present an algorithm with running time O((m + nlogn) √ m), which is an improvement over the O(min(m 3/2 logn,m 3/2 + n 2 logn)) algorithm it is a strict improvement when m is sandwiched between ω(n) and O(n 4/3). Our results yield an improved upper bound of O(min(n 5/2,(m+nlogn) √ m)) for the online topological ordering problem.
Incremental Cycle Detection, Topological Ordering, and Strong Component Maintenance
, 2008
"... We present two online algorithms for maintaining a topological order of a directed nvertex acyclic graph as arcs are added, and detecting a cycle when one is created. Our first algorithm handles m arc additions in O(m 3/2) time. For sparse graphs (m/n = O(1)), this bound improves the best previou ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
(Show Context)
We present two online algorithms for maintaining a topological order of a directed nvertex acyclic graph as arcs are added, and detecting a cycle when one is created. Our first algorithm handles m arc additions in O(m 3/2) time. For sparse graphs (m/n = O(1)), this bound improves the best previous bound by a logarithmic factor, and is tight to within a constant factor among algorithms satisfying a natural locality property. Our second algorithm handles an arbitrary sequence of arc additions in O(n 5/2) time. For sufficiently dense graphs, this bound improves the best previous bound by a polynomial factor. Our bound may be far from tight; we conjecture that the algorithm actually runs in O(n² log n) time. A completely different algorithm running in Θ(n² log n) time was given recently by Bender, Fineman, and Gilbert. We extend both of our algorithms to the maintenance of strong components, without affecting the asymptotic time bounds.
Averagecase analysis of online topological ordering
 of Lecture Notes in Computer Science
, 2007
"... Many applications like pointer analysis and incremental compilation require maintaining a topological ordering of the nodes of a directed acyclic graph (DAG) under dynamic updates. All known algorithms for this problem are either only analyzed for worstcase insertion sequences or only evaluated exp ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
(Show Context)
Many applications like pointer analysis and incremental compilation require maintaining a topological ordering of the nodes of a directed acyclic graph (DAG) under dynamic updates. All known algorithms for this problem are either only analyzed for worstcase insertion sequences or only evaluated experimentally on random DAGs. We present the first averagecase analysis of online topological ordering algorithms. We prove an expected runtime of O(n 2 polylog(n)) under insertion of the edges of a complete DAG in a random order for the algorithms of Alpern et