# Showing papers in "Communications of The ACM in 1973"

Journal ArticleDOI
TL;DR: Two backtracking algorithms are presented, using a branchand-bound technique [4] to cut off branches that cannot lead to a clique, and generates cliques in a rather unpredictable order in an attempt to minimize the number of branches to be traversed.
Abstract: Description bttroductian. A maximal complete subgraph (clique) is a complete subgraph that is not contained in any other complete subgraph. A recent paper [1] describes a number of techniques to find maximal complete subgraphs of a given undirected graph. In this paper, we present two backtracking algorithms, using a branchand-bound technique [4] to cut off branches that cannot lead to a clique. The first version is a straightforward implementation of the basic algorithm. It is mainly presented to illustrate the method used. This version generates cliques in alphabetic (lexicographic) order. The second version is derived from the first and generates cliques in a rather unpredictable order in an attempt to minimize the number of branches to be traversed. This version tends to produce the larger cliques first and to generate sequentially cliques having a large common intersection. The detailed algorithm for version 2 is presented here. Description o f the algorithm--Version 1. Three sets play an important role in the algorithm. (1) The set compsub is the set to be extended by a new point or shrunk by one point on traveling along a branch of the backtracking tree. The points that are eligible to extend compsub, i.e. that are connected to all points in compsub, are collected recursively in the remaining two sets. (2) The set candidates is the set of all points that will in due time serve as an extension to the present configuration of compsub. (3) The set not is the set of all points that have at an earlier stage already served as an extension of the present configuration of compsub and are now explicitly excluded. The reason for maintaining this set trot will soon be made clear. The core of the algorithm consists of a recursively defined extension operator that will be applied to the three sets Just described. It has the duty to generate all extensions of the given configuration of compsub that it can make with the given set of candidates and that do not contain any of the points in not. To put it differently: all extensions of compsub containing any point in not have already been generated. The basic mechanism now consists of the following five steps:

2,202 citations

Journal ArticleDOI
TL;DR: A set of examples attempts to stake out the boundaries of the problem by defining a program during its execution so that it cannot transmit information to any other program except its caller.
Abstract: onfining a program during its execution so that it cannot transmit information to any other program except its caller. A set of examples attempts to stake out the boundaries of the problem. Necessary conditions for a solution are stated and informally justified.

1,392 citations

Journal ArticleDOI
TL;DR: Efficient algorithms are presented for partitioning a graph into connected components, biconnected components and simple paths and each iteration produces a new path between two vertices already on paths.
Abstract: Efficient algorithms are presented for partitioning a graph into connected components, biconnected components and simple paths. The algorithm for partitioning of a graph into simple paths of iterative and each iteration produces a new path between two vertices already on paths. (The start vertex can be specified dynamically.) If V is the number of vertices and E is the number of edges, each algorithm requires time and space proportional to max (V, E) when executed on a random access computer.

901 citations

Journal ArticleDOI
TL;DR: Methods are presented for computing the equilibrium distribution of customers in closed queueing networks with exponential servers based on two-dimensional iterative techniques which are highly efficient and quite simple to implement.
Abstract: Methods are presented for computing the equilibrium distribution of customers in closed queueing networks with exponential servers. Expressions for various marginal distributions are also derived. The computational algorithms are based on two-dimensional iterative techniques which are highly efficient and quite simple to implement. Implementation considerations such as storage allocation strategies and order of evaluation are examined in some detail.

844 citations

Journal ArticleDOI
TL;DR: It is suggested that the planning, organizing, and controlling activities associated with managing the computer resource will change in character over a period of time, and will evolve in patterns roughly correlated to four stages of the computer budget.
Abstract: Based on the study of expenditures for data processing, a descriptive stage hypothesis is presented. It is suggested that the planning, organizing, and controlling activities associated with managing the computer resource will change in character over a period of time, and will evolve in patterns roughly correlated to four stages of the computer budget: Stage I (computer acquisition), Stage II (intense system development), Stage III (proliferation of controls), and Stage IV (user/service orientation). Each stage is described and related to individual tasks for managing the computer resource.

692 citations

