Why theory of computation




















Turing Machines: They are abstract models for real computers having an infinite memory in the form of a tape and a reading head. Some problems are computable while others are not. Computation is done by various computation models depending on the nature of the problem at hand, examples of these machines are: the Turing machine, Finite state machines, and many others.

The running time of an algorithm varies with the inputs and usually grows with the size of the inputs. Measuring complexity involves an algorithm analysis to determine how much time it takes while solving a problem time complexity. To evaluate an algorithm, a focus is made on relative rates of growth as the size of the input grows.

Since the exact running time of an algorithm often is a complex expression, we usually just estimate it. As T n , the time complexity is expressed using the Big O notation where only the highest order term in the algebraic expressions are considered while ignoring constant values. O n - Linear time or linear space, where the requirement increases uniformly with the size of the input. Class P: The class P consists of those problems that are solvable in polynomial time. It is devised to capture the notion of efficient computation.

Class NP: It forms the class of all problems whose solution can be achieved in polynomial time by non-deterministic Turing machine. NP is a complexity class used to classify decision problems. A major contributor to the complexity theory is the complexity of the algorithm used to solve the problem. Among several algorithms used in solving computational problems are those whose complexity can range from fairly complex to very complex.

Programs are formally written from descriptions of computations for execution on machines. Efficient algorithms lead to better programs that optimally use hardware resources. Good understanding of the Theory of Computation helps programmers and developers express themselves clearly and intuitively, thus avoiding entering into potentially uncomputable problems while working with computational models.

He is passionate about Cloud technologies and developing cloud solutions, Machine Learning and Artificial Intelligence. He is open to research and collaborations. Discover Section's community-generated pool of resources from the next generation of engineers. The simple, flexible deployment options your customers expect with the low overhead your team craves. For Infrastructure Providers. Revised Essay: The theory of computation is a branch of computer science and mathematics combined that "deals with how efficiently problems can be solved on a model of computation, using an algorithm".

This is a fast-growing branch of Computer Science that has helped solving problems in many fields beside computer science such as Physics, Economy, Biology and many others. It uses an infinite memory tape where the information obtained is saved, and then analyze to determine whether the operation is feasible or not. This machine was the creation of Alan Turing in , and he used it to prove properties of computation in general and answer these questions : - "Does a machine exist that can determine whether any arbitrary machine on its tape is "circular""?

Back to the computational theory, this theory is approached through three main fields: 1- Automata theory 2- Computability theory 3- Computational complexity theory These three branches basically uses algorithms to exploit the powers of computers in solving problems.

This is done considering two major aspects: time complexity and space complexity, which are the measure of the number of steps needed to analyze and solve the problem and thus determining the memory space needed to solve the problem.

In order to pre-determine the space and time that will be needed, computer scientists linked these two factors to the amount of input that was received, as the time and space needed increase linearly as the amount of input increases. Computably Enumerable Languages: The languages that can be defined by any formal grammar are known as Computably Enumerable Languages. Any formal or algorithmic procedure can be expressed by grammar. For eg- derivation of logic, rules of chess etc.

All computably enumerable languages are semi-decidable. Context-Sensitive languages: Grammars where the left hand side of each rule is longer than the right hand side are called Context-sensitive languages.

The specification of this class of grammars assures that a decision method for the membership problem is instantly established. Eg- set of all prime numbers, set of all square numbers etc.

Context-free languages: These are languages defined by context-free grammar. For this particular reason, context free languages are often referred to as phrase structure languages. Regular languages: The languages that are defined by regular grammar are known as regular languages. Regular grammars are also context-free where the non-terminals can be seen as category symbols and the arrow as consists of.

Non-terminals, according to another natural meaning, are the names of an automaton's states. Computability theory, also known as Recursion Theory, is a branch of Mathematics and Computer Science that is primarily concerned with the extent to which an issue may be solved by a computer. It originated in the s with the study of computable functions and Turing degrees.

The statement that a Turing computer cannot solve the halting issue is one of the most significant conclusions in computability theory because it is an example of a concrete problem that is both straightforward to define and impossible to solve with a Turing machine.

The halting issue result serves as the foundation for most of computability theory. Recommended read: What is Compliance Testing? A set of natural numbers is said to be a computable set if, given a number n, a Turing machine stops with output 1 if n is in the set and stops with output 0 if n is not in the set. A function f from natural numbers to natural numbers is a computable or recursive function if a Turing machine stops and returns output f on input n.

Computational Complexity Theory is that branch of Theory of Computation that classifies computational problems according to their resource usage. These computational problems are solved by different algorithms. An issue is considered inherently complex if its solution necessitates considerable resources, regardless of the method utilised. This intuition is formalised by the theory, which introduces mathematical models of computing to analyse these issues and measure their computational complexity, i.

Time Complexity : The amount of time or the number of steps taken by the computation to be performed. Space Complexity: The amount of memory required to perform the computation. Computer scientists describe the time or space necessary to solve the issue as a function of the size of the input problem in order to assess how much time and space a specific method takes.

Suggested blog: What is Group Theory? Properties Axioms and Applications. Theory of Computation deals with how efficiently any algorithm would solve any computational problem. Also, abstract machines are introduced in the Computational theory, which are defined mathematically.



0コメント

  • 1000 / 1000