Top Banner
1 Introduction to the Theory of Computation (complexity, computability, and automata) นนนนนนนนนน นน.นนนน นนนนนนนนนนน Source: Chapter 0 - Introduction to the Theory of Computation by Michael Sipser
29

Introduction to the Theory of Computation (complexity, computability, and automata)

Feb 13, 2016

Download

Documents

tracen

Introduction to the Theory of Computation (complexity, computability, and automata). นำเสนอโดย ดร.สุธี สุดประเสริฐ. Source: Chapter 0 - Introduction to the Theory of Computation by Michael Sipser . อะไรคือความสามารถพื้นฐานของคอมพิวเตอร์และขีดจำกัดของคอมพิวเตอร์คืออะไร ?. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introduction to the Theory of Computation (complexity, computability, and automata)

1

Introduction to the Theory of Computation(complexity, computability, and

automata)

นำ�เสนอโดยดร.สธุ ีสดุประเสรฐิ

Source: Chapter 0 - Introduction to the Theory of Computation by Michael Sipser

Page 2: Introduction to the Theory of Computation (complexity, computability, and automata)

2

อะไรคือความสามารถพื้นฐานของคอมพวิเตอร์และขดีจำากัดของคอมพวิเตอรคื์ออะไร?

ปัญห�นี้เริม่ขึ้นในชว่งปี 1930 เมื่อนักคณิตศ�สตร์เริม่สนใจท่ีจะห�คว�มหม�ยของ ก�รคำ�นวณ “ ”(computation)

ม ี3 ส�ข�วชิ�ท่ีเก่ียวเน่ืองกับปัญห�นี้ โดยแต่ละส�ข�มมุีง่มองในก�รตอบปัญห�น้ีแตกต่�งกันไป Complexity theory Computability theory Automata theory

Page 3: Introduction to the Theory of Computation (complexity, computability, and automata)

3

Complexity theory (1) ปัญห�ท�งคอมพวิเตอรม์คีว�มหล�กหล�ย;

บ�งปัญห�ง่�ย เชน่ ปัญห�ก�รจดัเรยีงลำ�ดับ บ�งปัญห�ย�ก เชน่ ปัญห�ก�รจดัต�ร�งเวล�

อะไรคือองค์ประกอบท่ีทำ�ใหปั้ญห�หน่ึง ย�กกว�่อีกปัญห�หน่ึง ซึ่งปัญห�น้ีคือหวัใจหลักของ complexity theory

Page 4: Introduction to the Theory of Computation (complexity, computability, and automata)

4

Complexity theory (2) นักวจิยัได้ค้นพบวธิกี�รในก�รจำ�แนกได้ว�่ปัญห�หนึ่ง

มคีว�มย�กง่�ยขน�ดไหน ในกรณีน้ี เร�ส�ม�รถแสดงวธิกี�รในก�รใหห้ลักฐ�นว�่

ปัญห�หน่ึงคือปัญห�ท่ีมคีว�มย�กท�งก�รคำ�นวณ (เหมอืนก�รบอกชนิดของธ�ต ุจ�กก�รเปรยีบจ�กต�ร�งธ�ต)ุ

แต่เร�ไมส่�ม�รถพสิจูน์ตรงๆ ได้ว่�ปัญห�หนึ่งเป็นปัญห�ท่ีย�ก

Page 5: Introduction to the Theory of Computation (complexity, computability, and automata)

5

Complexity theory (3) ส�ข�วชิ�หน่ึงท่ีมกี�รใช ้complexity theory โดยตรง

คือส�ข�วทิย�ก�รเข�้รหสัลับ (cryptography) ในส�ข�วชิ�อ่ืนๆ สว่นม�กจะชอบปัญห�ท่ีง่�ยม�กกว�่

ปัญห�ท่ีย�ก แต่ส�ข�วทิย�ก�รเข�้รหสัลับ จะแตกต่�งออกไปคือ

ต้องก�รท่ีจะห�ปัญห�ท่ีแก้ได้ย�กแทน

