Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 16
Theory of Computation
CS 401220 Introduction Textbook
Text - Introduction to the Theory of Computation Sipser, 3rd Edition US. Introduction • One of the most fundamental courses of computer science.
• Will help you understand how people viewed
computing as a science over 60 years ago Some applications of computational theory Computational theory answers a set of questions: Three fundamental questions What can be computed? (Computing models and computability)
What can be computed efficiently?
(Complexity)
How can we build practical computing devices
Objective
Make a theory out of the idea of computation
What is "computation"?
“Processing of information based on a finite
set of operations or rules” Arithmetic What do we want in a “theory”? • Generality • Technology-independent • Abstraction: Ignores inessential details. • Precision • Mathematical, formal. • Can prove theorems about computation, both positive (what can be computed) and negative (what which cannot be calculated). Problem
To solve a problem means to find a way of
determining the unknowns from the given data such that the conditions of the problem are satisfied. Representation of "information" • Alphabet - For example: A, B, C,..., Z. • Strings: finite sequence (concatenation) of alphabet symbols, order is important -Example: Qaz, abbab -ɛ = empty string (length 0, sometimes e) • inputs (and outputs) of computation are strings. Computation Problems (i.e. Tasks) • A single question that has infinitely many different instances • given a string x, does it have an even number of a's? • given a string x, does it have more a's than b's? Examples of computational problems on numbers
ADDITION: given two numbers x, y, compute
x+y PRIMALITY: given a number x, is x prime? Examples of computational problems about computer program •SYNTACTICALLY CORRECT C PROGRAM: given a string of ASCII symbols, does it follow the syntax rules for C programming language?
•HALTING PROBLEM: Given a computer program
(say in C), can it ever get stuck in an infinite loop? Characteristics of computational problems • Discretion “State of the system ” can be represented as a finite amount of information” • Abstraction “Irrelevant details” can be ignored • Generality A single mathematical model applies to many devices