Finite Automata (Thai)

Preview:

Citation preview

Finite Automata

นําเสนอโดย

1

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

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

คอมพิวเตอรคืออะไร?

� ทฤษฎีการคํานวณเริ่มตนจากปญหาที่วา: คอมพิวเตอรคอือะไร?� ดูเหมือนเปนปญหาไรสาระหรือเปลา?

� แตคอมพิวเตอรจริงๆมีความซับซอนมาก

2

แตคอมพิวเตอรจริงๆมีความซับซอนมาก� ดังนั้นเราจะศึกษาคอมพิวเตอรในอุดมคติแทนซึ่งเรียกวา

แบบจําลองทางการคํานวณ (computational model).

� ในที่นีเ้ราจะเริ่มศึกษาแบบจําลองที่เรียบงายที่สุดกอนซึ่งเรียกวา finite state machine หรือ finite automaton.

Finite Automata

� finite automata เปนแบบจําลองที่ดีสําหรับคอมพิวเตอรที่มีหนวยความจําที่จํากัด� แลวคอมพิวเตอรที่มีหนวยความจํานอยๆ (จําไดแค

สถานะปจจบุันเทานั้น) สามารถทําอะไรไดบาง?

3

สถานะปจจบุันเทานั้น) สามารถทําอะไรไดบาง?

� ตัวควบคุมอุปกรณไฟฟา เชน ประตูไฟฟาที่สามารถเปด-ปด อัตโนมัติเองได เปนตัวอยางของคอมพิวเตอรที่มีหนวยความจําขนาดเล็ก

ตัวอยาง (1)

frontpad

rearpad

4

� มี 2 สถานะคือ� OPEN และ CLOSED (เปดประตู และ ปดประตู)

� มีอินพตุ 4 แบบ� FRONT, REAR, BOTH, และ NEITHER

� คนอยูดานหนา คนอยูดานหลัง คนอยูทั้งดานหนาและหลัง และ ไมมีคนอยูทั้งหนาและหลัง

door����������� �

ตัวอยาง (2)

CLOSED OPEN

FRONT

NETHER

REARBOTH

NETHER

FRONTREARBOTH

5

NETHER

NETHER FRONT REAR BOTH

CLOSED CLOSED OPEN CLOSED CLOSED

OPEN CLOSED OPEN OPEN OPEN

สัญญาณอินพุต

สถานะปจจุบัน

Finite Automata

� กอนที่เราจะอธิบาย finite automata โดยใชคณิตศาสตร เราเริ่มศึกษาภาพรวมของ finite automata ในรูปแบบทั่วไปที่ไมไดเจาะจงสําหรับการประยุกตใชในงานใดงานหนึ่งกอน

6

การประยุกตใชในงานใดงานหนึ่งกอน

Finite Automata

q1 q3q2

0

1

1

0,1

0

A finite automaton called M1 that has three states

7

� The start state is q1

� The accept state is q2

� The arrows going from one state to another are called transitions

� The output is either acceptor reject.

A finite automaton called M1 that has three states

Finite Automata

q1 q3q2

0

1

1

0,1

0

8

� เมื่ออินพุตคือ “1101”,1. Start in state q1.2. Read 1, follow transition from q1 to q2.3. Read 1, follow transition from q2 to q2. 4. Read 0, follow transition from q2 to q3. 5. Read 1, follow transition from q3 to q2. 6. Accept because M1 is in an accept state q2 at the end of the input.

Finite Automata

q1 q3q2

0

1

1

0,1

0

9

� ภาษาที่ประกอบดวย strings ที่ M1 ยอมรับ อธิบายไดวาอยางไร? � 1,01,11, and 0101010101.� 100, 0100, 110000, and 0101000000.

Formal Definition

� แมวาการใช state diagrams จะงายในการทําความเขาใจ, เราก็ยังตองการนิยามอยางเปนทางการ (formal definition) เพราะ� ประการแรก formal definition มีความชัดเจน