Journal ArticleDOI
TL;DR: Many combinatorial enumeration problems may be expressed in terms of the numbers Pc(“m”).
Abstract: Given a positiver integer m and an ordered k-tuple c = (c1, ··· , ck) of not necessarily distinct positive integers, then any ordered k-tuple s = (s1, ··· , sk) of nonnegative integers such that m = ∑ki-1sici is said to be a partition of m restricted to c. Let Pc(m) denote the number of distinct partitions of m restricted to c. The subroutine COUNT, when given a k-tuple c and an integer n, computes an array of the values of Pc(m) for m = 1 to n. Many combinatorial enumeration problems may be expressed in terms of the numbers Pc(m). We mention two below.

585 citations

Journal ArticleDOI
TL;DR: Three file structures are presented together with their corresponding search algorithms, which are intended to reduce the number of comparisons required to achieve the desired result.
Abstract: The problem of searching the set of keys in a file to find a key which is closest to a given query key is discussed. After “closest,” in terms of a metric on the the key space, is suitably defined, three file structures are presented together with their corresponding search algorithms, which are intended to reduce the number of comparisons required to achieve the desired result. These methods are derived using certain inequalities satisfied by metrics and by graph-theoretic concepts. Some empirical results are presented which compare the efficiency of the methods.

419 citations

Journal ArticleDOI
TL;DR: The concept of “threaded code” is presented as an alternative to machine language code and hardware and software realizations of it are given.
Abstract: The concept of “threaded code” is presented as an alternative to machine language code. Hardware and software realizations of it are given. In software it is realized as interpretive code not needing an interpreter. Extensions and optimizations are mentioned.

291 citations

Journal ArticleDOI
TL;DR: Linguistic mechanisms which can be used to protect one subprogram from another's malfunctioning are described and an attempt is made to distinguish between access limitation and authentication.
Abstract: Linguistic mechanisms which can be used to protect one subprogram from another's malfunctioning are described. Function-producing functions and various type-tagging schemes are considered. An attempt is made to distinguish between access limitation and authentication.

198 citations

Journal ArticleDOI
TL;DR: This paper presents an implementation technique using a single stack to hold procedure activation storage which allows retention of that storage for durations not necessarily tied to control flow, and applications to multitasking, coroutines, backtracking, label-valued variables, and functional arguments are discussed.
Abstract: Many control and access environment structures require that storage for a procedure activation exist at times when control is not nested within the procedure activated. This is straightforward to implement by dynamic storage allocation with linked blocks for each activation, but rather expensive in both time and space. This paper presents an implementation technique using a single stack to hold procedure activation storage which allows retention of that storage for durations not necessarily tied to control flow. The technique has the property that, in the simple case, it runs identically to the usual automatic stack allocation and deallocation procedure. Applications of this technique to multitasking, coroutines, backtracking, label-valued variables, and functional arguments are discussed. In the initial model, a single real processor is assumed, and the implementation assumes multiple-processes coordinate by passing control explicitly to one another. A multiprocessor implementation requires only a few changes to the basic technique, as described.

167 citations

Journal ArticleDOI
TL;DR: This year the whole world celebrates the five-hundredth birthday of Nicolaus Copernicus, the famous Polish astronomer and mathematician, whose book Concerning the Revolutions of Celestial Spheres described a new theory about the relative physical movements of the earth, the planets, and the sun.
Abstract: This year the whole world celebrates the five-hundredth birthday of Nicolaus Copernicus, the famous Polish astronomer and mathematician. In 1543, Copernicus published his book, Concerning the Revolutions of Celestial Spheres, which described a new theory about the relative physical movements of the earth, the planets, and the sun. It was in direct contradiction with the earth-centered theories which had been established by Ptolemy 1400 years earlier.

Journal ArticleDOI
TL;DR: The need for education related to information systems in organizations is discussed, and a curriculum is proposed for an undergraduate program, and material necessary for such education is identified and courses incorporating it are specified.
Abstract: The need for education related to information systems in organizations is discussed, and a curriculum is proposed for an undergraduate program. Material necessary for such pr0gram~/is identified, and courses incorporating it are specified. Detailed~ourse descriptions are presented. Program organization and problems of implementation are discussed.

