Results 1  10
of
23
Reverse Search for Enumeration
 Discrete Applied Mathematics
, 1993
"... The reverse search technique has been recently introduced by the authors for efficient enumeration of vertices of polyhedra and arrangements. In this paper, we develop this idea in a general framework and show its broader applications to various problems in operations research, combinatorics, and ..."
Abstract

Cited by 151 (25 self)
 Add to MetaCart
The reverse search technique has been recently introduced by the authors for efficient enumeration of vertices of polyhedra and arrangements. In this paper, we develop this idea in a general framework and show its broader applications to various problems in operations research, combinatorics, and geometry. In particular, we propose new algorithms for listing (i) all triangulations of a set of n points in the plane, (ii) all cells in a hyperplane arrangement in R d , (iii) all spanning trees of a graph, (iv) all Euclidean (noncrossing) trees spanning a set of n points in the plane, (v) all connected induced subgraphs of a graph, and (vi) all topological orderings of an acyclic graph. Finally we propose a new algorithm for the 01 integer programming problem which can be considered as an alternative to the branchandbound algorithm. 1 Introduction The listing of all objects that satisfy a specified property is a fundamental problem in combinatorics, computational geometr...
A Survey of Combinatorial Gray Codes
 SIAM Review
, 1996
"... The term combinatorial Gray code was introduced in 1980 to refer to any method for generating combinatorial objects so that successive objects differ in some prespecified, small way. This notion generalizes the classical binary reflected Gray code scheme for listing nbit binary numbers so that ..."
Abstract

Cited by 84 (2 self)
 Add to MetaCart
The term combinatorial Gray code was introduced in 1980 to refer to any method for generating combinatorial objects so that successive objects differ in some prespecified, small way. This notion generalizes the classical binary reflected Gray code scheme for listing nbit binary numbers so that successive numbers differ in exactly one bit position, as well as work in the 1960's and 70's on minimal change listings for other combinatorial families, including permutations and combinations. The area of combinatorial Gray codes was popularized by Herbert Wilf in his invited address at the SIAM Discrete Mathematics Conference in 1988 and his subsequent SIAM monograph in which he posed some open problems and variations on the theme. This resulted in much recent activity in the area and most of the problems posed by Wilf are now solved. In this paper, we survey the area of combinatorial Gray codes, describe recent results, variations, and trends, and highlight some open problems. ...
Structured programming with go to statements
 Computing Surveys
, 1974
"... A consideration of several different examples sheds new light on the problem of ereating reliable, wellstructured programs that behave efficiently. This study focuses largely on two issues: (a) improved syntax for iterations and error exits, making it possible to write a larger class of programs c ..."
Abstract

Cited by 58 (3 self)
 Add to MetaCart
A consideration of several different examples sheds new light on the problem of ereating reliable, wellstructured programs that behave efficiently. This study focuses largely on two issues: (a) improved syntax for iterations and error exits, making it possible to write a larger class of programs clearly and efficiently without go to state
Generating Linear Extensions Fast
"... One of the most important sets associated with a poset P is its set of linear extensions, E(P) . "ExtensionFast.html" 87 lines, 2635 characters One of the most important sets associated with a poset P is its set of linear extensions, E(P) . In this paper, we present an algorithm to generat ..."
Abstract

Cited by 38 (6 self)
 Add to MetaCart
