Computability
computability mike estimating, computabilityComputability is the ability to solve a problem in an effective manner It is a key topic of the field of computability theory within mathematical logic and the theory of computation within computer science The computability of a problem is closely linked to the existence of an algorithm to solve the problem
The most widely studied models of computability are the Turingcomputable and μrecursive functions, and the lambda calculus, all of which have computationally equivalent power Other forms of computability are studied as well: computability notions weaker than Turing machines are studied in automata theory, while computability notions stronger than Turing machines are studied in the field of hypercomputation
Contents
 1 Problems
 2 Formal models of computation
 3 Power of automata
 31 Power of finite state machines
 32 Power of pushdown automata
 33 Power of Turing machines
 331 The halting problem
 332 Beyond recursively enumerable languages
 4 Concurrencybased models
 5 Stronger models of computation
 51 Infinite execution
 52 Oracle machines
 53 Limits of hypercomputation
 6 See also
 7 References
Problems
A central idea in computability is that of a computational problem, which is a task whose computability can be explored
There are two key types of problems:
 A decision problem fixes a set S, which may be a set of strings, natural numbers, or other objects taken from some larger set U A particular instance of the problem is to decide, given an element u of U, whether u is in S For example, let U be the set of natural numbers and S the set of prime numbers The corresponding decision problem corresponds to primality testing
 A function problem consists of a function f from a set U to a set V An instance of the problem is to compute, given an element u in U, the corresponding element fu in V For example, U and V may be the set of all finite binary strings, and f may take a string and return the string obtained by reversing the digits of the input so f0101 = 1010