Page 6: Introduction to the Theory of Computation (complexity, computability, and automata)

6

Computability theory ในชว่งปี 1900-1950, นักคณิตศ�สตร ์(Kurt Godel, Alan

Turing, และ Alonzo Church) ได้ค้นพบว�่มปัีญห�รูปแบบหนึ่งท่ีคอมพวิเตอรไ์มส่�ม�รถแก้ปัญห�ได้ ปัญห�นัน้คือก�รบอกว�่นิพจน์ท�งคณิตศ�สตรห์นึ่งเป็นจรงิหรอืเท็จ ไมม่ลีำ�ดับวธิกี�รท�งคอมพวิเตอรไ์หนท่ีส�ม�รถแก้ไขนี้ได้

ใน computability theory ก�รจำ�แนกปัญห�จะจำ�แนกว�่ปัญห�แบบไหนแก้ไขได้และปัญห�แบบไหนแก้ไขไมไ่ด้

Page 7: Introduction to the Theory of Computation (complexity, computability, and automata)

7

Automata theory (1) Automata theory จะสนใจในก�รนิย�มและคณุสมบติัของ

จำ�ลองท�งคณิตศ�สตรข์องก�รคำ�นวณ แบบจำ�ลองหน่ึงคือ finite automaton ซึ่งนิยมใชใ้น

text processing, compilers, และ hardware design อีกแบบจำ�ลองหนึ่งคือ context-free grammar ซึ่งนิยมใช้

ใน programming languages และ artificial intelligence (natural

language processing)

Page 8: Introduction to the Theory of Computation (complexity, computability, and automata)

8

Automata theory (2) Automata theory เป็นจุดเริม่ต้นท่ีเหม�ะสมในก�ร

เริม่ต้นศึกษ�ทฤษฎีก�รคำ�นวณเพร�ะว�่ computability theory และ complexity theory

ต้องก�รนิย�มท่ีชดัเจนของคอมพวิเตอรก่์อน ก�รศึกษ� automata theory จะทำ�ใหเ้ร�เข�้ใจนิย�ม

ทัว่ไปของคอมพวิเตอรไ์ด้ชดัเจนม�กขึ้น

Page 9: Introduction to the Theory of Computation (complexity, computability, and automata)

9

สญัลักษณ์ทางคณิตศาสตรแ์ละคำาศัพท์ท่ีควรรูก่้อนเรยีนวชิาน้ี Sets Sequences and Tuples Functions and Relations Graphs Strings and Languages Boolean Logic

Page 10: Introduction to the Theory of Computation (complexity, computability, and automata)

10

Sets {7, 21, 57} 7 {7, 21, 57} {7,21} {7, 21, 57} {7, 7, 7, 21, 57} = {7, 21, 57} Infinite set

N = {1, 2, 3, …} is empty set

Page 11: Introduction to the Theory of Computation (complexity, computability, and automata)

11

Sets Union A B

{ 1, 2, 3 } { 2, 3, 4, 5 } = { 1, 2, 3, 4, 5 } Intersect A B

{ 1, 2, 3 } { 2, 3, 4, 5 } = { 2, 3 } Complement A’

{ 0, 2, 4, … }’ = { 1, 3, 5, … } Power set is the set of all subsets.

A = { 0, 1 }A* = { , {0}, {1}, {0, 1} }

Page 12: Introduction to the Theory of Computation (complexity, computability, and automata)

12

Sequence and Tuples Sequence

(7, 21, 57) (21, 7, 57) (7, 7, 21, 57) Tuple

A sequence with k elements is a k-tuple.(1, 3) : 2-tuple (also called pair)(2, 4, 6) : 3-tuple

Page 13: Introduction to the Theory of Computation (complexity, computability, and automata)

13

Functions and Relations Functions : A function also is called a mappings.

f(a) = b f: D → R

abs (-1) = abs(-1) = 1ads: Integer → Integer

add (3, 5) = 8add: Integer Integer → Integer

divide (5, 2) = 2.5divide: Integer Integer → Real

