Information & explanations, latest texts & monographs on
Computation (including recent related patents.)
ComputationComputation can be actually defined as finding a solution to a problem from given inputs by means of an algorithm. This is what the theory of computation, a subfield of computer science and mathematics, deals with. For thousands of years, computing was done with pen and paper, or chalk and slate, or mentally, sometimes with the aid of tables. The theory of computation began early in the twentieth century, before modern electronic computers had been invented. At that time, mathematicians were trying to find which math problems can be solved by simple methods and which cannot. The first step was to define what they meant by a "simple method" for solving a problem. In other words, they needed a formal model of computation. Several different computational models were devised by these early researchers. One model, the Turing machine, stores characters on an infinitely long tape, with one square at any given time being scanned by a read/write head. Another model, recursive functions, uses functions and function composition to operate on numbers. The lambda calculus uses a similar approach. Still others, including Markov algorithms and Post systems, use grammar-like rules to operate on strings. All of these formalisms were shown to be equivalent in computational power -- that is, any computation that can be performed with one can be performed with any of the others. They are also equivalent in power to the familiar electronic computer, if one pretends that electronic computers have infinite memory. Indeed, it is widely believed that all "proper" formalizations of the concept of algorithm will be equivalent in power to Turing machines; this is known as the Church-Turing thesis. In general, questions of what can be computed by various machines are investigated in computability theory. The theory of computation studies these models of general computation, along with the limits of computing: Which problems are (provably) unsolvable by a computer? (See the halting problem and the Post correspondence problem.) Which problems are solvable by a computer, but require such an enormously long time to compute that the solution is impractical? (See Presburger arithmetic.) Can it be harder to solve a problem than to check a given solution? (See complexity classes P and NP). In general, questions concerning the time or space requirements of given problems are investigated in complexity theory. In addition to the general computational models, some simpler computational models are useful for special, restricted applications. Regular expressions, for example, are used to specify string patterns in UNIX and in some programming languages such as Perl. Another formalism mathematically equivalent to regular expressions, Finite automata are used in circuit design and in some kinds of problem-solving. Context-free grammars are used to specify programming language syntax. Non-deterministic pushdown automata are another formalism equivalent to context-free grammars. Primitive recursive functions are a defined subclass of the recursive functions. Different models of computation have the ability to do different tasks. One way to measure the power of a computational model is to study the class of formal languages that the model can generate; this leads to the Chomsky hierarchy of languages. The following table shows some of the classes of problems (or languages, or grammars) that are considered in computability theory (blue) and complexity theory (green). If class X is a strict subset of Y, then X is shown below Y, with a dark line connecting them. If X is a subset, but it is unknown whether they are equal sets, then the line is lighter and is dotted. Decision Problem Type 0 (Recursively enumerable) Undecidable Decidable EXPSPACE EXPTIME PSPACE Type 1 (Context Sensitive) PSPACE-Complete Co-NP NP BPP BQP NP-Complete P NC P-Complete Type 2 (Context Free) Type 3 (Regular) For Further Reading
This article contains some content from an article by Nancy Tinkham, originally posted on Nupedia. This article is open content. This article is adapted from from Wikipedia All Wikipedia article text is available under the terms of the GNU Free Documentation License Introduction to the Theory of Computation by Michael Sipser Introduction to Automata Theory, Languages, and Computation (2nd Edition) by John E. Hopcroft Quantum Computation and Quantum Information by Michael A. Nielsen Matrix Computations (Johns Hopkins Series in the Mathematical Sciences) by Gene H. Golub Nanosystems: Molecular Machinery, Manufacturing, and Computation by K. Eric Drexler Principles of Data Mining (Adaptive Computation and Machine Learning) by David J. Hand Working With Numbers: Refresher: Computation-Algebra-Geometry by Meredith Edgley O'Reilly Algorithms + Data Structures = Programs (Prentice-Hall Series in Automatic Computation) by Niklaus Wirth Using MPI - 2nd Edition: Portable Parallel Programming with the Message Passing Interface (Scientific and Engineering Computation) by William Gropp Turing (A Novel about Computation) by Christos H. Papadimitriou Introduction to Automata Theory, Languages, and Computation by John E. Hopcroft Reinforcement Learning: An Introduction (Adaptive Computation and Machine Learning) by Richard S. Sutton Feynman Lectures on Computation by Richard P. Feynman Blondie24: Playing at the Edge of AI by David Fogel Betcha! Estimating (Mathstart, Level 3) by Stuart J. Murphy Recent Computation related patents From USPTO: 6718542: Disambiguating memory references based upon user-specified programming constraints 6718540: Data processing system and method for storing data in a communication network 6718538: Method and apparatus for hybrid checkpointing 6718523: Reduced pessimism clock gating tests for a timing analysis tool 6718520: Method and apparatus for selectively providing hierarchy to a circuit design 6718511: Method and apparatus to detect a signal received from a channel signal 6718504: Method and apparatus for implementing a data processor adapted for turbo decoding 6718501: Copy protected digital audio compact disc and method and system for producing same 6718493: Method and apparatus for selection of ARQ parameters and estimation of improved communications 6718486: Fault monitor for restarting failed instances of the fault monitor 6718475: Multi-processor mobile computer system having one processor integrated with a chipset 6718465: Reconfigurable inner product processor architecture implementing square recursive decomposition of partial product matrices 6718457: Multiple-thread processor for threaded software applications 6718438: Using feedback to determine the size of an object cache 6718435: Method and system for migrating data in a raid logical drive migration 6718431: Apparatus and method for pipelined memory operations 6718429: Configurable register file with multi-range shift register support 6718413: Contention-based methods for generating reduced number of interrupts 6718356: In-place operation method and apparatus for minimizing the memory of radix-r FFTs using maximum throughput butterflies 6718355: Systems and methods for a partial sum digital fir filter 6718346: Generating summary data for a requested time period having a requested start time and end time a plurality of data records 6718324: Metadata search results ranking system 6718315: System and method for approximating probabilities using a decision tree 6718314: Multi-purpose transaction card system 6718309: Continuously variable time scale modification of digital audio signals 6718294: System and method for synchronized control of system simulators with multiple processor cores 6718293: Etching and growth simulation method using a modified cell model 6718270: Vibration testing device and vibration response evaluating method 6718266: Determination of dipole shear anisotropy of earth formations 6718265: Petrophysical property estimation using an acoustic calibration relationship 6718264: Method for acquiring azimuth information 6718261: Architecture for real-time maintenance of distributed mission plans 6718253: Method for forming an actuating variable 6718252: Control apparatus for internal combustion engine 6718248: System for detecting surface profile of a driving road 6718245: Electronic control system for construction machinery 6718233: Placement of an optical component on a substrate 6718193: Method and apparatus for analyzing vessels displayed as unfolded structures 6718189: Method and apparatus for non-invasive blood analyte measurement with fluid compartment equilibration 6718174: Method and apparatus for estimating velocity of a terminal in a wireless communication system 6718162: Receiver for a CDMA mobile radiocommunication system 6718138: Digital-signal quality monitoring method and communications apparatus using this method 6718127: Heating device of the light irradiation type 6718099: Pin insertion tool and method for measuring endface surface topography of multi-fiber fiberoptic connectors 6718080: Optical programmable delay system 6718072: Image conversion method, image processing apparatus, and image display apparatus 6718068: Noise reduction method utilizing statistical weighting, apparatus, and program for digital image processing 6718066: Method and apparatus for coding an image object of arbitrary shape 6718063: Method and apparatus for computing the similarity between images |