Journal ArticleDOI
TL;DR: There are two main purposes in this paper, clarification and extension of known results about computation of recursive programs, with emphasis on the difference between the theoretical and practical approaches.
Abstract: There are two main purposes in this paper: first, clarification and extension of known results about computation of recursive programs, with emphasis on the difference between the theoretical and practical approaches; second, presentation and examination of various known methods for proving properties of recursive programs. Discussed in detail are two powerful inductive methods, computational induction and structural induction, including examples of their applications.

Journal ArticleDOI
TL;DR: A novel computer-searchable representation for the three basic pictorial features, contour maps, region coverage, and line structures, is described, which provides a rapid means of searching large files for data associated with geometric position as well as with attribute value.
Abstract: A novel computer-searchable representation for the three basic pictorial features, contour maps, region coverage, and line structures, is described. The representation, which has practical storage requirements, provides a rapid means of searching large files for data associated with geometric position as well as with attribute value. An application of this representation to handling terrain information illustrates its utility. The algebraic properties of the data structure make it computationally easy to determine whether a point lies within a closed boundary; compute the area contained by a closed boundary; generate the closed boundary representing the union or intersection of two closed boundaries; and determine the neighboring boundaries to a point and the minimum distances between them and the point.

Journal ArticleDOI
TL;DR: It is shown that a program is well formed if and only if it can be written with if, repeat, and multi-level exit statements for sequence control.
Abstract: A well-formed program is defined as a program in which loops and if statements are properly nested and can be entered only at their beginning. A corresponding definition is given for a well-formed flowchart. It is shown that a program is well formed if and only if it can be written with if, repeat, and multi-level exit statements for sequence control. It is also shown that if, while, and repeat statements with single-level exit do not suffice. It is also shown that any flowchart can be converted to a well-formed flowchart by node splitting. Practical implications are discussed.

Journal ArticleDOI
TL;DR: A well-known set of data consisting of the correlations of 24 psychological tests is used to illustrate the comparison of groupings by four methods of factor analysis and two methods of cluster analysis.
Abstract: A computer generated graphic method, which can be used in conjunction with any hierarchical scheme of cluster analysis, is described and illustrated. The graphic principle used is the representation of the elements of a data matrix of similarities or dissimilarities by computer printed symbols (of character overstrikes) of various shades of darkness, where a dark symbol corresponds to a small dissimilarity. The plots, applied to a data matrix before clustering and to the rearranged matrix after clustering, show at a glance whether clustering brought forth any distinctive clusters. A well-known set of data consisting of the correlations of 24 psychological tests is used to illustrate the comparison of groupings by four methods of factor analysis and two methods of cluster analysis.

Journal ArticleDOI
TL;DR: WEW solves the transcendental equation the authors ~ = x for w, given x > 0, by an iteration that converges much more rapidly than either Newton's method or fixed-point iteration.
Abstract: Submittal of an algorithm for consideration for publication in Communications of the ACM implies unrestricted use of the algorithm within a computer is permissible. Description Purpose. WEW solves the transcendental equation we ~ = x for w, given x > 0, by an iteration that converges much more rapidly than either Newton's method or fixed-point iteration. The user provides x = X. The routine returns w = WEW and the last relative correction e, = EN. Two versions are described here. Version A produces CDC 6600 machine accuracy (48 bits), and the relative error should be approximately eJ. Version B produces at least six significant figures, and the relative error should be approximately eJ. Iteration. Assuming x > 0, we may rewrite the equation defining w as w + log(w) = log(x). (1) For a given approximation w. to w, let w~+l = w~ + 8, be a much better approximation. Substitution into (1) yields 8. +log(1-k-8,,/w.) = log x-log w.,-w. Using the approximation [1] log (1 + 8/w) ~ (Sw + 1/6 83)/ (w 2 + 2/3 8w) and clearing fractions yields the following quadratic equation for 8, : Solving for the root that tends to zero as z.-~ 0 gives 2ZnWn 8n (1 + w,-2/3 z,) + ((1 + w, + 2/3 z,) 2-2z,) ½ \" General permission to republish, but not for profit, an algorithm is granted, provided that reference is made to this publication, to its date of issue, and to the fact that reprinting privileges were granted by permission of the Association for Computing Machinery. Work performed under the auspices of the U.S. Atomic Energy Commission. This has a continued fraction expansion [3] 2WnZn 8n = 2Zn 2(1 W w,)-2(1 + w, + 2/3 z,) 2z, 2(1 + w.-1-2/3 z.) for which the third convergent yields sufficient accuracy. If we ignore the quantity 2/3 z, in the third term, we obtain the iteration formula Initial guesses. For small values of x, the given equation has a series solution due to L. Euler [2]. A Pad~ rational fraction approximation to this series is 1 +7/3x+ 5/6x 2\" As computed from (5), wo(x) < w(x), good to within 5 percent if x = 2.5 and much better for smaller values of x. For larger values of x we may use wo = log(x), (6) which has a maximum relative error no greater than 37 percent for x …