Domain RangeInput Output

Page 14: Introduction to the Theory of Computation (complexity, computability, and automata)

14

Functions and Relations A predicate or property is a function whose

range is {TRUE, FALSE}.even(4) = TRUE, odd(4) = FALSE

A property whose domain is a set of k-tuples is called a relation, a k-ary relation. A 2-ary relation is called a binary relation.aRb means aRb = TRUE or R(a, b) = TRUE

infix prefix

Page 15: Introduction to the Theory of Computation (complexity, computability, and automata)

15

Graphsnodes (vertices)

edges (arcs)

5 nodes, 6 edges 4 nodes, 6 edges

An undirected graph or a graph

degree 3degree = 2

Page 16: Introduction to the Theory of Computation (complexity, computability, and automata)

16

Graphs

G = (V, E) where V is the set of nodes and E is the set of edges

G = ({1,2,3,4,5}, {(1,2), (2,3), (3,4), (4,5), (5,1)})

Page 17: Introduction to the Theory of Computation (complexity, computability, and automata)

17

Graphs

a path in a graph a cycle in a graph a tree

Page 18: Introduction to the Theory of Computation (complexity, computability, and automata)

18

Graphs

A directed graph

indegree = 1outdegree = 2

indegree = 2outdegree = 2

Page 19: Introduction to the Theory of Computation (complexity, computability, and automata)

19

Strings and Languages = {a, b, c ,d ,e, 0, 1}

An alphabet is any nonempty finite set. Members of the alphabet are the symbols of

the alphabet. A string over an alphabet is a finite sequence

of symbols from that alphabet.ab01, 01aed, 001, aabb

alphabet symbols

Page 20: Introduction to the Theory of Computation (complexity, computability, and automata)

20

Strings and Languages If w is a string, the length of w, written |w|, is

the number of symbols.w = abcde, |w| = 5

|w| = 0 is call the empty string and is written . wR is the reverse of w.

w = abcde, wR = edcba w = abracadabra, cad is substring of w.

Page 21: Introduction to the Theory of Computation (complexity, computability, and automata)

21

Strings and Languages w1 = abcd and w2 = 0011, the concatenation of

w1 and w2, written w1w2.

w1w2 = abcd0011.

A language is a set of strings.

Page 22: Introduction to the Theory of Computation (complexity, computability, and automata)

22

Boolean Logic The value TRUE and FALSE are called the

Boolean values.Often represented by the value 1 and 0.

conjunction or AND disjunction or OR negation or NOT

Page 23: Introduction to the Theory of Computation (complexity, computability, and automata)

23

Boolean Logic

exclusive or or XOR equality implication

Two expressions in each row are equivalent.

Page 24: Introduction to the Theory of Computation (complexity, computability, and automata)

24

Boolean Logic Distributive Law

P (Q R) equals (P Q) (P R)

P (Q R) equals (P Q) (P R)

Page 25: Introduction to the Theory of Computation (complexity, computability, and automata)

25

Definitions, Theorems, and Proofs Definitions Mathematical statements Proof Theorem Lemmas Corollaries

Page 26: Introduction to the Theory of Computation (complexity, computability, and automata)

26

Definitions Definitions describe the objects and notions

that we use.

Page 27: Introduction to the Theory of Computation (complexity, computability, and automata)

27

Mathematical statements A meaningful composition of words which can

be considered either true or false is called a mathematical statement or simply a statement.

“ABC is an equilateral triangle.”“E is a set of even numbers.”

Page 28: Introduction to the Theory of Computation (complexity, computability, and automata)

28

Proofs A proof is a convincing logical argument that

a statement is true. A theorem is a mathematical statement

proved true. Generally we reserve the use of that word for statements of special interest.

A lemma is a proved statement that is interesting only because they assist in the proof of another, more significant statement.

A corollary is a proved statement that may allow us to conclude easily that other, related statements are true.

Page 29: Introduction to the Theory of Computation (complexity, computability, and automata)

29

Types of Proof Proof by construction Proof by contradiction Proof by induction