10

� ประการแรก formal definition มีความชัดเจน� จะทําใหเราเห็นชัดเจนวาอะไรที่ finite automata สามารถทํา

ไดหรือไมสามารถทําได

� ประการที่สอง formal definition ทําใหเราสามารถใชสัญลักษณ (notation) แทนได.� การใชสัญลักษณทําใหเราสามารถคิดและแสดงความคิดได

ชัดเจนขึ้น

Formal Definition

� formal definition สําหรับ finite automaton สามารถกําหนดไดโดยใชวัตถุ 5 ตัวตอไปนี้� set of state� input alphabet

11

� input alphabet� rules for moving� start state� accept states

Formal Definition

A finite automaton is a 5-tuple (Q, Σ, δ, q0, F), where

1. Q is a finite set called the states, 2. Σ is a finite set called the alphabet,

12

2. Σ is a finite set called the alphabet, 3. δ : Q x Σ → Q is the transition function,4. q0 ∈ Q is the start state, and 5. F ⊆ Q is the set of accept states.

Formal Definition

q1 q3q2

0

1

1

0,1

0

We can describe M1 formally by writing M1 = (Q, Σ, δ, q1, F), where

13

� Q = { q1, q2, q3 }� Σ = { 0, 1 }� δ is described as

We can describe M1 formally by writing M1 = (Q, Σ, δ, q1, F), where

� q1 is the start state, and� F = { q2 }.

0 1

q1 q1 q2

q2 q3 q2

q3 q2 q2

δ(q1,0) = q1δ(q2,0) = q3δ(q3,0) = q2

δ(q1,1) = q2δ(q2,1) = q2δ(q3,1) = q2

Formal Definition

� ถา A คือเซตของสตริงทั้งหมดที่เครื่องจักร Mยอมรับ, เราพูดไดวา A คือภาษาของเครื่องจักร Mและเขียนไดวา L(M) = A

� เราพูดวา M recognizes A หรือ M accepts A.

14

� เราพูดวา M recognizes A หรือ M accepts A.� หนึ่งเครื่องจักรอาจจะยอมรับหลายสตริง, แต

สามารถจดจําไดแคภาษาเดียวเทานั้น� สําหรับเครื่องจักรที่ไมยอมรับสตริงใดเลย, เราบอกวา

เครื่องจักรนัน้จดจําภาษาวาง (empty language ∅)

Extended Transition Function

δ : Q x Σ → Q is the transition functionδ(q, a) = “the state to which the machine Mgoes if it is in state q and receives input symbol a”

15

a”

δ*: Q x Σ* → Q is the extended transition functionδ*(q, w) = “the state in which M ends up, if it begin in state q, and receives the string w of several symbols”

Extended Transition Function

ตัวอยาง:

δ*(q0,w) = q6

16

q0 q6……..a b a

w = ab…a

Extended Transition Function

Definition: Let M = (Q, Σ, δ, q0, F) be a DFA. Define the function

δ*: Q x Σ* → Q

17

recursively as follows.

When q ∈ Q, w ∈ Σ*, and a ∈ Σ,1. δ*(q, ε) = q2. δ*(q, wa) = δ(δ*(q, w), a)

Extended Transition Function

q1 q3q2

0

1

1

0,1

0

18

δ*(q1,010)δ*(q1, 010) = δ(δ*(q1,01), 0)δ*(q1, 01) = δ(δ*(q1,0), 1)δ*(q1,0) = δ(δ*(q1,ε), 0)δ*(q1,ε) = q1

Example of Finite Automata (1)

q2q1

0 1

0

1

� Formal description คือ ?� L(M) = ?

19

Example of Finite Automata (2)

q2q1

0 1

0

1

� Formal description คือ ?� L(M) = ?

20

Example of Finite Automata (3)

21

Example of Finite Automata (4)

22

Formal Definition of Computation