Journal ArticleDOI
TL;DR: A methodology, a model and a programmed system are presented to estimate primarily total storage costs and average access time of several file organizations, given a specific data base, query characterization and device-related specifications.
Abstract: This work first discusses the factors that affect file (data base) organization performance, an elusive subject, and then presents a methodology, a model and a programmed system to estimate primarily total storage costs and average access time of several file organizations, given a specific data base, query characterization and device-related specifications. Based on these estimates, an appropriate file structure may be selected for the specific situation. The system is a convenient tool to study file structures and to facilitate as much as possible the process of data base structure design and evaluation.

Journal ArticleDOI

Journal ArticleDOI
TL;DR: A new method for entering and retrieving information in a hash table is described, intended to be efficient if most entries are looked up several times.
Abstract: A new method for entering and retrieving information in a hash table is described. The method is intended to be efficient if most entries are looked up several times. The expected number of probes to look up an entry, predicted theoretically and verified by Monte Carlo experiments, is considerably less than for other comparable methods if the table is nearly full. An example of a possible Fortran implementation is given.

Journal ArticleDOI
TL;DR: A dynamic programming algorithm is presented which solves the problem in time which grows linearly with the number of characters in the text, which is nontrivial when phrases which overlap exist.
Abstract: A method for saving storage space for text strings, such as compiler diagnostic messages, is described. The method relies on hand selection of a set of text strings which are common to one or more messages. These phrases are then stored only once. The storage technique gives rise to a mathematical optimization problem: determine how each message should use the available phrases to minimize its storage requirement. This problem is nontrivial when phrases which overlap exist. However, a dynamic programming algorithm is presented which solves the problem in time which grows linearly with the number of characters in the text. Algorithm 444 applies to this paper.

Journal ArticleDOI
TL;DR: This paper examines strategies for selecting the optimum reorganization points in data base organization schemes and concludes that the high cost of a reorganization prohibits frequent reorganizations.
Abstract: In certain data base organization schemes the cost per access may increase due to structural inefficiencies caused by update. By reorganizing the data base the cost per access may be reduced. However, the high cost of a reorganization prohibits frequent reorganizations. This paper examines strategies for selecting the optimum reorganization points.

Journal ArticleDOI
TL;DR: PL/C effectively demonstrates that compilers can provide better diagnostic assistance than is customarily offered, even when a sophisticated source language is employed, and that this assistance need not be prohibitively costly.
Abstract: PL/C is a compiler for a dialect for PL/I. The design objective was to provide a maximum degree of diagnostic assistance in a batch processing environment. For the most part this assistance is implicit and is provided automatically by the compiler. The most remarkable characteristic of PL/C is its perseverance—it completes translation of every program submitted and continues execution until a user-established error limit is reached. This requires that the compiler repair errors encountered during both translation and execution, and the design of PL/C is dominated by this consideration.PL/C also introduces several explicit user-controlled facilities for program testing. To accommodate these extensions to PL/I without abandoning compatibility with the IBM compiler, PL/C permits “pseudo comments”—constructions whose contents can optionally be considered either source text or comment.In spite of the diagnostic effort PL/C is a fast and efficient processor. It effectively demonstrates that compilers can provide better diagnostic assistance than is customarily offered, even when a sophisticated source language is employed, and that this assistance need not be prohibitively costly.

