Finite automata
-
Upload
sutee-sudprasert -
Category
Education
-
view
1.513 -
download
0
Transcript of Finite automata
1
Finite Automata
นําเสนอโดยดร.สุธี สุดประเสรฐิ
Source: Chapter 1.1 - Introduction to the Theory of Computation by Michael Sipser
2
คอมพิวเตอรคืออะไร?
� ทฤษฎีการคํานวณเริ่มตนจากปญหาที่วา: คอมพิวเตอรคอือะไร?� ดูเหมือนเปนปญหาไรสาระหรือเปลา?
� แตคอมพิวเตอรจริงๆมีความซับซอนมาก� ดังนั้นเราจะศึกษาคอมพิวเตอรในอุดมคติแทนซึ่งเรียกวา
แบบจําลองทางการคํานวณ (computational model).
� ในที่นีเ้ราจะเริ่มศึกษาแบบจําลองที่เรียบงายที่สุดกอนซึ่งเรียกวา finite state machine หรือ finite automaton.
3
Finite Automata
� finite automata เปนแบบจําลองที่ดีสําหรับคอมพิวเตอรที่มีหนวยความจําที่จํากัด� แลวคอมพิวเตอรที่มีหนวยความจํานอยๆ สามารถทํา
อะไรไดบาง?
� ตัวควบคุมอุปกรณไฟฟา เชน ประตูไฟฟาที่สามารถเปด-ปด อัตโนมัติเองได เปนตัวอยางของคอมพิวเตอรที่มีหนวยความจําขนาดเล็ก
4
ตัวอยาง (1)
� มี 2 สถานะคือ� OPEN และ CLOSED (เปดประตู และ ปดประตู)
� มีอินพตุ 4 แบบ� FRONT, REAR, BOTH, และ NEITHER
� คนอยูดานหนา คนอยูดานหลัง คนอยูทั้งดานหนาและหลัง และ ไมมีคนอยูทั้งหนาและหลัง
frontpad
rearpad
door����������� �
5
ตัวอยาง (2)
CLOSED OPEN
FRONT
NETHER
REARBOTH
NETHER
FRONTREARBOTH
CLOSEDCLOSEDOPENCLOSEDCLOSED
OPENOPENOPENCLOSEDOPEN
BOTHREARFRONTNETHER
สัญญาณอินพุต
สถานะปจจุบัน
6
ตัวอยาง (3)
� อุปกรณไฟฟาที่มีตัวควบคุมที่มีความซับซอนมากขึ้น (ใชหนวยความจํามากขึ้น)� ลฟิท� เครื่องซักผา� โทรศัพทมือถือ� นาฬิกา� เครื่องคดิเลข
7
Finite Automata
� กอนที่เราจะอธิบาย finite automata โดยใชคณิตศาสตร เราเริ่มศึกษาภาพรวมของ finite automata ในรูปแบบทั่วไปที่ไมไดเจาะจงสําหรับการประยุกตใชในงานใดงานหนึ่งกอน
8
Finite Automata
� 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.
q1 q3q2
0
1
1
0,1
0
A finite automaton called M1 that has three states
9
Finite Automata
� เมื่ออินพุตคือ “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.
q1 q3q2
0
1
1
0,1
0
10
Finite Automata
� ภาษาที่ประกอบดวย strings ที่ M1 ยอมรับ อธิบายไดวาอยางไร?� 1,01,11, and 0101010101.� 100, 0100, 110000, and 0101000000.
q1 q3q2
0
1
1
0,1
0
11
Formal Definition
� แมวาการใช state diagrams จะงายในการทําความเขาใจ, เราก็ยังตองการนิยามอยางเปนทางการ (formal definition) เพราะ� ประการแรก formal definition มีความชัดเจน
� จะทําใหเราเห็นชัดเจนวาอะไรที่ finite automata สามารถทําไดหรือไมสามารถทําได
� ประการที่สอง formal definition ทําใหเราสามารถใชสัญลักษณ (notation) แทนได.� การใชสัญลักษณทําใหเราสามารถคิดและแสดงความคิดได
ชัดเจนขึ้น
12
Formal Definition
� formal definition สําหรับ finite automaton
สามารถกําหนดไดโดยใชวัตถุ 5 ตัวตอไปนี้
� set of state� input alphabet� rules for moving� start state� accept states
13
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, 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.
14
Formal Definition
� Q = { q1, q2, q3 }
� Σ = { 0, 1 }� δ is described as
q1 q3q2
0
1
1
0,1
0
We can describe M1 formally by writing M1 = (Q, Σ, δ, q1, F), where
� q1 is the start state, and� F = { q2 }.
q2q2q3
q2q3q2
q2q1q1
10
δ(q1,0) = q1δ(q2,0) = q3δ(q3,0) = q2
δ(q1,1) = q2δ(q2,1) = q2δ(q3,1) = q2
15
Formal Definition
� ถา A คือเซตของสตริงทั้งหมดที่เครื่องจักร M ยอมรับ, เราพูดไดวา A คือภาษาของเครื่องจักร M และเขียนไดวา L(M) = A
� เราพูดวา M recognizes A หรือ M accepts A.� หนึ่งเครื่องจักรอาจจะยอมรับหลายสตริง, แต
สามารถจดจําไดแคภาษาเดียวเทานั้น� สําหรับเครื่องจักรที่ไมยอมรับสตริงใดเลย, เราบอกวา
เครื่องจักรนัน้จดจําภาษาวาง (empty language ∅)
16
Extended Transition Function
δ : Q x Σ → Q is the transition functionδ(q, a) = “the state to which the machine M
goes if it is in state q and receives input symbol 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”
17
Extended Transition Function
ตัวอยาง:
q0 q6……..a b a
w = ab…a
δ*(q0,w) = q6
18
Extended Transition Function
Definition: Let M = (Q, Σ, δ, q0, F) be a DFA. Define the function
δ*: Q x Σ* → Q
recursively as follows.
When q ∈ Q, w ∈ Σ*, and a ∈ Σ,1. δ*(q, ε) = q2. δ*(q, wa) = δ(δ*(q, w), a)
19
Extended Transition Function
δ*(q1,010)δ*(q1, 010) = δ(δ*(q1,01), 0)δ*(q1, 01) = δ(δ*(q1,0), 1)δ*(q1,0) = δ(δ*(q1,ε), 0)δ*(q1,ε) = q1
q1 q3q2
0
1
1
0,1
0
20
Formal Definition of Computation
� ตอนนี้เราทราบถึงวิธีการคํานวณอยางคราวๆของ
FA ตอไปจะเปนการนิยามอยางเปนทางการของคํานวณของ FA
21
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.� 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.
22
การออกแบบ Finite Automata
� การออกแบบ automata เหมือนงานศิลปะซึ่งตองอาศัยความคิดสรางสรรค
� ซึ่งไมมีสูตรสําเร็จตายตัว �
� อยางไรก็ตามยังมีแนวทางที่เปนประโยชน ในการนําไปใชเพื่อออกแบบ automata ชนิดตางๆ ได ☺
� หลักการคือใหคิดวาตัวเองเปน automata ที่เราตองการออกแบบ หรือ เรียกวา� "reader as automaton" method
23
ตัวอยาง (1)
� สมมุติให alphabet คือ {0, 1} ใหสราง FA ที่จดจําภาษาที่ประกอบดวยสตริงทั้งหมดที่มี 1 เปนเลขคี่
� เริ่มตน เราตองพิจารณาใหรูวา อะไรคือสิ่งที่เราจําเปนจะตองจําในขณะที่เรากําลังอานขอมูล� ทําไมเราจําขอมูลที่ตองการทั้งหมดเลย?
� ในกรณีนี้ สิ่งที่เราจําเปนตองจําคือจํานวนของ 1 วาเปนจํานวนคูหรือจํานวนคี่
24
Example (2)
� จากนั้นจึงสรางสถานะที่เปนไปไดทั้งหมด
qeven qodd
25
Example (3)
� ตอไปจึงกําหนดการเปลี่ยนสถานะที่เปนไปไดทั้งหมด ซึ่งเกิดการอานอินพุตสตริง
� ในกรณีตัวอยาง สถานะจะถูกเปลี่ยนก็ตอเมื่ออินพุตเปน 1 และจะอยูกับที่เมื่ออินพุตเปน 0
26
Example (3)
� เราจะเขียนการเปลี่ยนสถานะไดดังนี้
qeven qodd
1
1
00
27
Example (4)
� ตอไปจึงกําหนดสถานะเริ่มตน ซึ่งก็คือสถานะที่ยังไมมีอินพุตเขามาหรือสตริงขนาด 0 ตัว (สตริงวาง
ε)� จากนั้นจึงกําหนดสถานะยอมรับ ใหสอดคลองกับ
รูปแบบที่เราตองการจะยอมรับจากอินพุตสตริง
28
Example (5)
� เพิ่มสถานะเริ่มตนและสถานะยอมรับ
qeven
1
1
00
qodd
29
The Regular Operations
Definition� Let A and B be languages. We define the regular
operations union, concatenation, and star as 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}.
30
ตัวอยาง
� ใหอักษร (alphabet) Σ เปนตัวหนังสือภาษาอังกฤษมาตราฐาน 26 ตัว {a, b,..., z}.
� ถา A = {good, bad} และ B = {boy, girl}, thenA ∪ B = {good, bad, boy, girl}
A ○ B = {goodboy, goodgirl, badboy, badgirl}A* = {ε, good, bad, goodgood, goodbad, badgood, badbad, goodgoodgood, goodgoodbad, goodbadgood, goodbadbad, ...}
31
The Regular Operations
� กลุมของวัตถุใดจะมี สถานะปด (closed) ภายใตตัวดําเนินหนึ่ง ถาตัวดําเนินนั้นถูกใชกับสมาชิกของกลุมของวัตถุนั้นแลวผลลัพธที่ไดยังคงอยูในกลุมของวัตถุเติม
� กลุมของ regular languages มีสถานะปดภายใต regular operations ทั้งสามตัว
� ตอไปจะเปนการพิสูจน
32
The Regular Operations� Theorem
� กลุมของ regular languages มีสถานะปดภายใตตัวดําเนนิการ union
� ถา A1 และ A2 คือ regular languages, ดงันัน้ A1 ∪ A2 ก็เปน regular languages ดวย
� Proof Idea:� A1 และ A2 เปน regular ดังนัน้
� มี finite automaton M1 ที่จดจํา A1 ได และ� มี finite automaton M2 ที่จดจํา A2 ได
� เราจะแสดงวา finite automaton M ซึ่งจดจํา A1 ∪ A2 และ M ถูกสรางจาก M1 และ M2
33
The Regular Operations
� Proof Idea (ตอ):� M ตองยอมรับสตริงแบบเดยีวกับที่ M1 หรือ M2 ยอมรับ� M จะทํางาน โดยการจาํลองทํางานของ M1 และ M2 โดยที่
จะยอมรับสตริงใด ก็ตอเมื่อการจําลองนัน้ยอมรับสตริงนั้น� เราจําเปนตองจําคูของสถานะทั้งหมดระหวาง M1 และ M2
(M1 x M2)
� ดังนัน้การเปลีย่นสถานะของ M จะเปนการเปลีย่นระหวางคู ซึ่งเปนการปรับเปลีย่นสถานะของ M1 และ M2
� สถานะยอมรับของ M คือคูที่ประกอบดวยสถานะยอมรับของ
M1 หรือ M2
ดูรายละเอียดวิธีการพิสูจนไดที่ หนา 46: Introduction to the Theory of Computation
34
ตัวอยาง
q0 q1
0 1
1
0
q0 q1
1 0
0
1
M1M2
q00
q01
q10
q11
0
1
0
1 0
1
1
0q1q0q1
q1q0q0
10
q0q1q1
q0q1q0
10M1 ∪ M2
35
The Regular Operations
� Theorem� กลุมของ regular languages มีสถานะปดภายใตตัว
ดําเนนิการ concatenation
� ถา A1 และ A2 เปน regular languages ดงันัน้ A1 ○ A2
ก็เปน regular ดวย
� Proof Idea:� ลองใชแนวคิดแบบเดยีวกับการพสิูจนของ union� เริ่มจาก finite automata M1 และ M2 ซึ่งจดจาํ regular
languages A1 และ A2.
36
The Regular Operations
� Proof Idea: (cont.)� ในกรณีนี้ M จะยอมรับ ถาเราสามารถแยกอินพตุสตริง
เปน 2 สวนโดยที่ให M1 ยอมรับสวนแรกและให M2
ยอมรับในสวนที่สอง� แตปญหาคอืเราไมรูวาจะแบงอินพตุที่ตรงไหน �
� เพื่อแกปญหานี้เราจะศกึษาวิธีการใหมที่เรียกวา
nondeterminism.
37
การลดจํานวนสถานะใน FA
� FA ใดๆจะจดจําภาษาไดเพียงภาษาเดียว แตหนึ่งภาษาสามารถถูกจดจําไดจากหลาย FA
q0
q4
q3
q2
q1
q5
q2q1q0
0
0
1
1
0,1
1 1
0,1 0
0,1
0 0,1
1M1
M2
M1 และ M2 จดจําภาษาเดียวกัน
38
การลดจํานวนสถานะใน FA
นิยาม:
สองสถานะ p และ q ของ FA ตัวหนึ่งจะถูกเรียกวา
indistinguishableถา
δ*(p, w) ∈ F implies δ*(q, w) ∈ F
และδ*(p, w) ∉ F implies δ*(q, w) ∉ F
for all w ∈ Σ*.
39
การลดจํานวนสถานะใน FA
ในทางกลบักัน ถามสีตริง w ∈ Σ* ที่ δ*(p, w) ∈ F และ δ*(q, w) ∉ F,
หรือกลับกนั เชนนี้เราจะเรียกสถานะ p และ q วา
distinguishable โดยสตริง w
q
pu
v
w
w δ*(p, w) ∈ F implies δ*(q, w) ∈ F
ตัวอยางของ indistinguishable
40
การลดจํานวนสถานะใน FA
Indistinguishability มีคุณสมบตัิของ equivalence
relations:1. p R p
2. if p R q then q R p3. if p R q then q R r then p R r
41
การลดจํานวนสถานะใน FA
วิธีการหนึ่งที่ใชสําหรับลดจํานวนสถานะของ FA คือวิธีการที่ใชหลักการในการหาและรวมสถานะที่เปนแบบ indistinguishable
วิธีการนี้จะเริ่มตนจากการหาคูของสถานะที่เปนแบบ
distinguishable กอน
42
การลดจํานวนสถานะใน FA
Procedure: mark1. ลบสถานะที่เขาถึงไมไดออกทั้งหมด2. พิจารณาคูของสถานะทั้งหมด (p, q) ถา p ∈ F และ q ∉F หรือกลับกัน ให mark (p, q) วาเปน distinguishable
3. วนซ้ําขั้นตอนตอไปนี้จนกวาจะไมสามารถ mark คูของสถานะใหมเพิ่มเติมได
สําหรับทุกๆ คู (p, q) และทุกๆ a ∈ Σ,คํานวณ δ(p, a) = pa และ δ(q, a) = qa
ถา (pa, qa) ถูก mark วาเปน distinguishable
ให mark (p, q) วาเปน distinguishable.
43
การลดจํานวนสถานะใน FA
เราจะใชผลของ mark ในการแบงเซตของสถานะ Q ของ FA เปนเซตยอยที่ไมรวมกัน (disjoint subsets)
ตัวอยาง: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}
44
การลดจํานวนสถานะใน FA
Procedure: reduceถามี FA M = (Q, Σ, δ, q0, F), เราสามารถสราง FA ที่ถูกลด
สถานะ M' = (Q', Σ, δ', q'0, F') ไดดงันี้1. ใชกระบวนการ mark เพื่อหาเซตของสถานะทั้งหมดที่
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' คือสถานะที่ประกอบดวย 0
5. F' คือเซตของสถานะที่ประกอบดวย i โดยที่ qi ∈ F.
45
การลดจํานวนสถานะใน FA
ตัวอยาง
q0 q2
q1
q3
q4
0
1
0 0
0
1
1
1
0,1
q1
q3
1
q2q1q0
111q4
q3
q2
1: (q0,q4), (q1,q4), (q2,q4), (q3,q4)
mark คูระหวางสถานะ q4 กับสถานะอื่นๆ
i
j
46
การลดจํานวนสถานะใน FA
ตัวอยาง
q0 q2
q1
q3
q4
0
1
0 0
0
1
1
1
0,1
q1
q3
1
q2q1q0
111q4
q3
q2
q4q2q3
q4q4q4
q4q1q2
q4q2q1
q3q1q0
10
i
j
marked(q0,q4)(q1,q4)(q2,q4)(q3,q4)
→ (q0,q4), (q2,q4)
47
การลดจํานวนสถานะใน FA
ตัวอยาง
q0 q2
q1
q3
q4
0
1
0 0
0
1
1
1
0,1
q1
q3
1
q2q1q0
111q4
q3
q2
q4q2q3
q4q4q4
q4q1q2
q4q2q1
q3q1q0
10
2: (q0,q1), (q0,q2), (q0,q3) i
j
marked(q0,q4)(q1,q4)(q2,q4)(q3,q4)
→ (q1,q4), (q3,q4)
48
การลดจํานวนสถานะใน FA
ตัวอยาง
q0 q2
q1
q3
q4
0
1
0 0
0
1
1
1
0,1
q1
q3
1
q2q1q0
111q4
q3
q2
q4q2q3
q4q4q4
q4q1q2
q4q2q1
q3q1q0
10
2: (q0,q1), (q0,q2), (q0,q3) i
j
marked(q0,q4)(q1,q4)(q2,q4)(q3,q4)
→ (q0,q1), (q0,q2),(q0,q3), (q0,q4)
2
2
2
49
การลดจํานวนสถานะใน FA
ตัวอยาง
q0 q2
q1
q3
q4
0
1
0 0
0
1
1
1
0,1
2q1
q3
1
q2q1q0
111q4
xx2q3
x2q2
q4q2q3
q4q4q4
q4q1q2
q4q2q1
q3q1q0
10
Unmarked pairs = (q1,q2), (q1,q3), (q2,q3)
50
การลดจํานวนสถานะใน FA
Q = {q0, q1, q2, q3, q4}Unmarked pairs = (q1,q2), (q1,q3), (q2,q3)The disjoint subsets = {q0}, {q1,q2,q3}, {q4}
q0 q4q1230,1
0
1
0,1
q4q2q3
q4q4q4
q4q1q2
q4q2q1
q3q1q0
10