� ตอนนี้เราทราบถึงวิธีการคํานวณอยางคราวๆของ FA ตอไปจะเปนการนิยามอยางเปนทางการของคํานวณของ FA

23

Formal Definition of Computation

� Let M = (Q, Σ, δ, q0, F) be a finite automaton� Let w = w1w2…wn be a string where each wi is a

member of the alphabet Σ.� Then M accepts w if δ*(q0, w) ∈ F.

24

� Then M accepts w if δ*(q0, w) ∈ F.� We say that M recognizes language A if

A = { w I M accepts w } � A language is called a regular language if some

finite automaton recognizes it.

การออกแบบ Finite Automata

� การออกแบบ automata เหมือนงานศิลปะซึ่งตองอาศัยความคิดสรางสรรค

� ซึ่งไมมีสูตรสําเร็จตายตัว �

อยางไรก็ตามยังมีแนวทางที่เปนประโยชน ในการ

25

� อยางไรก็ตามยังมีแนวทางที่เปนประโยชน ในการนําไปใชเพื่อออกแบบ automata ชนิดตางๆ ได ☺

� หลักการคือใหคิดวาตัวเองเปน automata ที่เราตองการออกแบบ หรือ เรียกวา� "reader as automaton" method

ตัวอยาง (1)

� สมมุติให alphabet คือ {0, 1} ใหสราง FA ที่จดจําภาษาที่ประกอบดวยสตริงทั้งหมดที่มี 1 เปนเลขคี่

� เริ่มตน เราตองพิจารณาใหรูวา อะไรคือสิ่งที่เราจําเปนจะตองจําในขณะที่เรากําลังอานขอมูล

26

จําเปนจะตองจําในขณะที่เรากําลังอานขอมูล� ทําไมเราจําขอมูลที่ตองการทั้งหมดเลย?

� ในกรณีนี้ สิ่งที่เราจําเปนตองจําคือจํานวนของ 1 วาเปนจํานวนคูหรือจํานวนคี่

ตัวอยาง (2)

� จากนั้นจึงสรางสถานะที่เปนไปไดทั้งหมด

27

qeven qodd

ตัวอยาง (3)

� ตอไปจึงกําหนดการเปลี่ยนสถานะที่เปนไปไดทั้งหมด ซึ่งเกิดการอานอินพุตสตริง

� ในกรณีตัวอยาง สถานะจะถูกเปลี่ยนก็ตอเมื่ออินพุตเปน 1 และจะอยูกับที่เมื่ออินพุตเปน 0

28

เปน 1 และจะอยูกับที่เมื่ออินพุตเปน 0

ตัวอยาง (3)

� เราจะเขียนการเปลี่ยนสถานะไดดังนี้

10

29

qeven qodd

1

1

00

ตัวอยาง (4)

� ตอไปจึงกําหนดสถานะเริ่มตน ซึ่งก็คือสถานะที่ยังไมมีอินพุตเขามาหรือสตริงขนาด 0 ตัว (สตริงวางε)

� จากนั้นจึงกําหนดสถานะยอมรับ ใหสอดคลองกับ

30

� จากนั้นจึงกําหนดสถานะยอมรับ ใหสอดคลองกับรูปแบบที่เราตองการจะยอมรับจากอินพุตสตริง

ตัวอยาง (5)

� เพิ่มสถานะเริ่มตนและสถานะยอมรับ

10

31

qeven

1

1

00

qodd

แบบฝกหัด

� จงวาดแผนภาพของ DFA ที่สามารถจดจําภาษาตอไปนี้ โดยที่ ∑ = {0,1}� อักษรตัวแรกตองแตกตางจากตัวสุดทาย� เมื่อมี 00 ปรากฎตองมี 1 ตามมาเสมอ

32

� เมื่อมี 00 ปรากฎตองมี 1 ตามมาเสมอ� สตริงทุกตัวตองมี 00 แตตองไมมี 000

The Regular Operations

Definition� Let A and B be languages. We define the regular

