Home > Theory Of Computation > Day 1: Theory Of Computation

# Day 1: Theory Of Computation

Theory Of Computation Is Also Known As Core Subject Of Computer Science.If You Are A Logical Thinker, If You Love To Learn Mathematics, This Subject Is Very Easy For You.

If You Have Puzzle Solving Ability This Subject Is Very Very Easy For You.

In This Subject We Will Understand About Algorithm, Computation, Software & Hardware And The Purpose Of All These.

Do You Know The Limitations Of Computer?

Do You Think The Computer Can Solve Any Problem?

Yes, There Are Problems Which Cannot Be Solved By Computer.

## Let’s Understand The Purpose Of Theory Of Computation

I Want To Create A Mathematical Model For My Computations, Which Reflects From My Computer.

What Is Computation?

The Action Of Mathematical Calculation.

The Task Which Can Be Performed By An Electronic Device, Like Calculator, Computer Etc.

For Example – If I Want To Add 1+3, Using The Help Of Calculator I Can Solve This Or I Can Solve This Using My Computer.

But, If I Want To Perform This Task Using Electronic Device, For Computation, I Have To Create Steps, I Have To Create Algorithm, So That I Can Solve This Problem.

If We Go Into The Past Years, In 1930’s The Mathematicians, Logicians When They Were Trying To Understand The Meaning Of an A

” Computation”, A Central Question Asked Was Can Whether All Mathematical Problems Can Be Solved In Systematic Way.

Then They Talked About Software And Hard Ware And Algorithms Etc.

” Computation ” Is The Word Which Came Out From Their Brain’s.

In Theory Of Computation, There Are Different Theories Came And Went Back In Their Brain.

In This Subject We Will Understand About These These Theories Under Theory Of Computation

(i) Complexity Theory

(ii) Computability Theory

(iii) Automata Theory

## Complexity Theory –

You Already Know About Complexity Theory, In Your Other Subjects. In Complexity Theory, I’ll Categorize Problems Into Two Parts.

If The Problem Is Easy, The Problem Will Be Called As Easy.

If The Problem Is Hard, The Problem Will Be Called As Hard.

But How We Can Categorize A “Problem” Is “Easy” Or ” Hard”, How Can We Say “This Problem Is Easy And This Problem Is Hard?”

If The Problem Is Easy To Solve It Is Easy,If The Problem Is Hard To Solve It Is Called As Hard.This Will Not Happen In Computer Science.

Easy

For Example – If I Want To Search A Phone Number From A Phone Number Directory Which Has ‘n’ Number Of Phone Numbers.I’ll Put A Searching Algorithm And I’ll Get That Phone Number I Need.I’ll Tell You The That Searching Algorithm Complexity And You Already Have Idea About Searching Algorithm’s.

One More Example – Imagine That I Have 1Lakh Numbers And I Want To Arrange That Numbers In To Ascending And Descending Order.

And I’ll Put A Sorting Algorithm And I’ll It Into Ascending And Descending Order.

Hard

Example – If I Want To Create Time Table Lecturers And Subjects For Different Time, It Is Little Hard, The Problem Will Be Solved For Sure But I Cant Know The Exact Time,Those Type Problems Comes Under Hard Category.

In Complexity Theory I Have To Divide Problems In To Easy And Hard.

## Computability Theory –

In Computability Theory I Should Divide Problem Into Two Categories.1) Solvable 2) Unsolvable

The Problem Which I Can Solve By Showing A Mathematical Proof Comes Under ‘Solvable’ , The Problem Which I Cant Solve Using A Algorithm Or Any Of My Mathematical Methods Comes Under Unsolvable, Until Someone Solves It.

For Example – Imagine I Have Problem Which I Cant Solve Using The Algorithms And Methods I Have Today In My Machine, The Problem May Be Solved After 50 Years But Today For Me It Is Unsolvable And The Problem Comes Under The List Called ‘ Unsolvable ‘

## Automata Theory

In Automata Theory I Should I Learn About Different Mathematical Models.Finite Automata,Context Free Grammer, Turning Machine Are Few Methods And There Are Lot More Methods In Automata Theory.

These Three Are Mathematical Model Which Represents Computations.

Fnite Autometa,Context Free Grammer,Turing Machine

Here I Have To Know Which Method Is Powerful Which Can Solve More Problems.

If I Talk About Finite Automata, Finite Automata Has Some Restrictions,Where I Cannot Solve Multiple Problems.Some Problems Can Be Solved And Some Finite Autometa Cannot Solve.

Turing Machine Can Solve Problem Which Can Be Solved By The Finite Automata And It Can Solve The Problem Which Cannot Be Solved By Finite Automata.

And Here I Have To Know “How A Problem Can Be Categorized” And I Should Know “Which Model Solves That Problem.

We Will Understand Indetail About These Models And Categorization.

Basically Theory Of Computation My Main Focus Will Be On Automata Theory, Then We Will Discuss About The Computational Theory.

To Understand This Subject You Need To Have Logical Thinking,One Problem Will Not Depend On Other Problem, Each And Every Problem Is Unique In This Subject.