Other types of problems include search problems and optimization problems
One goal of computability theory is to determine which problems, or classes of problems, can be solved in each model of computation
Formal models of computation
Main article: Model of computationA model of computation is a formal description of a particular type of computational process The description often takes the form of an abstract machine that is meant to perform the task at hand General models of computation equivalent to a Turing machine See: Church–Turing thesis include:
Lambda calculus A computation consists of an initial lambda expression or two if you want to separate the function and its input plus a finite sequence of lambda terms, each deduced from the preceding term by one application of Beta reduction Combinatory logic is a concept which has many similarities to λ calculus, but also important differences exist eg fixed point combinator Y has normal form in combinatory logic but not in λ calculus Combinatory logic was developed with great ambitions: understanding the nature of paradoxes, making foundations of mathematics more economic conceptually, eliminating the notion of variables thus clarifying their role in mathematics μrecursive functions a computation consists of a μrecursive function, ie its defining sequence, any input values and a sequence of recursive functions appearing in the defining sequence with inputs and outputs Thus, if in the defining sequence of a recursive function f x the functions g x and h x , y appear, then terms of the form 'g5=7' or 'h3,2=10' might appear Each entry in this sequence needs to be an application of a basic function or follow from the entries above by using composition, primitive recursion or μrecursion For instance if f x = h x , g x , then for 'f5=3' to appear, terms like 'g5=6' and 'h3,6=3' must occur above The computation terminates only if the final term gives the value of the recursive function applied to the inputs String rewriting systems including Markov algorithm, that uses grammarlike rules to operate on strings of symbols; also Post canonical system Register machine is a theoretically interesting idealization of a computer There are several variants In most of them, each register can hold a natural number of unlimited size, and the instructions are simple and few in number, eg only decrementation combined with conditional jump and incrementation exist and halting The lack of the infinite or dynamically growing external store seen at Turing machines can be understood by replacing its role with Gödel numbering techniques: the fact that each register holds a natural number allows the possibility of representing a complicated thing eg a sequence, or a matrix etc by an appropriate huge natural number — unambiguity of both representation and interpretation can be established by number theoretical foundations of these techniques Turing machine Also similar to the finite state machine, except that the input is provided on an execution "tape", which the Turing machine can read from, write to, or move back and forth past its read/write "head" The tape is allowed to grow to arbitrary size The Turing machine is capable of performing complex calculations which can have arbitrary duration This model is perhaps the most important model of computation in computer science, as it simulates computation in the absence of predefined resource limits Multitape Turing machine Here, there may be more than one tape; moreover there may be multiple heads per tape Surprisingly, any computation that can be performed by this sort of machine can also be performed by an ordinary Turing machine, although the latter may be slower or require a larger total region of its tape P′′ Like Turing machines, P′′ uses an infinite tape of symbols without random access, and a rather minimalistic set of instructions But these instructions are very different, thus, unlike Turing machines, P′′ does not need to maintain a distinct state, because all “memorylike” functionality can be provided only by the tape Instead of rewriting the current symbol, it can perform a modular arithmetic incrementation on it P′′ has also a pair of instructions for a cycle, inspecting the blank symbol Despite its minimalistic nature, it has become the parental formal language of an implemented and for entertainment used programming language called BrainfuckIn addition to the general computational models, some simpler computational models are useful for special, restricted applications Regular expressions, for example, specify string patterns in many contexts, from office productivity software to programming languages Another formalism mathematically equivalent to regular expressions, Finite automata are used in circuit design and in some kinds of problemsolving Contextfree grammars specify programming language syntax Nondeterministic pushdown automata are another formalism equivalent to contextfree grammars
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; in such a way is the Chomsky hierarchy of languages is obtained
Other restricted models of computation include:
Deterministic finite automatonDFA Also called a finite state machine All real computing devices in existence today can be modeled as a finite state machine, as all real computers operate on finite resources Such a machine has a set of states, and a set of state transitions which are affected by the input stream Certain states are defined to be accepting states An input stream is fed into the machine one character at a time, and the state transitions for the current state are compared to the input stream, and if there is a matching transition the machine may enter a new state If at the end of the input stream the machine is in an accepting state, then the whole input stream is accepted Nondeterministic finite automatonNFA it is another simple model of computation, although its processing sequence is not uniquely determined It can be interpreted as taking multiple paths of computation simultaneously through a finite number of states However, it is possible to prove that any NFA is reducible to an equivalent DFA Pushdown automaton Similar to the finite state machine, except that it has available an execution stack, which is allowed to grow to arbitrary size The state transitions additionally specify whether to add a symbol to the stack, or to remove a symbol from the stack It is more powerful than a DFA due to its infinitememory stack, although only the top element of the stack is accessible at any timePower of automata
With these computational models in hand, we can determine what their limits are That is, what classes of languages can they accept
Power of finite state machines
This section may require cleanup to meet Wikipedia's quality standards No cleanup reason has been specified Please help improve this section if you can April 2009 Learn how and when to remove this template message 
Computer scientists call any language that can be accepted by a finite state machine a regular language Because of the restriction that the number of possible states in a finite state machine is finite, we can see that to find a language that is not regular, we must construct a language that would require an infinite number of states
An example of such a language is the set of all strings consisting of the letters 'a' and 'b' which contain an equal number of the letter 'a' and 'b' To see why this language cannot be correctly recognized by a finite state machine, assume first that such a machine M exists M must have some number of states n Now consider the string x consisting of n + 1 'a's followed by n + 1 'b's
As M reads in x, there must be some state in the machine that is repeated as it reads in the first series of 'a's, since there are n + 1 'a's and only n states by the pigeonhole principle Call this state S, and further let d be the number of 'a's that our machine read in order to get from the first occurrence of S to some subsequent occurrence during the 'a' sequence We know, then, that at that second occurrence of S, we can add in an additional d where d > 0 'a's and we will be again at state S This means that we know that a string of n + d + 1 'a's must end up in the same state as the string of n + 1 'a's This implies that if our machine accepts x, it must also accept the string of n + d + 1 'a's followed by n + 1 'b's, which is not in the language of strings containing an equal number of 'a's and 'b's In other words, M cannot correctly distinguish between a string of equal number of 'a's and 'b's and a string with n + d + 1 'a's and n + 1 'b's
We know, therefore, that this language cannot be accepted correctly by any finite state machine, and is thus not a regular language A more general form of this result is called the Pumping lemma for regular languages, which can be used to show that broad classes of languages cannot be recognized by a finite state machine
Power of pushdown automata
Computer scientists define a language that can be accepted by a pushdown automaton as a Contextfree language, which can be specified as a Contextfree grammar The language consisting of strings with equal numbers of 'a's and 'b's, which we showed was not a regular language, can be decided by a pushdown automaton Also, in general, a pushdown automaton can behave just like a finitestate machine, so it can decide any language which is regular This model of computation is thus strictly more powerful than finite state machines
However, it turns out there are languages that cannot be decided by pushdown automaton either The result is similar to that for regular expressions, and won't be detailed here There exists a Pumping lemma for contextfree languages An example of such a language is the set of prime numbers
Power of Turing machines
Turing machines can decide any contextfree language, in addition to languages not decidable by a pushdown automaton, such as the language consisting of prime numbers It is therefore a strictly more powerful model of computation
Because Turing machines have the ability to "back up" in their input tape, it is possible for a Turing machine to run for a long time in a way that is not possible with the other computation models previously described It is possible to construct a Turing machine that will never finish running halt on some inputs We say that a Turing machine can decide a language if it eventually will halt on all inputs and give an answer A language that can be so decided is called a recursive language We can further describe Turing machines that will eventually halt and give an answer for any input in a language, but which may run forever for input strings which are not in the language Such Turing machines could tell us that a given string is in the language, but we may never be sure based on its behavior that a given string is not in a language, since it may run forever in such a case A language which is accepted by such a Turing machine is called a recursively enumerable language
The Turing machine, it turns out, is an exceedingly powerful model of automata Attempts to amend the definition of a Turing machine to produce a more powerful machine have surprisingly met with failure For example, adding an extra tape to the Turing machine, giving it a twodimensional or three or anydimensional infinite surface to work with can all be simulated by a Turing machine with the basic onedimensional tape These models are thus not more powerful In fact, a consequence of the ChurchTuring thesis is that there is no reasonable model of computation which can decide languages that cannot be decided by a Turing machine
The question to ask then is: do there exist languages which are recursively enumerable, but not recursive And, furthermore, are there languages which are not even recursively enumerable
The halting problem
Main article: Halting problemThe halting problem is one of the most famous problems in computer science, because it has profound implications on the theory of computability and on how we use computers in everyday practice The problem can be phrased:
Given a description of a Turing machine and its initial input, determine whether the program, when executed on this input, ever halts completes The alternative is that it runs forever without haltingHere we are asking not a simple question about a prime number or a palindrome, but we are instead turning the tables and asking a Turing machine to answer a question about another Turing machine It can be shown See main article: Halting problem that it is not possible to construct a Turing machine that can answer this question in all cases
That is, the only general way to know for sure if a given program will halt on a particular input in all cases is simply to run it and see if it halts If it does halt, then you know it halts If it doesn't halt, however, you may never know if it will eventually halt The language consisting of all Turing machine descriptions paired with all possible input streams on which those Turing machines will eventually halt, is not recursive The halting problem is therefore called noncomputable or undecidable
An extension of the halting problem is called Rice's Theorem, which states that it is undecidable in general whether a given language possesses any specific nontrivial property
Beyond recursively enumerable languages
The halting problem is easy to solve, however, if we allow that the Turing machine that decides it may run forever when given input which is a representation of a Turing machine that does not itself halt The halting language is therefore recursively enumerable It is possible to construct languages which are not even recursively enumerable, however
A simple example of such a language is the complement of the halting language; that is the language consisting of all Turing machines paired with input strings where the Turing machines do not halt on their input To see that this language is not recursively enumerable, imagine that we construct a Turing machine M which is able to give a definite answer for all such Turing machines, but that it may run forever on any Turing machine that does eventually halt We can then construct another Turing machine M ′ that simulates the operation of this machine, along with simulating directly the execution of the machine given in the input as well, by interleaving the execution of the two programs Since the direct simulation will eventually halt if the program it is simulating halts, and since by assumption the simulation of M will eventually halt if the input program would never halt, we know that M ′ will eventually have one of its parallel versions halt M ′ is thus a decider for the halting problem We have previously shown, however, that the halting problem is undecidable We have a contradiction, and we have thus shown that our assumption that M exists is incorrect The complement of the halting language is therefore not recursively enumerable
Concurrencybased models
A number of computational models based on concurrency have been developed, including the Parallel Random Access Machine and the Petri net These models of concurrent computation still do not implement any mathematical functions that cannot be implemented by Turing machines
Stronger models of computation
The ChurchTuring thesis conjectures that there is no effective model of computing that can compute more mathematical functions than a Turing machine Computer scientists have imagined many varieties of hypercomputers, models of computation that go beyond Turing computability
Infinite execution
Main article: Zeno machineImagine a machine where each step of the computation requires half the time of the previous step and hopefully half the energy of the previous step If we normalize to 1/2 time unit the amount of time required for the first step and to 1/2 energy unit the amount of energy required for the first step, the execution would require
1 = ∑ n = 1 ∞ 1 2 n = 1 2 + 1 4 + 1 8 + 1 16 + ⋯ ^=++++\cdotstime unit and 1 energy unit to run This infinite series converges to 1, which means that this Zeno machine can execute a countably infinite number of steps in 1 time unit using 1 energy unit This machine is capable of deciding the halting problem by directly simulating the execution of the machine in question By extension, any convergent infinite series would work Assuming that the infinite series converges to a value n, the Zeno machine would complete a countably infinite execution in n time units
Oracle machines
Main article: Oracle machineSocalled Oracle machines have access to various "oracles" which provide the solution to specific undecidable problems For example, the Turing machine may have a "halting oracle" which answers immediately whether a given Turing machine will ever halt on a given input These machines are a central topic of study in recursion theory
Limits of hypercomputation
Even these machines, which seemingly represent the limit of automata that we could imagine, run into their own limitations While each of them can solve the halting problem for a Turing machine, they cannot solve their own version of the halting problem For example, an Oracle machine cannot answer the question of whether a given Oracle machine will ever halt
See also
 Automata theory
 Abstract machine
 List of undecidable problems
 Computational complexity theory
 Computability logic
 Important publications in computability