operations union, concatenation, and star as follows.

33

follows. � Union: A ∪ B = {x | x ∈ A or x ∈ B}� Concatenation: A○B = {xy | x ∈ A and y ∈ B}� Star: A* = {x1x2…xk | k ≥ 0 and each xi ∈ A}.

ตัวอยาง

� ใหอักษร (alphabet) Σ เปนตัวหนังสือภาษาอังกฤษมาตราฐาน 26 ตัว {a, b,..., z}.

� ถา A = {good, bad} และ B = {boy, girl}, thenA ∪ B = {good, bad, boy, girl}

34

A ∪ B = {good, bad, boy, girl}A ○ B = {goodboy, goodgirl, badboy, badgirl}A* = {ε, good, bad, goodgood, goodbad, badgood, badbad, goodgoodgood, goodgoodbad, goodbadgood, goodbadbad, ...}

The Regular Operations

� กลุมของวัตถุใดจะมี สถานะปด (closed) ภายใตตัวดําเนินหนึ่ง ถาตวัดําเนินนั้นถูกใชกับสมาชิกของกลุมของวัตถุนั้นแลวผลลัพธที่ไดยังคงอยูในกลุมของวัตถุเติม

35

ของวัตถุเติม� กลุมของ regular languages มีสถานะปดภายใต

regular operations ทั้งสามตัว� ตอไปจะเปนการพิสูจน

The Regular Operations� Theorem

� กลุมของ regular languages มีสถานะปดภายใตตัวดําเนนิการ union

� ถา A1 และ A2 คือ regular languages, ดงันัน้ A1 ∪ A2 ก็เปน regular languages ดวย

36

เปน regular languages ดวย� Proof Idea:

� A1 และ A2 เปน regular ดังนัน้� มี finite automaton M1 ที่จดจํา A1 ได และ� มี finite automaton M2 ที่จดจํา A2 ได

� เราจะแสดงวา finite automaton M ซึ่งจดจํา A1 ∪ A2 และM ถูกสรางจาก M1 และ M2

The Regular Operations

� Proof Idea (ตอ):� M ตองยอมรับสตริงแบบเดยีวกับที่ M1 หรือ M2 ยอมรับ� M จะทํางาน โดยการจาํลองทํางานของ M1 และ M2 โดยที่

จะยอมรับสตริงใด ก็ตอเมื่อการจําลองนัน้ยอมรับสตริงนั้น

37

จะยอมรับสตริงใด ก็ตอเมื่อการจําลองนัน้ยอมรับสตริงนั้น� เราจําเปนตองจําคูของสถานะทั้งหมดระหวาง M1 และ M2

(M1 x M2)� ดังนัน้การเปลีย่นสถานะของ M จะเปนการเปลีย่นระหวางคู

ซึ่งเปนการปรับเปลีย่นสถานะของ M1 และ M2

� สถานะยอมรับของ M คือคูที่ประกอบดวยสถานะยอมรับของM1 หรือ M2

ดูรายละเอียดวิธีการพิสูจนไดที่ หนา 46: Introduction to the Theory of Computation

ตัวอยาง

q0 q1

0 1

1

0

q0 q1

1 0

0

1

M1M2

00 1 0 1M1 ∪ M2

38

q00

q01

q10

q11

0

1

0

1 0

1

1

0

q0 q0 q1

q1 q0 q1

q0 q1 q0

q1 q1 q0

The Regular Operations

� Theorem� กลุมของ regular languages มีสถานะปดภายใตตัว

ดําเนนิการ concatenation� ถา A1 และ A2 เปน regular languages ดังนัน้ A1 ○ A2

39

� ถา A1 และ A2 เปน regular languages ดังนัน้ A1 ○ A2ก็เปน regular ดวย

� Proof Idea:� ลองใชแนวคิดแบบเดยีวกับการพสิูจนของ union� เริ่มจาก finite automata M1 และ M2 ซึ่งจดจาํ regular

