Harvard Mark I 1940s

Thursday, September 7, 2017

Alternatives in Computability Research

Turing Machine

Alternatives in Computability Research
April 27, 1997
I plan to examine the status quo in the field of computability and unsolvability in pure mathematics and theoretical computer science. One aspect of the status quo seems to be the use of high performance computing to facilitate the study of the subject, which leads us to a consideration of possible changes to come.
With the increasing efficiency and speed of computing equipment the old high performance computing research model may need to be relegated to only the most expensive research in terms of computer time. Already in some fields network communications and parallel processing are performing computing tasks that once were the sole task of research supercomputers and mainframes. This phenomenon has occurred in applications as disparate as filtering applications in radio astronomy and chess programs used in grandmaster versus machine matches. Many of the IT labs computer accounts used at the University of Minnesota are maintained on networks of workstations and not on mainframes or supercomputers. The continuing trend toward use of distributed and parallel computing systems is apparent and inevitable.
With limited resources and increasing research demands the use of networked, distributed and parallel systems will become necessary, thus making now an ideal time to implement this process in computability and unsolvability research. In fact, this process has already been occurring for some time in the field. As more and more specialists from the computer science become involved in automata theory the situation will only become more favorable with regard to innovative research. Computer science is a young field in which paradigms of software development and hardware implementation have changed many times, and in which different approaches to these activities have managed to exist simultaneously.
One of the central concepts of Computability and Unsolvability is the algorithm. In essence an algorithm is an effective computational procedure. Intuitively one may think of an algorithm as purely mechanical sets of instructions which will provide the answer to any one of a class of questions. These instructions are devoid of any non-deterministic features, such as the ones often attributed to human creativity. In theory it will always be possible to fabricate a machine or program a computer which carries out these instructions. For example, as school children we were taught algorithms for solving simple sums. This was done in the past by human clerks who applied these algorithms to sets of data given them by their overseers. Today we have adding machines which perform these tasks.i
Consider a given problem that one wishes to solve. It may not be the case that one has already at hand an algorithm which will solve it. Now we ask: is there an algorithm which will solve this problem? We now have what is known as a decision problem. An affirmative solution to a decision problem consists in demonstrating the existence of an algorithm which solves it; a negative solution in showing that no such algorithm exists. In the latter case the problem is said to be unsolvable.ii Showing that a decision problem is unsolvable can save much needless effort on the part of researchers in mathematics and computer science.
In the development of this theory the Turing machine emerged, an important concept in both mathematics and computer science. A Turing machine is an abstract model of an automata that applies algorithmic sets of instructions until it reaches a solution at which point it halts. It may be visualized as an infinite strip of tape with infinitely many boxes subdividing it, similar to the manner in which a strip of film is. There is a scanner or read-write tape head that can move to the left or to the right along the tape and scans the information contained in one of the tape subdivisions. The information contained on each subdivision of the tape is the data manipulated by the instructions and the instructions themselves. A digital computer can be thought of as operating in a similar way. Data is stored in memory locations or cells that contain information which can be instructions or data, and these locations are scanned and written to in a certain sense by registers.
The primary task of the computer programmer is the implementation of algorithms. A computer program is in essence an algorithm. The practice of computer programming has shown that essentially the same algorithm may be implemented in diverse forms. This is because many different and successful models of program development are in existence. These different models are motivated just as much, those more disposed to the point of view of engineering would say more, by the possibilities of actual technology as by the results of mathematical logic. One of the main points I covered in my interview with Dr. Ravi Jarnardan of the University of Minnesota Computer Science faculty was that mathematical analysis provides the answers to questions about the performance that can be expected of algorithms. Consider the problem of sorting n names into alphabetical order. Analysis has shown that both the bubble sort and straight insertion sort algorithms will perform nxn operations in worst case situations. They are expensive algorithms in terms of computer time. However, it is known widely from experience that the straight insertion sort algorithm is often much more efficient than the bubble sort algorithm. Thus an average case analysis may be more relevant in assessing the relative performances of different algorithms. In the case of the heapsort algorithm, which is much more efficient than the aforementioned, a probabilistic analysis which in essence simulates a coin flip at each stage of the algorithm can be very helpful. For example, program A takes action X or action Y at stage Z of its execution. Probabilistic analysis would make the result of the coin flip correspond with the action the taken by program A. Probabilistic analysis tries to account for the conditional probability inherent in the execution of many programs.
On the software side we have the different approaches of modular programming and object oriented programming. Modular programming has been described as top down. In this model the programmer strives to subdivide the problem he is given into as many smaller simple subproblems as they can. A module is the program division that contains the algorithm used to solve these simpler subproblems. A simple main program calls its functions or modules which then perform the requisite data processing. This has the advantage that the given modules can be used various times in the original program without the need for writing the entire set of instructions again, thus wasting increasingly not so valuable computer memory. In the black box approach that is the ideal of modular programming many different modules, the black boxes, are written for use as they may be needed at later times by various main programs. In object oriented programming a class or object which contains its own modules and data is instantiated, dynamically allocated, implemented and then destroyed. All in all contemporary computer science students are expected to be conversant with both software development paradigms. In part this is because object oriented implementations would make little sense without the use of modules in them. An example of the interplay between the two models is the use of object oriented programming packages to write the compilers used by modular programming packages. C++ which is considered an object oriented programming language was used by Microsoft to develop Visual Basic, a programming package which is more modular in nature.
That different problems lent themselves to different solution strategies should be readily apparent. However, these differences in solution strategy may lie more in what is used to solve the problem, viz. software and hardware, as in the actual form of the algorithm used to solve it. I hold that a research team given a set of problems to resolve could optimize the software and hardware options to be implemented. Thus an algorithm that needed to bounce back and forth checking and comparing integers thirty octillion times would be well suited for FORTRAN code and compilers. Research that pertained to more complicated recursive functions or decision procedures that need to evaluate whole classes of objects and not just cheap integers would be more appropriate for parallel computing using object oriented code or a language package used in computer science or artificial intelligence such as LISP, Ada, Smalltalk, Prolog etc..
Several alternative approaches to problems in the field of computability and unsolvability have already been outlined in the proceeding paragraphs. For example, supercomputer and mainframe processing of expensive numerical algorithms, niche languages and specialty items optimized for use in restricted applications such as the prolog computer language. On the hardware side we have parallel or distributed computing projects among the many alternatives. Where alternatives exist one of course always has the opportunity to fuse them together into a hybrid project that is well fitted to those aspects of the problem in question which are themselves of a hybrid nature.
Among the benefits of such an integrated and synthetic approach would be the mutual contributions that computer science and mathematics have to give each other. In utilizing the tools of computer science to further the mathematical endeavor computer scientists would see their software design and hardware implementation in action. Mathematicians would see the fruits of their theoretical labors in mathematics applied to and come to fruition in computer science. At times it is possible to have the best of both worlds. On an intuitive level one should be able to see how the possible project optimization proposal I gave above could be useful. However, as the old cliché says, too many cooks can spoil the broth. One would have to be careful that the proliferation of alternative approaches did not result in a concomitant proliferation of problems. At other times, one has the worst of both worlds. Also there are those schooled in the old ways who have much experience to offer the inquirer. Standard and time honored approaches to certain problems are often the most accommodating for the greatest number.
i Davis, Martin, Computability and Unsolvability, New York 1982, pp xv, 3

iiDavis, Martin, Computability and Unsolvability, New York 1982, pp xvi

No comments:

Post a Comment

Variations om mergesort. Part I. MIT Scheme

I'll be demonstrating some sample code for variations on the merge sort algorithm in various computer coding systems. The breakdown into...