**CS701: Theory of Computation** Notes (PDF)

Theory of computation (TOC) is a branch of Computer Science that worries about how problems can be solved using algorithms and how they can be solved successfully. CS701 Handouts pdf

## CS701 Handouts pdf

**Course Category: Computer Science/Information Technology** CS614 Handouts pdf

**Course Outline**

Introduction, Set Theory, Sequences, Tuples, Functions, Relations, Graphs, Turing Machines, Enumerators, Dovetailing, The Church-Turing Thesis, Hilbert’s Tenth Problem, Decidable Languages, The Acceptance Problem for DFAs, The Halting Problem, Universal TM, Undecidability of the Halting Problem, Linear Bounded Automata, Computation Histories, Context-Free Grammars, Russell’s Paradox, Emptiness Problem, Post Correspondence Problem, Computable Functions, Reducibility, Recursion Theorem, Logical Theories, Godel’s Theorem, Oracles,

Turing Reducibility, A definition of Information, Incompressible Strings, Complexity Theory, Big Oh and Little Oh Notations, Time Complexity, Non-Deterministic Time, The Class P, The Class NP, Polynomial Time Verifiers, Subset Sum Problem, Satisfiability, NP-Completeness, 3-Color Problem, The Cook-Levin Theorem, Independent Sets Problem, Clique, Vertex Cover, Hamiltonian Path Problem, The Subset Sum Problem, The Traveling Salesman Problem, Space Complexity, Relationship between Space and Time Complexity, PSPACE-Completeness, TQBF, Prove that TQBF is PSPACE-Complete, FORMULA-GAME, Generalized Geography, LOGSPACE Transducer, Prove the Theorem: NL = co-NL.CS701 Handouts pdf

**Join VU assignment solution groups and also share with friends. In these WhatsApp groups, we send solution files, VU handouts, VU past papers, and links to you. To join WhatsApp groups click the below links.**

**ALSO, SEE:**

FINAL TERM PAST PAPERS MEGA FILES

**MUST JOIN VU STUDY GROUPS**

### CS701 HANDOUTS

**CS701: Theory of Computation**

#### What is the Theory of Computation?

branch calculation theory that deals with what problems can be solved in the calculation model, using an algorithm, how effective or to what extent they can be solved (e.g., limited solutions against accuracy). The field is divided into three main branches: automata theory and official languages, concordance theory, and computational complexity theory, linked to the question: “What are the basic skills and limitations of computers?”

#### Earliest Algorithms

Presumably, the first algorithm designed was an unusual addition thousands of years ago to another cave. Limbobo bone-type devices were used to perform that algorithm. The concept of the algorithm was very well developed in Euclid’s school. Two amazing examples are Euclidean Algorithm for calculating GCD. It is a non-trivial algorithm, in the sense that it is not at all clear why it counts GCD. The construction of a compass ruler is an example of accurate algorithms. The first steps are well defined and the tasks are well defined.

#### Turing Machines and Algorithms

Fortunately, the mathematical concept of which algorithm and calculation has already been developed by Mataysavich. Let us ask the most important question in the theory of calculation. What is an algorithm? What is counting?

#### Algorithms and Computation

The seed of the answer to this question was also sown by Hilbert. In 1928, Hilbert, who wanted to compile the statistics, had filed a complaint with the Entscheidungs. He was looking for an algorithm that would take mathematical certainty and determine if the vaccine was true or not !!!! That would be an amazing algorithm (if any). In 1936, Alan Turing, Alonzo Church, proved that the problem of Entscheidungs was unsolvable.

#### Turing Machine

A Turing machine is a mathematical model that describes an invisible machine that changes the signals in a tape line according to the rules table. Despite the simplicity of the model, it is able to use any computer algorithm.

#### Turing Machine Working

The machine works on an endless memory cassette that is divided into separate cells, each of which can hold a single symbol drawn from a limited set of symbols called the machine alphabet. It has a “head” which, at any time in the operation of the machine, is placed over one of these cells, and a “state” is selected from a set of limitations. In each step of its operation, the head reads a symbol in its cell. Then, based on the symbol and current state of the machine, the machine writes the symbol in the same cell and moves the head one step left or right, or stops counting.

The choice of which changing sign to be written and which direction to go is based on a rated table that specifies what should be done with each combination of current status and the symbol being read. CS701 Handouts pdf download

#### Turing Machine and CPU

The Turing machine is a typical example of a central processing unit (CPU) that controls all computer-generated data manipulation, with a canonical machine using sequential memory to store data. Specifically, a machine (automaton) that can calculate an unauthorized subset of a valid character unit; these strings are part of a repetitive running set. The Turing machine has an infinite-length tape where you can perform literacy activities.