languages A1 และ A2.

The Regular Operations

� Proof Idea: (cont.)� ในกรณีนี ้M จะยอมรับ ถาเราสามารถแยกอินพตุสตริง

เปน 2 สวนโดยที่ให M1 ยอมรับสวนแรกและให M2ยอมรับในสวนที่สอง

40

ยอมรับในสวนที่สอง� แตปญหาคอืเราไมรูวาจะแบงอินพตุที่ตรงไหน �

� เพื่อแกปญหานี้เราจะศกึษาวิธีการใหมที่เรียกวาnondeterminism.

การลดจํานวนสถานะใน FA

� FA ใดๆจะจดจําภาษาไดเพียงภาษาเดียว แตหนึ่งภาษาสามารถถูกจดจําไดจากหลาย FA

1

0,1

M2

41

q0

q4

q3

q2

q1

q5

q2q1q0

0

0

1

1

1 1

0,1 0

0,1

0 0,1

1M1

M2

M1 และ M2 จดจําภาษาเดียวกัน

การลดจํานวนสถานะใน FA

นิยาม:สองสถานะ p และ q ของ FA ตัวหนึ่งจะถูกเรียกวา

indistinguishableถา

42

ถาδ*(p, w) ∈ F implies δ*(q, w) ∈ F

และδ*(p, w) ∉ F implies δ*(q, w) ∉ F

for all w ∈ Σ*.

การลดจํานวนสถานะใน FA

ในทางกลบักัน ถามีสตริง w ∈ Σ* ที่δ*(p, w) ∈ F และ δ*(q, w) ∉ F,

หรือกลับกนั เชนนี้เราจะเรียกสถานะ p และ q วาdistinguishable โดยสตริง w

43

distinguishable โดยสตริง w

q

pu

v

w

w δ*(p, w) ∈ F implies δ*(q, w) ∈ F

ตัวอยางของ indistinguishable

การลดจํานวนสถานะใน FA

Indistinguishability มีคุณสมบตัิของ equivalence relations:1. p R p2. if p R q then q R p

44

2. if p R q then q R p

3. if p R q then q R r then p R r

การลดจํานวนสถานะใน FA

วิธีการหนึ่งที่ใชสําหรับลดจํานวนสถานะของ FA คือวิธีการที่ใชหลักการในการหาและรวมสถานะที่เปนแบบ indistinguishable

45

วิธีการนี้จะเริ่มตนจากการหาคูของสถานะที่เปนแบบdistinguishable กอน

การลดจํานวนสถานะใน FA

Procedure: mark1. ลบสถานะที่เขาถึงไมไดออกทั้งหมด2. พิจารณาคูของสถานะทั้งหมด (p, q) ถา p ∈ F และ q ∉F หรือกลบักัน ให mark (p, q) วาเปน distinguishable3. วนซ้ําขั้นตอนตอไปนี้จนกวาจะไมสามารถ mark คูของ

46

3. วนซ้ําขั้นตอนตอไปนี้จนกวาจะไมสามารถ mark คูของสถานะใหมเพิ่มเติมได

สําหรับทุกๆ คู (p, q) และทุกๆ a ∈ Σ,คํานวณ δ(p, a) = pa และ δ(q, a) = qa

ถา (pa, qa) ถูก mark วาเปน distinguishableให mark (p, q) วาเปน distinguishable.

การลดจํานวนสถานะใน FA

เราจะใชผลของ mark ในการแบงเซตของสถานะ Q ของ FA เปนเซตยอยที่ไมรวมกัน (disjoint subsets)

ตัวอยาง:

47

ตัวอยาง:Q = {0,1,2,3,4,5,6,7}unmarked pairs = (1,2), (1,4), (2,4), (3,5), (3,7), (5,7) (คูที่ไมแตกตางกัน)disjoint subsets = {0}, {1,2,4}, {3,5,7}, {6}

