An Introduction of Theory of Computation - IJRTER

0 downloads 0 Views 591KB Size Report
Keywords—computation; Automata; computer science; complexity; mathematics; ... of automata theory, computability, and formal languages. In various respects .... http://www.math.cornell.edu/~worthing/asl2010.pdf James Worthington.2010.
An Introduction of Theory of Computation Manoj Kumar1, Nalin Chaudhary2, Sagar Khubchandani3 1

2

Department of Mathematics, Bhagwant University, Department of Computer Science & Engineering, Bhagwant University 3 Department Computer Application, Bhagwant University

Abstract— In this paper we are presenting an introduction of theory of computation. We are discussing some important point of theory of computation. Theory of Computation is a part of mathematics and computer science. Mostly theory of computation is used to computer hardware and software. Theory of Computation can be divided into the following three areas: Complexity Theory, Computability Theory, and Automata Theory. Keywords—computation; Automata; computer science; complexity; mathematics; I. INTRODUCTION What follows is an extremely abbreviated look at some of the important ideas of the general areas of automata theory, computability, and formal languages. In various respects, this can be thought of as the elementary foundations of much of computer science. The classical theory of computation traditionally deals with processing an input string of symbols into an output string of symbols. Note that in the special case where the set of possible output strings is just {‘yes’, ‘no’}, (often abbreviated {T, F} or {1, 0}), then we can think of the string processing as string (pattern) recognition. We will take as given that any computer algorithm can be expressed as a computer program, and hence, in particular, can be expressed as a finite string of ascii characters. Therefore, since ASCII∗ is countable infinite, there are at most countable many computer algorithms/programs. On the other hand, since a language is any arbitrary subset of A∗ for some alphabet A, there are unaccountably many languages, since there are uncountable many subsets. This will be a quick tour through some of the basics of the abstract theory of computation. We will start with a relatively straightforward class of machines and languages – deterministic finite automata and regular languages. In this context when we talk about a machine, we mean an abstract rather than a physical machine, and in general will think in terms of a computer algorithm that could be implemented in a physical machine. Our descriptions of machines will be abstract, but are intended to be sufficiently precise that an implementation could be developed. In mathematics, a theorem is a statement that is true. A proof is a s equence of mathematical statements that form an argument to show that a theorem is true. The statements in the proof of a theorem include axioms (ass umptions about the underlying mathematical structures), hypotheses of the theorem to be proved, and previously proved theorems. The main question is “How do we go about proving theorems?” This question is similar to the question of how to solve a given problem. Theory of computation, computational complexity, and combinatorics related to computing are solicited. In addition to theoretical results, we are particularly interested in submissions that report on experimental and applied research of general algorithmic interest. I wanted certainty in the kind of way in which people want religious faith. I thought that certainty is more likely to be found in mathematics than elsewhere. But I discovered that many mathematical demonstrations, which my teachers expected me to accept, were full of fallacies, and that, if certainty were indeed discoverable in mathematics; it would be in a new field of mathematics, with more solid foundations than those DOI:10.23883/IJRTER.2018.4156.AXKVI

498

International Journal of Recent Trends in Engineering & Research (IJRTER) Volume 04, Issue 03; March- 2018 [ISSN: 2455-1457]

that had hitherto been thought secure. But as the work proceeded, I was continually reminded of the fable about the elephant and the tortoise. Having constructed an elephant upon which the mathematical world could rest, I found the elephant tottering, and proceeded to construct a tortoise to keep the elephant from falling. II. COMPLEXITY THEORY Computational complexity is a branch of the theory of computation. It is used to measure how hard a problem is solved and the common measures include time and space. The classes of time complexity generally include: P, NP, NP-hard, NP-complete and EXPTIME; the classes of space complexity generally include: PSPACE, NPSPACE, PSPACE-hard and PSPACE-complete. Researching computational complexity of a problem can make it explicit whether there is an effective solving algorithm of the problem or not. This paper introduces and analyzes some fundamental concepts of computational complexity, and discusses complete problems of time complexity and space complexity by examples; What's more, the relation among complexity classes is analyzed in detail. Complexity Theory primarily focuses on worst-case complex ity of computational problems. When we say, it is conjectured that Factoring is not solvable in P, we mean that there is no algorithm that will factor every integer in polynomial time. It's organized around techniques rather than results, though often the technique was developed for a particular result, and it covers several seminal results and important proof techniques. Computational complexity theory is a branch of the theory of computation in theoretical computer science that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other. A computational problem is understood to be a task that is in principle amenable to being solved by a computer, which is equivalent to stating that the problem may be solved by mechanical application of mathematical steps, such as an algorithm. A problem is regarded as inherently difficult if its solution requires significant resources, whatever the algorithm used. The theory formalizes this intuition, by introducing mathematical models of computation to study these problems and quantifying the amount of resources needed to solve them, such as time and storage. Other complexity measures are also used, such as the amount of communication (used in communication complexity), the number of gates in a circuit (used in circuit complexity) and the number of processors (used in parallel computing). One of the roles of computational complexity theory is to determine the practical limits on what computers can and cannot do. Closely related fields in theoretical computer science are analysis of algorithms and computability theory. A key distinction between analysis of algorithms and computational complexity theory is that the former is devoted to analyzing the amount of resources needed by a particular algorithm to solve a problem, whereas the latter asks a more general question about all possible algorithms that could be used to solve the same problem. More precisely, computational complexity theory tries to classify problems that can or cannot be solved with appropriately restricted resources. In turn, imposing restrictions on the available resources is what distinguishes computational complexity from computability theory: the latter theory asks what kind of problems can, in principle, be solved algorithmically. III. COMPUTABILITY THEORY Computability theory, also known as recursion theory, is a branch of mathematical logic, of computer science, and of the theory of computation that originated in the 1930s with the study of computable functions and Turing degrees. Computability theory, also known as recursion theory, is a branch of mathematical logic, of computer science, and of the theory of computation that originated in the 1930s with the study of computable functions and Turing degrees. The field has since expanded to include the study of generalized computability and definability. In these areas, recursion theory overlaps with proof theory and effective descriptive set theory.