One of the most important sets associated with a poset P is its set of linear extensions, E(P) . "ExtensionFast.html" 87 lines, 2635 characters One of the most important sets associated with a poset P is its set of linear extensions, E(P) . In this paper, we present an algorithm to generate all of the linear extensions of a poset in constant amortized time; that is, in time O(e(P)) , where e ( P ) =  E(P) . The fastest previously known algorithm for generating the linear extensions of a poset runs in time O(n e(P)) , where n is the number of elements of the poset. Our algorithm is the first constant amortized time algorithm for generating a ``naturally defined'' class of combinatorial objects for which the corresponding counting problem is #Pcomplete. Furthermore, we show that linear extensions can be generated in constant amortized time where each extension differs from its predecessor by one or two adjacent transpositions. The algorithm is practical and can be modified to efficiently count linear extensions, and to compute P(x < y) , for all pairs x,y , in time O( n^2 + e ( P )).
Generating Linear Extensions of Posets by Transpositions
 J. Combinatorial Theory (B
, 1992
"... This paper considers the problem of listing all linear extensions of a partial order so that successive extensions differ by the transposition of a single pair of elements. A necessary condition is given for the case when the partial order is a forest. A necessary and sufficient condition is given f ..."
Abstract

Cited by 24 (2 self)
 Add to MetaCart
This paper considers the problem of listing all linear extensions of a partial order so that successive extensions differ by the transposition of a single pair of elements. A necessary condition is given for the case when the partial order is a forest. A necessary and sufficient condition is given for the case where the partial order consists of disjoint chains. Some open problems are mentioned. 1 Introduction Many combinatorial objects can be represented by permutations subject to various restrictions. The set of linear extensions of a poset can be viewed as a set of permutations of the elements of the poset. If the Hasse diagram of the poset consists of two disjoint chains, then the linear extension permutations correspond to combinations. If the poset consists of disjoint chains, then the linear extension permutations correspond to multiset permutations. The extensions of the poset that is the product of a 2element chain with an nelement chain correspond to "ballot sequences" of ...
Formal Methods to Aid the Evolution of Software
 International Journal of Software Engineering and Knowledge Engineering
, 1995
"... There is a vast collection of operational software systems which are vitally important to their users, yet are becoming increasingly difficult to maintain, enhance and keep up to date with rapidly changing requirements. For many of these so called legacy systems the option of throwing the system awa ..."
Abstract

Cited by 17 (5 self)
 Add to MetaCart
There is a vast collection of operational software systems which are vitally important to their users, yet are becoming increasingly difficult to maintain, enhance and keep up to date with rapidly changing requirements. For many of these so called legacy systems the option of throwing the system away an rewriting it from scratch is not economically viable. Methods are therefore urgently required which enable these systems to evolve in a controlled manner. The approach described in this paper uses formal proven program transformations, which preserve or refine the semantics of a program while changing its form. These transformations are applied to restructure ans simplify the legacy systems and to extract higherlevel representations. By using an appropriate sequence of transformations, the extracted representation is guaranteed to be equivalent to the code. The method is based on a formal wide spectrum language, called WSL, with accompanying formal method. Over the last ten years we h...
Formal Methods for Legacy Systems
 J. Software Maintenance: Research and Practice
, 1995
"... A method is described for obtaining useful information from legacy code. The approach uses formal proven program transformations, which preserve or refine the semantics of a construct while changing its form. The applicability of a transformation in a particular syntactic context is checked before a ..."
Abstract

Cited by 10 (3 self)
 Add to MetaCart
A method is described for obtaining useful information from legacy code. The approach uses formal proven program transformations, which preserve or refine the semantics of a construct while changing its form. The applicability of a transformation in a particular syntactic context is checked before application. By using an appropriate sequence of transformations, the extracted representation is guaranteed to be equivalent to the code. In this paper, we focus on the results of using this approach in the reverse engineering of medium scale, industrial software, written mostly in languages such as assembler and JOVIAL. Results from both benchmark algorithms and heavily modified, geriatric software are summarised. It is concluded that the approach is viable, for self contained code, and that useful design information may be extracted from legacy systems at economic cost. We conclude that formal methods have an important practical role in the reverse engineering process.
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 8 (1 self)
 Add to MetaCart
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
Thick 2D Relations for Document understanding
, 2002
"... We use a propositional language of qualitative rectangle relations to detect the reading order from document images. To this end, we define the notion of a document encoding rule and we analyze possible formalisms to express document encoding rules such as L T E X and SGML. Document encoding rule ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
We use a propositional language of qualitative rectangle relations to detect the reading order from document images. To this end, we define the notion of a document encoding rule and we analyze possible formalisms to express document encoding rules such as L T E X and SGML. Document encoding rules expressed in the propositional language of rectangles are used to build a reading order detector for document images. In order to achieve robustness and avoid brittleness when applying the system to real life document images, the notion of a thick boundary interpretation for a qualitative relation is introduced. The framework is tested on a collection of heterogeneous document images showing recall rates up to 89%.
Incremental Topological Ordering and Strong Component Maintenance
, 2008
"... Abstract. We present an online algorithm for maintaining a topological order of a directed acyclic graph as arcs are added, and detecting a cycle when one is created. Our algorithm takes O(m 1/2) amortized time per arc, where m is the total number of arcs. For sparse graphs, this bound improves the ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Abstract. We present an online algorithm for maintaining a topological order of a directed acyclic graph as arcs are added, and detecting a cycle when one is created. Our algorithm takes O(m 1/2) amortized time per arc, where m is the total number of arcs. For sparse graphs, this bound improves the best previous bound by a logarithmic factor 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 bidirectional search method of previous algorithms does not require an ordered search, but can be more general. This allows us to avoid the use of heaps (priority queues) entirely. Instead, the deterministic version of our algorithm uses (approximate) medianfinding. The randomized version of our algorithm avoids this complication, making it very simple. We extend our topological ordering algorithm to give the first detailed algorithm for maintaining the strong components of a directed graph, and a topological order of these components, as arcs are added. This extension also has an amortized time bound of O(m 1/2) per arc. 1