References
 Michael Sipser 1997 Introduction to the Theory of Computation PWS Publishing ISBN 053494728X Part Two: Computability Theory, Chapters 3–6, pp 123–222
 Christos Papadimitriou 1993 Computational Complexity 1st ed Addison Wesley ISBN 0201530821 Chapter 3: Computability, pp 57–70
 S Barry Cooper 2004 Computability Theory 1st ed Chapman & Hall/CRC ISBN 9781584882374



Topics and concepts 

Proposals and implementations 

In fiction 
See also: Logic machines in fiction and List of fictional computers 
computability, computability and logic, computability complexity, computability define, computability in automata, computability in europe, computability iow, computability mike estimating, computability notes, computability theory
Computability Information about

Computability beatiful post thanks!
29.10.2014
Computability
Computability
Computability viewing the topic.
There are excerpts from wikipedia on this article and video
Random Posts
The San Francisco Examiner
The San Francisco Examiner is a longtime daily newspaper distributed in and around San Francisco, Ca...Frederator Films
Frederator Films is an animation studio founded by Fred Seibert as part of Frederator Studios, with ...John Hasbrouck Van Vleck
John Hasbrouck Van Vleck March 13, 1899 – October 27, 1980 was an American physicist and mathematici...Christian Lacroix
Christian Marie Marc Lacroix French pronunciation: kʁistjɑ̃ lakʁwa; born 16 May 1951 is a Fren...Search Engine
Our site has a system which serves search engine function.
You can search all data in our system with above button which written "What did you look for? "
Welcome to our simple, stylish and fast search engine system.
We have prepared this method why you can reach most accurate and most up to date knowladge.
The search engine that developed for you transmits you to the latest and exact information with its basic and quick system.
You can find nearly everything data which found from internet with this system.
Random Posts
Modern philosophy
Modern philosophy is a branch of philosophy that originated in Western Europe in the 17th century, a...Tim Shadbolt
Timothy Richard "Tim" Shadbolt born 19 February 1947 is a New Zealand politician He is the Mayor of ...HK Express
Andrew Cowen Deputy CEO Website wwwhkexpresscom HK Express Traditional Chinese 香港快運航空...List of shrinking cities in the United States
The following municipalities in the United States have lost at least 20% of their population, from a...© Copyright © 2014. Search Engine