scispace - formally typeset
Search or ask a question

Showing papers by "Robert E. Tarjan published in 1983"


Book
Robert E. Tarjan1
01 Jan 1983
TL;DR: This paper presents a meta-trees tree model that automates the very labor-intensive and therefore time-heavy and therefore expensive process of manually selecting trees to grow in a graph.
Abstract: Foundations Disjoint Sets Heaps Search Trees Linking and Cutting Trees Minimum Spanning Trees Shortest Paths Network Flows Matchings

2,120 citations


Journal ArticleDOI
TL;DR: An O(mn log n)-time algorithm is obtained to find a maximum flow in a network of n vertices and m edges, beating by a factor of log n the fastest algorithm previously known for sparse graphs.

1,042 citations


Proceedings ArticleDOI
01 Dec 1983
TL;DR: A linear-time algorithm for the special case of the disjoint set union problem in which the structure of the unions (defined by a “union tree”) is known in advance, which gives similar improvements in the efficiency of algorithms for solving a number of other problems.
Abstract: This paper presents a linear-time algorithm for the special case of the disjoint set union problem in which the structure of the unions (defined by a “union tree”) is known in advance. The algorithm executes an intermixed sequence of m union and find operations on n elements in 0(m+n) time and 0(n) space. This is a slight but theoretically significant improvement over the fastest known algorithm for the general problem, which runs in 0(ma(m+n, n)+n) time and 0(n) space, where a is a functional inverse of Ackermann's function. Used as a subroutine, the algorithm gives similar improvements in the efficiency of algorithms for solving a number of other problems, including two-processor scheduling, the off-line min problem, matching on convex graphs, finding nearest common ancestors off-line, testing a flow graph for reducibility, and finding two disjoint directed spanning trees. The algorithm obtains its efficiency by combining a fast algorithm for the general problem with table look-up on small sets, and requires a random access machine for its implementation. The algorithm extends to the case in which single-node additions to the union tree are allowed. The extended algorithm is useful in finding maximum cardinality matchings on nonbipartite graphs.

398 citations


Proceedings ArticleDOI
01 Dec 1983
TL;DR: In this paper, self-adjusting trees have been used to create simple data structures for priority queues and search trees, where the adjustment is a sequence of exchanges of children, whereas in the case of search trees it is a series of rotations.
Abstract: We use the idea of self-adjusting trees to create new, simple data structures for priority queues (which we call heaps) and search trees. Unlike other efficient implementations of these data structures, self-adjusting trees have no balance condition. Instead, whenever the tree is accessed, certain adjustments take place. (In the case of heaps, the adjustment is a sequence of exchanges of children, in the case of search trees the adjustment is a sequence of rotations.) Self-adjusting trees are efficient in an amortized sense: any particular operation may be slow but any sequence of operations must be fast. Self-adjusting trees have two advantages over the corresponding balanced trees in both applications. First, they are simpler to implement because there are fewer cases in the algorithms. Second, they are more storage-efficient because no balance information needs to be stored. Furthermore, a self-adjusting search tree has the remarkable property that its running time (for any sufficiently long sequence of search operations) is within a constant factor of the running time for the same set of searches on any fixed binary tree. It follows that a self-adjusting tree is (up to a constant factor) as fast as the optimal fixed tree for a particular probability distribution of search requests, even though the distribution is unknown.

130 citations


Book
01 Jan 1983
TL;DR: Plya and Tarjan as mentioned in this paper presented a day-by-day transcription of a course on combinatorics at Stanford University, where elementary subjects such as combinations and permutations, and mathematical tools such as generating functions and Plyas Theory of Counting, are covered, as well as analyses of specific problems such as Ramsey Theory, matchings, and Hamiltonian and Eulerian paths.
Abstract: Developed from the authors introductory combinatorics course, this book focuses on a branch of mathematics which plays a crucial role in computer science. Combinatorial methods provide many analytical tools used for determining the expected performance of computer algorithms. Elementary subjects such as combinations and permutations, and mathematical tools such as generating functions and Plyas Theory of Counting, are covered, as are analyses of specific problems such as Ramsey Theory, matchings, and Hamiltonian and Eulerian paths. This introduction will provide students with a solid foundation in the subject. ---- "This is a delightful little paperback which presents a day-by-day transcription of a course taught jointly by Plya and Tarjan at Stanford University. Woods, the teaching assistant for the class, did a very good job of merging class notes into an interesting mini-textbook; he also included the exercises, homework, and tests assigned in the class (a very helpful addition for other instructors in the field). The notes are very well illustrated throughout and Woods and the Birkhuser publishers produced a very pleasant text. One can count on [Plya and Tarjan] for new insights and a fresh outlook. Both instructors taught by presenting a succession of examples rather than by presenting a body of theory[The book] is very well suited as supplementary material for any introductory class on combinatorics; as such, it is very highly recommended. Finally, for all of us who like the topic and delight in observing skilled professionals at work, this book is entertaining and, yes, instructive, reading." Mathematical Reviews (Review of the original hardcover edition) "The mathematical community welcomes this book as a final contribution to honour the teacher G. Plya." Zentralblatt MATH (Review of the original hardcover edition)

