📜  门| GATE-CS-2017(Set 2)|第49章(1)

📅  最后修改于: 2023-12-03 14:58:31.685000             🧑  作者: Mango

GATE-CS-2017(Set 2) - Chapter 49

Introduction

This article presents an overview of the GATE-CS-2017(Set 2) - Chapter 49, which is related to the topic "Theory of Computation". This chapter focuses on formal language theory, automata theory, and computational complexity theory.

Formal Language Theory

Formal language theory deals with the study of formal grammar, which is a set of rules that govern the structure and composition of strings in formal languages. The four types of formal grammars are Type-0 grammar (unrestricted grammar), Type-1 grammar (context-sensitive grammar), Type-2 grammar (context-free grammar), and Type-3 grammar (regular grammar).

Automata Theory

Automata theory deals with the study of abstract computing devices that can perform a predetermined set of operations on input strings. The two main types of automata are Finite State Automata (FSA) and Pushdown Automata (PDA). FSA is a simple type of automaton that can recognize regular languages, while PDA is a more powerful type of automaton that can recognize context-free languages.

Computational Complexity Theory

Computational complexity theory deals with the study of the resource requirements of algorithms, such as time and space. This theory focuses on the classification of problems into different classes of computational complexity, such as P, NP, NP-complete, and NP-hard. P problems are those that can be solved in polynomial time by a deterministic algorithm, while NP problems are those that can be verified in polynomial time by a deterministic algorithm. NP-complete problems are the hardest problems in NP and can be reduced to any problem in NP, while NP-hard problems are at least as hard as NP-complete problems.

Conclusion

In summary, the GATE-CS-2017(Set 2) - Chapter 49 provides an introduction to the theory of computation, which includes formal language theory, automata theory, and computational complexity theory. These theories are essential for understanding the limits of computing and the computational resources required to solve various problems.