Advertisement

Research and Advances

A null-object detection algorithm for constructive solid geometry

Constructive solid geometry (CSG) is the primary scheme used for representing solid objects in many contemporary solid modeling systems. A CSG representation is a binary tree whose nonterminal nodes represent Boolean operations and whose terminal nodes represent primitive solids. This paper deals with algorithms that operate directly on CSG representations to solve two computationally difficult geometric problems—null-object detection (NOD) and same-object detection (SOD). The paper also shows that CSG trees representing null objects may be reduced to null trees through the use of a new concept called primitive redundancy, and that, on average, tree reduction can be done efficiently by a new technique called spatial localization. Primitive redundancy and spatial localization enable a single complex instance of NOD to be converted into a number of simpler subproblems and lead to more efficient algorithms than those previously known.
Research and Advances

Audit trail compaction for database recovery

Total elapsed recovery time from disk-based database corruption can be shortened by reprocessing the audit trail off-line and thereby avoiding excessive resource utilization penalties. Using a bit map, the audit trail is compacted by eliminating irrelevant or superseded records. The compacted trail is then partitioned, and the partitions are processed in parallel.
Research and Advances

The TWA reservation system

Where can you find a solid, forthright overview of the computer systems and management behind airline reservations? NASA's space shuttle? Or any of the multitude of other large computer systems that support important projects or national activities? It's hard, sometimes impossible: partly because the people who worked on such systems often do not have the time to write about their experiences: and partly because many professional journalists who interview these people do not have the technical background to ferret out answers to the fundamental design questions addressed in these systems.
Research and Advances

Faster methods for random sampling

Several new methods are presented for selecting n records at random without replacement from a file containing N records. Each algorithm selects the records for the sample in a sequential manner—in the same order the records appear in the file. The algorithms are online in that the records for the sample are selected iteratively with no preprocessing. The algorithms require a constant amount of space and are short and easy to implement. The main result of this paper is the design and analysis of Algorithm D, which does the sampling in O(n) time, on the average; roughly n uniform random variates are generated, and approximately n exponentiation operations (of the form ab, for real numbers a and b) are performed during the sampling. This solves an open problem in the literature. CPU timings on a large mainframe computer indicate that Algorithm D is significantly faster than the sampling algorithms in use today.
Research and Advances

Efficient algorithms to globally balance a binary search tree

A binary search tree can be globally balanced by readjustment of pointers or with a sorting process in O(n) time, n being the total number of nodes. This paper presents three global balancing algorithms, one of which uses folding with the other two adopting parallel procedures. These algorithms show improvement in time efficiency over some sequential algorithms [1, 2, 7] when applied to large binary search trees. A comparison of various algorithms is presented.
Research and Advances

A large font virtual terminal interface: a software prosthesis for the visually impaired

A large font software interface running under UNIX1 is of great assistance to the severely visually impaired in the interactive use of computers. The interface, which functions as a virtual terminal as far as other processes are concerned, displays all characters (both user and system generated) at user-selectable degrees of magnification, yet is compatible with any standard CRT/keyboard terminal.
Opinion

From Washington: NSF takes the initiative

The National Science Foundation's Advisory Committee for Advanced Scientific Computing Resources was formed to provide leadership for large-scale scientific computing throughout the United States. Consisting of 15 members representing universities, industry, and national laboratories, the Committee held its first meeting in January 1984. A summary of the meeting issued by Chairman Neal F. Lane of Rice University makes the following points.
Research and Advances

Talking to UNIX in English: an overview of UC

UC is a natural language help facility which advises users in using the UNIX operating system. Users can query UC about how to do things, command names and formats, online definitions of UNIX or general operating systems terminology, and debugging problems in using commands. UC is comprised of the following components: a language analyzer and generator, a context and memory model, an experimental common-sense planner, highly extensible knowledge bases on both the UNIX domain and the English language, a goal analysis component, and a system for acquisition of new knowledge through instruction in English. The language interface of UC is based on a “phrasal analysis” approach which integrates semantic, grammatical and other types of information. In addition, it includes capabilities for ellipsis resolution and reference disambiguation.
Opinion

Programming pearls: graphic output

In previous columns we've studied the innards of programs. In this column we'll take a broader view of the programmer's task and consider the kind of output a program should produce. We'll focus on a single problem: once a system has produced detailed output, how can it summarize the trends in the mountain of data? The answer to that question depends heavily on both the data and the taste of the reader; paragraphs of text and tables of numbers often provide fine summaries. This column, however, will concetrate on graphical representations of data, which allow the powerful human vision system to understand data. A decade ago programmers could offer the excuse that they were limited to crude line printer graphics, but technology has changed that. Many large installations now have laser printers, and graphics printers for home computers sell for a few hundred dollars. This column is about ways that programmers can use the technology to deliver more useful (and more graphic) output.
Research and Advances

Anomalies in parallel branch-and-bound algorithms

We consider the effects of parallelizing branch-and-bound algorithms by expanding several live nodes simultaneously. It is shown that it is quite possible for a parallel branch-and-bound algorithm using n2 processors to take more time than one using n1 processors, even though n1 < n2. Furthermore, it is also possible to achieve speed-ups that are in excess of the ratio n2/n1. Experimental results with the 0/1-Knapsack and Traveling Salesman problems are also presented.
Research and Advances

Updating a database in an unsafe environment

Normally, when an application makes use of a database, considerable resources are invested in maintaining the integrity of that database. However, in situations where use of a database may be desirable even though the normal level of resources is unavailable, a simple technique using a partitioned data file protects the database if immediate transaction recording is not essential.
Research and Advances

Computer matching: should it be banned?

Since discovering the technique of computer matching several years ago, government managers have been invoking this computer tool in the attempt to root out waste and fraud in their programs. Is computer matching an indispensable tool for government administrators? Or a trampling on individual rights? In the following articles, two experts debate the pros and cons.
Research and Advances

A virtual memory system for picture processing

A virtual memory system designed specifically for picture processing, Raster Handler 2 provides programs with efficient access to pixels. It features square partition of images, imbalanced allocation of frames, and nondemand page replacement. RH2 is implemented in software and incorporates a prepaging algorithm designed specifically for picture processing.
Research and Advances

An algorithm for optimized Boolean evaluation in information management systems

In cases where simple data validation techniques are inadequate and optimization policies relatively complex (e.g., in health and medical systems), a Boolean optimization algorithm can be used to report errors accurately and unambiguously. The algorithm is presented in the context of a data-validating software module that uses an LR(1)-parser. The algorithm's precision makes it of potential use for the retrieval of records that nearly satisfy a query.

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More