@IJRTER-2018, All Rights Reserved

499

International Journal of Recent Trends in Engineering & Research (IJRTER) Volume 04, Issue 03; March- 2018 [ISSN: 2455-1457]

Basic questions addressed by recursion theory include:  What does it mean for a function on the natural numbers to be computable?  How can non computable functions be classified into a hierarchy based on their level of non computability? Although there is considerable overlap in terms of knowledge and methods, mathematical recursion theorists study the theory of relative computability, reducibility notions, and degree structures; those in the computer science field focus on the theory of sub recursive hierarchies, formal methods, and formal languages. Recursion theory originated in the 1930s, with work of Kurt Gödel, Alonzo Church, Rózsa Péter, Alan Turing, Stephen Kleene, and Emil Post. The fundamental results the researchers obtained established Turing computability as the correct formalization of the informal idea of effective calculation. These results led Stephen Kleene (1952) to coin the two names "Church's thesis" (Kleene 1952:300) and "Turing's Thesis" (Kleene 1952:376). Nowadays these are often considered as a single hypothesis, the Church–Turing thesis, which states that any function that is computable by an algorithm is a computable function. Although initially skeptical, by 1946 Gödel argued in favor of this thesis: "Tarski has stressed in his lecture (and I think justly) the great importance of the concept of general recursiveness (or Turing's computability). It seems to me that this importance is largely due to the fact that with this concept one has for the first time succeeded in giving an absolute notion to an interesting epistemological notion, i.e., one not depending on the formalism chosen.*"(Gödel 1946 in Davis 1965:84). IV. AUTOMATA THEORY Automata theory is the study of abstract machines and automata, as well as the computational problems that can be solved using them. It is a theory in theoretical computer science and discrete mathematics (a subject of study in both mathematics and computer science).

The word automata (the plural of automaton) comes from the Greek word αὐτόματα, which means "self-acting". The figure at right illustrates a finite-state machine, which belongs to a well-known type of automaton. This automaton consists of states (represented in the figure by circles) and

@IJRTER-2018, All Rights Reserved

500

International Journal of Recent Trends in Engineering & Research (IJRTER) Volume 04, Issue 03; March- 2018 [ISSN: 2455-1457]

transitions (represented by arrows). As the automaton sees a symbol of input, it makes a transition (or jump) to another state, according to its transition function, which takes the current state and the recent symbol as its inputs. Automata theory is closely related to formal language theory. An automaton is a finite representation of a formal language that may be an infinite set. Automata are often classified by the class of formal languages they can recognize, typically illustrated by the Chomsky hierarchy, which describes the relations between various languages and kinds of formalized logic. Automata play a major role in theory of computation, compiler construction, artificial intelligence, parsing and formal verification. V. CONCLUSION In this paper we are discussing some theory of computation part. In this paper we are presenting complexity theory, Computability theory and Automata theory. It is a theory in theoretical computer science and discrete mathematics a subject of study in both mathematics and computer science. Computability theory, also known as recursion theory, is a branch of mathematical logic, of computer science, and of the theory of computation that originated in the 1930s with the study of computable functions and Turing degrees. REFERENCES I. II.

III. IV. V. VI. VII. VIII. IX. X. XI. XII.

Yan, Song Y. “An Introduction to Formal Languages and Machine Computation. Singapore”. World Scientific Publishing Co. Pte. Ltd. pp. 155–156, 1998. Chakraborty, P., Saxena, P. C., Katti, C. P. 2011. Fifty Years of Automata Simulation: A Review. ACM Inroads, 2(4):59–70. http://dl.acm.org/citation.cfm?id=2038893&dl=ACM&coll=DL&CFID=65021406&CFTOKEN=86634854 Jirí Adámek and Vera Trnková. 1990. “Automata and Algebras in Categories”. Kluwer Academic Publishers:Dordrecht and Prague S. Mac Lane, Categories for the Working Mathematician, Springer, New York 1971 . Cartesian closed category Archived November 16, 2011, at the Wayback Machine. The Category of Automata Archived September 15, 2011, at the Wayback Machine. http://www.math.cornell.edu/~worthing/asl2010.pdf James Worthington.2010.Determinizing, Forgetting, and Automata in Monoidal Categories. ASL North American Annual Meeting, March 17, 2010 Aguiar, M. and Mahajan, S.2010. "Monoidal Functors, Species, and Hopf Algebras". Meseguer, J., Montanari, U.: 1990 Petri nets are monoids. Information and Computation 88:105–155 S. B. Cooper, 2004. Computability Theory, Chapman & Hall/CRC. ISBN 1-58488-237-9 N. Cutland, 1980. Computability, An introduction to recursive function theory, Cambridge University Press. ISBN 0-521-29465-7 Y. Matiyasevich, 1993. Hilbert's Tenth Problem, MIT Press. ISBN 0-262-13295-8

@IJRTER-2018, All Rights Reserved

501