94 citations


Journal ArticleDOI
Robert E. Tarjan1
TL;DR: It is shown that a well-known class of balanced binary trees, the ‘symmetric binary B-trees’ of Bayer, have the same properties, which is not surprising, for Bayer's class and Olivie's class contain exactly the same binary trees.

83 citations


Journal ArticleDOI
TL;DR: It is shown that a polynomial time algorithm for a wider class of precedence constraints is unlikely, and it is proved that the problem to be NP-complete for precedence constraints that are the disjoint union of an in-forest and an out-forest (the “opposing forests” of the title).
Abstract: A basic problem of deterministic scheduling theory is that of scheduling n unit-length tasks on m identical processors subject to precedence constraints so as to meet a given overall deadline T C Hu’s classic “level algorithm” can be used to solve this problem in linear time if the precedence constraints have the form of an in-forest or an out-forest We show that a polynomial time algorithm for a wider class of precedence constraints is unlikely, by proving the problem to be NP-complete for precedence constraints that are the disjoint union of an in-forest and an out-forest (the “opposing forests” of our title) However, for any fixed value of m we show that this problem can be solved in polynomial time for such precedence constraints For the special case of $m = 3$ we provide a linear time algorithm

79 citations


Journal ArticleDOI
Robert E. Tarjan1
TL;DR: The present paper gives a simpler algorithm with the faster running time of O(m log n) time for hierarchically decomposing a directed n-vertex, m-edge graph with weighted edges into strong components.

41 citations


Journal ArticleDOI
TL;DR: Two new kinds of biased search trees are introduced: biased, a, b trees and pseudo-weight-balanced trees, which provide a biased generalization of B-trees and are suitable for use in paged external memory, whereas previous kinds ofbiased trees are suited for internal memory.
Abstract: In this paper, we introduce two new kinds of biased search trees: biased, a, b trees and pseudo-weight-balanced trees. A biased search tree is a data structure for storing a sorted set in which the access time for an item depends on its estimated access frequency in such a way that the average access time is small. Bent, Sleator, and Tarjan were the first to describe classes of biased search trees that are easy to update; such trees have applications not only in efficient table storage but also in various network optimization algorithms. Our biased a, b trees generalize the biased 2, b trees of Bent, Sleator, and Tarjan. They provide a biased generalization of B-trees and are suitable for use in paged external memory, whereas previous kinds of biased trees are suitable for internal memory. Our pseudo-weight-balanced trees are a biased version of weight-balanced trees much simpler than Bent's version. Weight balance is the natural kind of balance to use in designing biased trees; pseudo-weight-balanced trees are especially easy to implement and analyze.

22 citations


Book ChapterDOI
01 Jan 1983

12 citations


Journal ArticleDOI
TL;DR: In this paper, the authors presented an O(m(log n) 2 ) time algorithm for hierarchically decomposing a directed n-vertex, m-edge graph with weighted edges into strong components, which is useful in cluster analysis of data with an asymmetric similarity measure.

Journal ArticleDOI
Robert E. Tarjan1
TL;DR: This work devise methods that need only 2n + m bits, of which m are read-only, where rn is the number of edges in the graph, and which are expressed in a version of Dijkstra's guarded command language.
Abstract: Several space-efficmnt implementations of the two most common and useful kinds of graph search, namely, breadth-first search and depth-first search, are discussed. A straightforward implementation of each method requires n bits and n + O(1) pointers of auxiliary storage, where n is the number of vertices in the graph. We devise methods that need only 2n + m bits, of which m are read-only, where rn is the number of edges in the graph. We save space by folding the queue or stack required by the search into the graph representation; two of our methods for depth-first search are variants of the Deutsch-Schorr-Waite list-marking algorithm. Our algorithms are expressed in a version of Dijkstra's guarded command language.

Book ChapterDOI
01 Jan 1983

Book ChapterDOI
01 Jan 1983

Book ChapterDOI
01 Jan 1983
TL;DR: Polya's Theory of Counting Configuration Non-Equivalent with respect to a Given Permutation Group (CNCN) as discussed by the authors is a classic example of the non-equivalent theory of counting.
Abstract: February 2. Polya’s title for this part of the course was actually “Counting Configuration Non-Equivalent with Respect to a Given Permutation Group”. Just about everybody else refers to it as “Polya’s Theory of Counting”. This later title is somewhat easier to remember, though not as indicative of the content. We’ll stick to the simpler title; for the content, read on!

Book ChapterDOI
01 Jan 1983