Journal ArticleDOI
TL;DR: A new dynamic memory allocation algorithm, the Fibonacci system, is introduced which is similar to, but seems to have certain advantages over, the “buddy” system.
Abstract: A new dynamic memory allocation algorithm, the Fibonacci system, is introduced. This algorithm is similar to, but seems to have certain advantages over, the “buddy” system. A generalization is mentioned which includes both of these systems as special cases.

Journal ArticleDOI
TL;DR: The ability to backtrack, or retrace, the execution of a computer program has gained wider acceptance recently as a desired feature within a programming language.
Abstract: The ability to backtrack, or retrace, the execution of a computer program has gained wider acceptance recently as a desired feature within a programming language. This is particularly useful in two different applications: (1) In debugging systems where the trace output is saved and can be interrogated under programmer control [1, 3]; (2) In artificial intelligence applications where one is trying to prove a certain result. It is frequently necessary to backup the proof and try some alternative path [2].

Journal ArticleDOI
TL;DR: The paper reviews past work in the data definition language for describing both logical and physical aspects of data and applications of these generalized data definition languages are discussed.
Abstract: : A data definition language is a declarative computer language for specifying data structures. Most data definition languages concentrate on the declaration of logical data structures with little concern for how these structures are physically realized on a computer system. However, the need for data definition languages which describe both the logical and physical aspects of data is increasingly apparent. Such languages will be a key element in the translation of data among computer systems, as well as in advanced data management systems and distributed data bases. The paper reviews past work in the data definition language for describing both logical and physical aspects of data. Applications of these generalized data definition languages are also discussed. (Author)

Journal ArticleDOI
TL;DR: This report describes the actual implementation of a computing machine: it is a computer whose “machine language” is APL, which is fully operational and correctly executes almost all of the APL operations on scalars, vectors, and arrays.
Abstract: Computing machines which directly execute the statements of a high level language have been proposed in the past. This report describes the actual implementation of such a machine: it is a computer whose “machine language” is APL. The machine is fully operational and correctly executes almost all of the APL operations on scalars, vectors, and arrays. The machine automatically allocates memory, executes statements, calls functions, converts numbers from one type to another, checks subscripts, and automatically detects many types of programmer errors.

Journal ArticleDOI
TL;DR: Petri nets are investigated as one method of modeling speed independent asynchronous circuits and their usefulness is emphasized by the design of a speed independent processor from modules developed in the investigation of Petri net implementation.
Abstract: Petri nets are investigated as one method of modeling speed independent asynchronous circuits. A study of circuit realizations of Petri nets leads to a demonstration of their usefulness in modeling speed independent operation. This usefulness is emphasized by the design of a speed independent processor from modules developed in the investigation of Petri net implementation.

Journal ArticleDOI
TL;DR: The algorithm reduces the generalized problem to an ordinary eigenvalue problem for a symmetric band matrix C, whose bandwidth is the same as A and B, and is similar to those of Rutishauser and Schwartz for the reduction of symmetric matrices to band form.
Abstract: An algorithm is described for reducing the generalized eigenvalue problem Ax = lBx to an ordinary problem, in case A and B are symmetric band matrices with B positive definite. If n is the order of the matrix and m the bandwidth, the matrices A and B are partitioned into m-by-m blocks; and the algorithm is described in terms of these blocks. The algorithm reduces the generalized problem to an ordinary eigenvalue problem for a symmetric band matrix C whose bandwidth is the same as A and B. The algorithm is similar to those of Rutishauser and Schwartz for the reduction of symmetric matrices to band form. The calculation of C requires order n2m operation. The round-off error in the calculation of C is of the same order as the sum of the errors at each of the n/m steps of the algorithm, the latter errors being largely determined by the condition of B with respect to inversion.

Journal ArticleDOI
TL;DR: Submittal of an algorithm for consideration for publication in Communications of the A C M implies unrestricted use of the algorithm within a computer is permissible.
Abstract: Submittal of an algorithm for consideration for publication in Communications of the A C M implies unrestricted use of the algorithm within a computer is permissible. Copyright © 1973, Association for Computing Machinery, Inc. General permission to republish, but not for profit, all or part o f this material is granted provided that A C M ' s copyright notice is given and that reference is made to the publication, to its date of issue, and to the fact that reprinting privileges were granted by permission of the Association for Computing Machinery.