Three Partition Refinement Algorithms

  title={Three Partition Refinement Algorithms},
  author={Robert Paige and Robert Endre Tarjan},
  journal={SIAM J. Comput.},
We present improved partition refinement algorithms for three problems: lexicographic sorting, relational coarsest partition, and double lexical ordering. Our double lexical ordering algorithm uses a new, efficient method for unmerging two sorted sets. 

Figures from this paper

A Parallel Algorithm for Relational Coarsest Partition Problems and Its Implementation

Relational Coarsest Partition Problems (RCPPs) play a vital role in verifying concurrent systems and it may not be possible to design polylog time parallel algorithms for these problems.

From a simple elimination ordering to a strong elimination ordering in linear time

Simulation relations for pattern matching in directed graphs

Doubly Lexical Ordering of Dense 0 - 1 Matrices

The Parallel Complexity of Coarsest Set Partition Problems

A Synthesis on Partition Refinement: A Useful Routine for Strings, Graphs, Boolean Matrices and Automata

A single routine is proposed to quickly implement all these already known algorithms and to solve a large class of potentially new problems to yield a unique scheme for correctness proofs and complexity analysis.

The Parallel Complexity of Elimination Ordering Procedures

We prove that lexicographic breadth-first search is P-complete and that a variant of the parallel perfect elimination procedure of P. Klein [11] is powerful enough to compute a semi-perfect



Doubly lexical orderings of matrices

A doubly lexical ordering of the rows and columns of any real-valued matrix is defined. This notion extends to graphs. These orderings are used to prove and unify results on several classes of

A dichromatic framework for balanced trees

  • L. GuibasR. Sedgewick
  • Computer Science
    19th Annual Symposium on Foundations of Computer Science (sfcs 1978)
  • 1978
This paper shows how to imbed in this framework the best known balanced tree techniques and then use the framework to develop new algorithms which perform the update and rebalancing in one pass, on the way down towards a leaf.

The Design and Analysis of Computer Algorithms

This text introduces the basic data structures and programming techniques often used in efficient algorithms, and covers use of lists, push-down stacks, queues, trees, and graphs.

Partitioning a Graph in O(|A| log2 |V|)

Design and Analysis of a Data Structure for Representing Sorted Lists

This analysis leads to a data structure for representing sorted lists when the access pattern exhibits a (perhaps time-varying) locality of reference that is substantially simpler and may be practical for lists of moderate size.

Variations on the Common Subexpression Problem

Efficient algorithms are described for computing congruence closures in the general case and in the following two special cases to test expression eqmvalence and to test losslessness of joins in relational databases.

Amortized Computational Complexity

This paper surveys recent work by several researchers on amortized complexity and obtains “self-adjusting” data structures that are simple, flexible and efficient.

An n log n algorithm for minimizing states in a finite automaton