การลดจํานวนสถานะใน FA

Procedure: reduceถามี FA M = (Q, Σ, δ, q0, F), เราสามารถสราง FA ที่ถูกลด

สถานะ M' = (Q', Σ, δ', q'0, F') ไดดงันี้1. ใชกระบวนการ mark เพื่อหาเซตของสถานะทั้งหมดที่

indistinguishable (ตามตัวอยางที่แลว).

48

indistinguishable (ตามตัวอยางที่แลว).2. สรางสถานะใหมสําหรับ M' จากเซตของสถานะทั้งหมดที่

indistinguishableตัวอยางเชน สราง q'124 จาก {1,2,4}.

3. เพิ่ม δ' (ij..k, a) = lm…n ถา qr ∈ {qi,qj,…,qk} และ qp ∈{ql,qm,…,qn} และ δ (qr, a) = qp.

4. q'0 สถานะเริ่มตนของ M' คือสถานะที่ประกอบดวย 05. F' คือเซตของสถานะที่ประกอบดวย i โดยที่ qi ∈ F.

การลดจํานวนสถานะใน FA

ตัวอยาง

q10

0 01

10,1

49

q0 q2

q3

q4

10

1

1

q1

q2

q3

q4 1 1 1 1

q0 q1 q2 q31: (q0,q4), (q1,q4), (q2,q4), (q3,q4)

mark คูระหวางสถานะ q4 กับสถานะอื่นๆ

i

j

การลดจํานวนสถานะใน FA

ตัวอยาง

q10

0 01

10,1

0 1

q0 q1 q3

q1 q2 q4

q2 q1 q4

q3 q2 q4

marked(q0,q4)(q1,q4)(q2,q4)(q3,q4)

50

q0 q2

q3

q4

10

1

1

q1

q2

q3

q4 1 1 1 1

q0 q1 q2 q3

q4 q4 q4

i

j

→ (q0,q4), (q2,q4)

การลดจํานวนสถานะใน FA

ตัวอยาง

q10

0 01

10,1

0 1

q0 q1 q3

q1 q2 q4

q2 q1 q4

q3 q2 q4

marked(q0,q4)(q1,q4)(q2,q4)(q3,q4)

51

q0 q2

q3

q4

10

1

1

q1

q2

q3

q4 1 1 1 1

q0 q1 q2 q3

q4 q4 q4

2: (q0,q1), (q0,q2), (q0,q3) i

j

→ (q1,q4), (q3,q4)

การลดจํานวนสถานะใน FA

ตัวอยาง

q10

0 01

10,1

0 1

q0 q1 q3

q1 q2 q4

q2 q1 q4

q3 q2 q4

marked(q0,q4)(q1,q4)(q2,q4)(q3,q4)

52

q0 q2

q3

q4

10

1

1

q1

q2

q3

q4 1 1 1 1

q0 q1 q2 q3

q4 q4 q4

2: (q0,q1), (q0,q2), (q0,q3) i

j

→ (q0,q1), (q0,q2),(q0,q3), (q0,q4)

2

2

2

การลดจํานวนสถานะใน FA

ตัวอยาง

q10

0 01

10,1

0 1

q0 q1 q3

q1 q2 q4

q2 q1 q4

q3 q2 q4

53

q0 q2

q3

q4

10

1

1

q1 2

q2 2 x

q3 2 x x

q4 1 1 1 1

q0 q1 q2 q3

q4 q4 q4

Unmarked pairs = (q1,q2), (q1,q3), (q2,q3)

การลดจํานวนสถานะใน FA

Q = {q0, q1, q2, q3, q4}Unmarked pairs = (q1,q2), (q1,q3), (q2,q3)The disjoint subsets = {q0}, {q1,q2,q3}, {q4}

54

q0 q4q1230,1

0

1

0,10 1

q0 q1 q3

q1 q2 q4

q2 q1 q4

q3 q2 q4

q4 q4 q4

Recommended