DM_lect_13-modeling

Download Report

Transcript DM_lect_13-modeling

461191 Discrete Math
Lecture 13: Modeling Computation
San Ratanasanya
CS, KMUTNB
Today’s topics



Review of Boolean Algebra
Administrivia
Modeling Computation
2
Boolean Algebra

เป็ นกฎที่ใช้ในการทางานกับ set { 0, 1 } หรื อ { F, T } หรื อ Logic

Boolean Algebra นามาใช้กบั การออกแบบวงจร Electronics ให้ทางานตามที่ตอ้ งการ

ให้ B = {0, 1}, Bn = {(x1,x2,…,xn) | xiB for 1  i  n} เป็ น set ของ n-tuples ของ 0 และ 1 ที่เป็ นไปได้

x คือ Boolean Variable หรื อ Boolean Literal

Function จาก Bn ถึง B เรี ยกว่า Boolean Function ที่มี degree n



เราสามารถแสดง Boolean Function โดยใช้ นิพจน์บูลีน (Boolean Expression) ได้ซ่ ึงก็คือการดาเนินการของ Boolean
Operation บน Boolean Variable
เราสามารถนิยาม Boolean Expression ในแบบ recursive ได้
การดาเนินการที่ใช้บ่อยที่สุด 3 อย่าง ได้แก่


Complement, Boolean product (AND), และ Boolean sum (OR)
ลาดับของตัวดาเนินการ (Precedence): complement, AND, OR
3
Examples
1 0  (0  1)  0
1 0  (0  1)  0
(T  F )  ( F  T )  F
4
Representing Boolean

เมื่อเรามี Boolean Function, Boolean Expression ที่สามารถแสดงถึง Boolean
Function นั้นได้ สามารถหาได้จาก




Sum-of-Products Expansion หรื อ
Product-of-Sums Expansion
นัน่ หมายความว่า Boolean Function สามารถแสดงได้โดยการใช้ Boolean Operator
เพียง 3 ตัว ได้แก่ +, , และ ¯ เราเรี ยก set ของ operators เหล่านี้วา่ เป็ น Functionally
complete
มี set ของ Boolean Operator ที่มีสมาชิกน้อยกว่า 3 ตัว และเป็ น Functionally
Complete อยูห่ รื อไม่ ถ้ามีนนั่ แสดงว่าเราสามารถลดจานวนของ Operator ซึ่ งมีผลให้
สามารถลดประเภทของ Logic Gate ที่ตอ้ งใช้ได้
5
Examples
6
Logic Gates



Boolean Algebra ใช้ในการ model วงจร Electronics
ส่ วนประกอบพื้นฐานที่สุดในวงจรประเภทนี้กค็ ือ Logic Gate
Logic Gate แต่ละประเภทจะสร้างจาก Boolean Operation แต่ละอย่าง
Not Gate
7
Combinational Circuits



วงจรรวม (Combinational Circuit) คือวงจรที่ประกอบขึ้นจาก Logic Gate
หลายๆตัวเพื่อทางานอย่างใดอย่างหนึ่ง โดยที่ไม่ตอ้ งมีหน่วยความจา
วงจรประเภทนี้สามารถมี input และ output ได้มากกว่าหนึ่ง ขึ้นอยูก่ บั งานที่
นาไปใช้
ตัวอย่างของวงจรประเภทนี้ที่มีใช้ในคอมพิวเตอร์ได้แก่


Half / Full Adder
Multiplexer
8
Examples
9
Minimizing Circuits



เป็ นการลดรู ปวงจร Combinations เพื่อให้ใช้จานวน Logic Gate น้อยลง ส่ งผลให้ได้
Chip ที่มีขนาดเล็กลงและราคาถูกลง
สามารถใช้ Sum-of-Product Expansion และ Boolean Identities ในการลดรู ปได้
แต่โดยทัว่ ไปจะใช้ Karnaugh Map หรื อ Quine-McCluskey ในการลดรู ปวงจร
10
Example
11
Example

จงใช้ Quine-McCluskey เพื่อทาการลดรู ป DNF ต่อไปนี้
wxy z  wxyz  wxy z  wxyz  wx yz  wxyz  wx yz
12
=
wz  wy z  wxy หรือ wz  wy z  xyz
13
Administrivia

Exam is in 2 weeks! Please be prepared.

All homework and assignments due next week, except
assignment 4
14
Introduction

คอมพิวเตอร์สามารถทางานได้หลากหลาย ทาให้เราสะดวกสบายมากขึ้น แต่คาถามที่สาคัญกก็คือ




ออโตมาตา(Automata) คือพื้นฐานของการคานวณโดยเครื่ องคอมพิวเตอร์ เราจะศึกษาคุณสมบัติ
ทัว่ ๆไปของการคานวณในรู ปแบบต่างๆ เพื่อให้เกิดความเข้าใจและนาไปสู่การพัฒนาการคานวณให้
ดีข้ ึน และนามาเป็ นขั้นตอนวิธีในการแก้ปัญกหาต่างๆได้
ในบทนี้เราจะศึกษาถึงโครงสร้างที่สาคัญก 3 โครงสร้าง ซึ่งเปรี ยบเสมือนตัวแทนของงานที่
คอมพิวเตอร์สามารถทาได้ โครงสร้างทั้ง 3 นี้ถูกใช้ในการจาลอง (model) การคานวณ หรื อการนับ




งานประเภทไหนที่คอมพิวเตอร์สามารถทาได้และ
จะทางานนั้นได้อย่างไร
Grammars
Finite-State Machines (Automata)
Turing Machines
Applications: Natural Language Processing (NLP), Machine Translation, Design of Algorithm,
Machine, Programming Language, and Compiler, and etc.
15
Languages and Grammars


คาในภาษาต่างๆ เช่น ภาษาไทย ภาษาอังกฤษ สามารถนามาประกอบกันเป็ นประโยค
ได้หลายรู ปแบบ
Grammar หรื อ หลักไวยากรณ์ เป็ นตัวบอกว่าจะต้องนาคามาประกอบกันแบบใดถึง
จะเป็ นประโยคที่มีความหมายในภาษานั้นๆ
The frog writes neatly
quickly mathematics
 Swims
ฉันกาลังเรียนวิชาคณิตศาสตร์ไม่ต่อเนื่อง
 และง่วงอยากฉันรู้สึกนอน





Grammar ใช้ในการตรวจสอบว่าประโยคนี้ เป็ นประโยคที่ถกู ต้องหรื อไม่ และ เราจะ
สร้างประโยคในภาษานั้นได้อย่างไร
16
Terminologies for Grammars




Syntax : รู ปแบบของประโยคที่ถูกต้องตามหลักไวยากรณ์
Semantics : ความหมายของประโยค
Natural Language : ภาษาพูดต่างๆ เช่น English, France, Italy, และ Thai
เป็ นต้น ภาษาพูดเป็ นภาษาที่มี syntax ที่ซบั ซ้อน
Formal Language : ภาษาที่มีรูปแบบที่นิยามไว้ดีแล้ว ซึ่งนามาใช้ในการ
สร้าง model เพื่อศึกษา natural language หรื อ programming language
17
Example

English Grammar





sentence สร้างจาก noun phrase ตามด้วย verb
phrase
noun phrase ประกอบด้วย article ตามด้วย
adjective และ noun หรื อ
noun phrase ประกอบด้วย article ตามด้วย noun
verb phrase ประกอบด้วย verb ตามด้วย adverb
หรื อ
verb phrase ประกอบด้วย verb
sentence
noun phrase verb phrase
article adjective noun verb phrase
article adjective noun verb adverb
the adjective noun verb adverb
the large noun verb adverb
the large rabbit verb adverb
the large rabbit hops adverb
the large rabbit hops quickly
18
Phrase-Structure Grammars





Vocabulary (V) เป็ น set ของสัญกลักษณ์ที่ใช้แสดงในภาษานั้น
Terminals (T) คือ set ของสัญกลักษณ์ที่ไม่สามารถแทนด้วย สมาชิกอื่นๆใน V ได้
Nonterminals (N) คือ set ของสัญกลักษณ์ที่สามารถแทนด้วย สมาชิกอื่นๆใน V ได้
Start symbol (S) เป็ นสมาชิกของ V ที่ใช้ในการเริ่ มต้นประโยคเสมอ
Productions (P) เป็ นกฎที่บอกว่าเราสามารถแทนสมาชิกใน V ใดด้วยสมาชิกตัวอื่นใน V ใดได้ ใช้
สัญกลักษณ์  แทน production เช่น z0  z1 หมายถึงเราสามารถแทน z0 ด้วย z1 ได้




 หมายถึงการแทนที่โดยตรง หรื อ การกลายโดยตรง จาก z0 มาเป็ น z1
 หมายถึงการกลาย เช่น z0  zn หมายถึงการกลายจาก z0 มาเป็ น zn
ดู Definition 1-4 ใน Sec. 12.1 page 787-788
เป็ น set ของ empty string
19
Examples

ให้ L(G) เป็ นภาษาที่สร้างมาจาก Grammar G โดยที่ G = {V, T, S, P} เมื่อ V = {a, b,
A, B, S}, T = {a, b}, S เป็ น start symbol, และ P = {S  ABa, A  BB, B  ab}



Aaba เป็ นการแทนที่โดยตรงจาก ABa เนื่องจาก B  ab
Abababa จะเป็ นประโยคที่อยูถ่ ูกต้องของ L(G) เพราะ ABa  Aaba  BBa  Bababa 
abababa
ให้ G = {V, T, S, P} โดยที่ V = {S, A, a, b}, T = {a, b}, S เป็ น start symbol, และ P =
{S  aA, S  b, A  aa} แล้วจงหา L(G)
L(G) = {b, aaa}
20
Chomsky’s Scheme

นักภาษาศาสตร์ Noam Chomsky ได้เสนอแนวคิดในการใช้ลกั ษณะของ production ที่มีในแต่ละ
Grammar เพื่อแบ่งแยกชนิดของ Phrase-Structure Grammar ซึ่ งสามาถแบ่งออกได้เป็ น 4 ชนิด
Type 3  Type 2
Type 2  Type 1
Type 1  Type 0


Type 1 มีอีกชื่อว่า context-sensitive grammar, Type 2 มีอีกชื่อว่า context-free grammar, และ Type
3 มีอีกชื่อว่า regular grammar (รายละเอียดดูใน Sec. 12.1 page 789-790)
ภาษาที่เกิดจาก Type 1, 2, และ 3 จึงเรี ยกว่า context-sensitive (ภาษาพึ่งบริ บท), context-free (ภาษา
ไม่พ่ งึ บริ บท), และ regular language ตามลาดับ (ซึ่งนศ.จะได้ศึกษาเรื่ องนี้อย่างละเอียดในวิชา
Principle of Programming Language)
21
Derivation Tree

เราสามารถใช้ Tree เพื่อแสดงการแทนที่ในภาษาแบบ Context-free ได้และ
เรี ยก Tree นี้วา่ Derivation หรื อ Parse Tree และนาไปใช้ในการออกแบบ
Compiler
22
Backus-Naur Form (BNF)



Backus-Naur เป็ น notation (สัญกลักษณ์) ที่ใช้ระบุ Type 2 grammar อีกชุดที่นิยมใช้
กันในการอธิ บายภาษาการโปรแกรม (Programming Language) เนื่องจาก Backus
และ Naur ได้ปรับปรุ งเพื่อใช้อธิบายหลักการของภาษา ALGOL
ในสัญกลักษณ์ชุดนี้ เราจะใช้ ::= แทน  เพื่อแสดงถึง production, ใช้ <> เพือ่ บ่งบอก
ว่าสัญกลักษณ์น้ นั เป็ น nonterminal, และใช้ | แทน , หมายถึง “หรื อ”
เช่น A  Aa, A  a, A  AB มี BNF เป็ น <A> ::= <A>a | a | <A><B>
<sentence> ::= <noun phrase><verb phrase>
<noun phrase> ::= <article><adjective><noun> | <article><noun>
<verb phrase> ::= <verb><adverb> | <verb>
<article> ::= a | the
… (ดู Example 14 ใน Sec. 12.1 page 793)
23
State Machines




เครื่ องจักร หรื อกลไกประเภทต่างๆ มีลกั ษณะที่คล้ายกับการคานวณทาให้เราสนใจทีจ่ ะศึกษาและ
จาลองการทางานของเครื่ องกลต่างๆ เราสามารถมองว่า ขั้นตอนการทางานกลไกต่างๆ ทาให้
ภาพรวมของกลไกนั้นมีสถานะในการทางานที่แตกต่างกันในแต่ละขั้นตอน
ดังนั้นในการจาลองการทางานของ Machine นี้ เรานิยมใช้ Model ที่เรี ยกว่า Finite-State Machine
เพื่อให้รู้ถึงการทางานและสามารถทานายผลการทางานเพื่อควบคุมการทางานให้เป็ นไปตามที่เรา
ต้องการ เนื่องจากถ้า machine ใดมีจานวนของ สถานะ (state) ที่ไม่จากัดแล้ว เราจะไม่สามารถศึกษา
และควบคุม machine นั้นได้อย่างถูกต้อง
โครงสร้างนี้สามารถนาไปใช้จาลองการทางานของกลไกได้หลายอย่าง เช่น grammar and spell
checking, searching text, transforming text using HTML or XML, และ network protocols เป็ นต้น
Finite-State Machine นี้แบ่งได้เป็ น 2 แบบตามลักษณะ Output คือแบบมี และไม่มี Output
24
Finite-State Machine with Output
Definition 1
ให้ Finite-State Machine M = (S, I, O, f, g, s0) ประกอบด้วย เซตจากัดของ States (S),
Input (I), Output (O), มี f เป็ น transition function ที่กาหนดคู่ของ state และ input ไปยัง
state ใหม่, g เป็ น output function ที่กาหนด output ให้กบั คู่ของ state และ input
และมี s0 เป็ น state เริ่ มต้น


เราสามารถใช้ State table เพื่อแสดงถึง f และ g ของ Finite-State Machine M หรื อใช้ State diagram
ซึ่งเป็ น directed graph เพื่อแสดง M ก็ได้
Finite-State Machine with output มีหลาย model แต่ที่เป็ นที่นิยมใช้กนั มี 2 model คือ


Mealy Machine เป็ น model ที่ให้ Output สัมพันธ์กบั การเปลี่ยนสถานะของ Machine
Moore Machine เป็ น model ที่สถานะของ Machine จะเป็ นตัวกาหนด Output
25
Example
Satates (S)?
Input (I)?
Output (O)?
S = {s0, s1, s2, s3}
I = {0, 1}
O = {0, 1}
26
Example
เครื่ องขายน้ าอัตโนมัติ (Vending Machine) เครื่ องหนึ่ง
ขายแต่น้ าส้มและน้ าแอปเปิ้ ลราคา 30 cent โดยการหยอด
เหรี ยญกและกดปุ่ มเลือกสิ นค้า เครื่ องนี้รับเฉพาะเหรี ยญก
5, 10, 25 cent และสามารถทอนเงินได้หากหยอด
เหรี ยญกเกินราคาสิ นค้า
27
28
Finite-State Machine with No Output








State Machine with No Output มีอีกชื่อหนึ่งว่า Automata
Finite-State Machine ประเภทนี้จะไม่มี Output แต่จะมี Final State แทน
ใน State diagram Final State จะแทนด้วยสัญกลักษณ์วงกลม 2 วงซ้อนกัน
การทางานของ Machine ประเภทนี้จะสิ้ นสุ ดลงที่ Final State ซึ่งมีได้หลาย state
Application อย่างหนึ่งที่สาคัญกของ Finite-State Machine คือ การรู้จาภาษา (Language Recognition)
ซึ่งสามารถนาไปใช้ในงาน Machine Translation หรื อ ออกแบบ Compiler และ Programming
Language ได้ รวมถึงการศึกษาทฤษฎีการคณนา (Theory of Computation)
และ Finite-State Automata ก็ถูกจาลองมาเพื่อจัดการกับปั ญกหานี้โดยเฉพาะ โดยมีหลักการว่า
“Finite Automata จะรู้จกั String นั้นก็ต่อเมื่อ String นั้นสามารถเปลี่ยนสถานะของมันไปยังสถานะ
สุ ดท้ายได้”
Finite Automata (FA) มีอยูด่ ว้ ยกัน 2 แบบ Deterministic และ Non-Deterministic FA
FA 2 ตัวจะเท่ากันได้ (equivalent) ก็ต่อเมื่อมันรู ้จกั ภาษาเดียวกัน
29
Strings
Definition 1
สมมติให้ A และ B เป็ น subset ของ V* เมื่อ V คือ vocabulary แล้ว การเชื่อมต่อกัน (concatenation)
ของ A และ B แทนด้วย AB จะเป็ นset ของ string ที่อยูใ่ นรู ปของ xy เมื่อ x เป็ น string ที่อยูใ่ น A และ
y เป็ น string ที่อยูใ่ น B
Definition 2
สมมติ A เป็ น subset ของ V* แล้ว Kleene closure ของ A (A*) จะเป็ น set ที่ประกอบไปด้วย

A
*

concatenation ของ string ใดๆ หลายๆ ตัวจาก A นัน่ คือ
k 0 Ak


ให้ A = {0,1} และ B = {1, 10, 110} จงหา AB และ BA
ให้ A ={1, 00} จงหา An สาหรับ n = 0, 1, 2, และ 3
A0 = {},
A1 = A0A = {}A = {1, 00}
A2 = AA = {11, 100, 001, 0000}
A3 = {111, 1001, 0011, 00001, 1100, 10000, 00100, 000000}
AB = {01, 010, 0110, 11, 110, 1110}
BA = {10, 11, 100, 101, 1100, 1101}
30
Language Recognized by FA
Definition 4
เราจะบอกว่า string x ถูกรู้จา (recognized) หรื อ ถูกยอมรับ (accepted) โดยเครื่ องจักร M = (S, I, f, S0, F)
ถ้ามันสามารถเปลี่ยนสถานะของ M จาก s0 ไปสู่ final state ได้ หรื อ f(s0, x) เป็ นสถานะใน F
ภาษาที่ถูกรู้จาหรื อยอมรับโดย M จะเรี ยกว่า L(M)
FA 2 ตัวจะเรี ยกว่า เท่ากัน (equivalent) ถ้ามันรู้จาภาษาเดียวกัน


เราสามารถสร้าง FA ที่รู้จาภาษาที่ตอ้ งการ โดยการเพิม่ state และ transition อย่างระมัดระวังพร้อม
ทั้งหาว่า state ใดควรเป็ น final state
เราจะเพิ่ม state ที่สามรถรักษาคุณสมบัติบางประการของภาษานั้น เมื่อถึงสถานะที่เหมาะสมทาให้
FA มีความจา (memory) ที่จากัด
31
Example

จงสร้าง deterministic ที่รู้จาภาษาต่อไปนี้





a) set ของ bit string ที่เริ่ มต้นด้วย 00
b) set ของ bit string ที่มี 00
c) set ของ bit string ที่ไม่มี 00
d) set ของ bit string ที่จบด้วย 00
e) set ของ bit string มี 0 อย่างน้อย 2 ตัว
32
33
Example




จงแสดงให้เห็นว่า M0 และ M1 เท่ากัน
L(M0) คือ string ที่เป็ น 1 หรื อ เริ่ มจาก
0 กี่ตวั ก็ได้แต่ตอ้ งลงท้ายด้วย 1
L(M1) คือ string ที่เป็ น 1 หรื อ เริ่ มจาก
0 กี่ตวั ก็ได้แต่ตอ้ งลงท้ายด้วย 1
L(M0) = L(M1)
34
DFA vs. NFA
Definition 3
Deterministic Finite-State Automaton (DFA) M = (S, I, f, s0, F) ประกอบด้วย เซตจากัดของ States (S),
Input (I), มี f เป็ น transition function ที่กาหนด state ใหม่ให้กบั คู่ของ state และ input
(โดยที่ f : S  I  S) , มี s0 เป็ น state เริ่ มต้น, และมี F เป็ น subset ของ S ที่ประกอบไปด้วย Final State
Definition 4
Nondeterministic Finite-State Automaton (NFA) M = (S, I, f, s0, F) ประกอบด้วย เซตจากัดของ States (S),
Input (I), มี f เป็ น transition function ที่กาหนด state ใหม่ให้กบั คู่ของ state และ input
(โดยที่ f : S  I  P(S)) , มี s0 เป็ น state เริ่ มต้น, และมี F เป็ น subset ของ S ที่ประกอบไปด้วย Final State


Deterministic FA (DFA) เป็ น FA ที่มี transition จาก state ปัจจุบนั ไปยัง state ใหม่ที่แน่นอนและ
เป็ น unique
Nondeterministic FA (NFA) เป็ น FA ที่มี transition จาก state ปัจจุบนั ไปยัง state ใหม่ได้หลาย
35
transition


ทั้ง DFA และ NFA นั้นมีความสามารถเท่ากัน
Theorem 1 ถ้า NFA M0 รู้จกั ภาษา L แล้ว จะต้องมี DFA M1 ที่รู้จกั ภาษา L ด้วย
ดู Example 1-12 ใน Sec. 12.3 page 804-814
36
37
Language Recognition





ในหัวข้อที่แล้วเรารู ้วา่ FA สามารถนามาใช้ในการรู้จาภาษา (Language recognition)
ได้ แต่คาถามที่ตามมาคือ set ใดที่ FA รู้จาได้
นักคณิ ตศาสตร์ชื่อ Stephen Kleene เป็ นผูต้ อบคาถามนี้ได้ในปี 1956
FA จะรู ้จาภาษานั้นได้กต็ ่อเมื่อภาษานั้นถูกสร้างจาก null set, , และ อักขระแต่ละ
ตัว ด้วย concatenation, union, และ Kleene closure โดยไม่มีลาดับก่อนหลัง
เราเรี ยก set ที่ถกู สร้างขึ้นด้วยวิธีน้ ีวา่ Regular Set หรื อ Regular Expression ซึ่ งก็คือ
set ที่ถกู สร้างจาก Regular Grammar
แต่อย่างไรก็ตาม ยังมีบาง set ที่ไม่สามารถรู ้จาด้วย FA ได้ ซึ่ งเราจาเป็ นจะต้อง model
มันด้วยเครื่ องจักรแบบอื่น เช่น Pushdown Automata และ Turing Machine ซึ่ งจะ
กล่าวถึงในส่ วนท้ายของบทนี้
38
Regular Sets
Definition 1
Regular Expressions บน set I สามารถนิยามแบบเวียนเกิดได้โดย:
สัญญลักษณ์ Ø เป็ น regular expression;
สัญญลักษณ์ เป็ น regular expression;
สัญญลักษณ์ x เป็ น regular expression เมือ
่ x  I;
สัญญลักษณ์ (AB), (A  B), และ A* เป็ น Regular Expression
เมือ
่ A และ B เป็ น Regular Expression






Ø แสดงถึง empty set หรื อ set ที่ไม่มีอกั ขระ
แทน set {} หรื อ set ที่ประกอบไปด้วย empty string
x แทน set {x} ที่ประกอบไปด้วย อักขระเดี่ยว x
(AB) แสดงถึงการ concatenation ของ set A และ B
(A  B) แสดงถึงการ union ของ set A และ B
A* แสดงถึง Kleene Closure ของ set A
39
Example

String ที่สามารถนิยามได้ดว้ ย regular expression เหล่านี้ คืออะไร





10*
(10)*
0  01
0(0  1)*
(0*1)*
40
Example

จงหา Regular Expression ที่สามารถสร้าง set ต่อไปนี้ได้

Set ของ bit strings ที่มีความยาวเป็ นจานวนคู่
(00  01  10  11)*

Set ของ bit strings ที่จบด้วย 0 และไม่มี 11 อยูใ่ น bit strings
(0  10)*(0  10)

Set ของ bit strings ที่ประกอบไปด้วย 0 เป็ นจานวนคี่
1*01*(01*10*)*
41
Kleene’s Theorem


set จะเป็ น regular ก็ต่อเมื่อ มันถูกรู ้จาโดยออโตมาต้าสถานะจากัดได้
ดู proof ใน Sec. 12.4 page 819

, {}, {a}, AB, AB, A*

{}
{a}
42
43
Example

จงสร้าง nondeterministic finite-state
automaton ที่รู้จา regular set 1*01



สร้าง automaton ที่รู้จา 1*
สร้าง automaton ที่รู้จา 01
นามา union กัน
44
Regular sets and Regular
Grammars

Theorem 2



set จะถูกสร้างด้วย Regular Grammar ก็ต่อเมื่อ set นั้นเป็ น Regular Set
ดู proof ใน Sec. 12.4 page 823
Example

จงสร้าง nondeterministic finite-state automaton ที่รู้จาภาษาที่มาจาก Regular Grammar G =
(V, T, S, P) โดยที่ V = {0, 1, A, S}, T = {0, 1}, และมี Production P เป็ น S1A, S,
A0A, A1A, และ A1
 s0 แทน S, s1 แทน A, s2 แทน final state
45
Example

จงหา Regular Grammar จาก finite-state automaton ต่อไปนี้





G = (V, T, S, P)
V = {S, A, B, 0, 1}; S, A, B คือ s0, s1, s2 ตามลาดับ
T = {0, 1}
P: S0A, S1B, S1, S,
A0A, A1B, A1, B0A, B1B, B1
Regular Expression บน Unix หรื อบน Internet จะมีความซับซ้อนมากกว่านี้
46
FA: Unrecognizable Sets

ถึงแม้วา่ finite-state automaton จะสามารถรู้จาภาษาที่เป็ น regular ได้ แต่กย็ งั มีบาง
ภาษา หรื อ บาง set ที่ไม่เป็ น regular ซึ่ งไม่สามารถสร้าง FA มารองรับได้
ดังนั้นการแสดงว่าภาษาใดเป็ น regular หรื อไม่น้ นั จึงเป็ นเรื่ องสาคัญก

ดู Example 6 Sec. 12.4 หน้า 824


จงแสดงให้เห็นว่า {0n1n | n = 0, 1, 2, …} นั้นไม่เป็ น regular set
47

จาก pigeonhole principle เราสามารถสรุ ปได้วา่ 0n1n = 0n+11n ทาให้ set นี้ไม่เป็ น
regular set
48
More Powerful Types of
Machines


FA ไม่สามารถรองรับการคานวณในปริ มาณมากๆได้เนื่องจากว่ามันมีความจา
(memory) ที่จากัด ซึ่ งทาให้มนั ไม่สามารถรู ้จาภาษาที่ไม่เป็ น regular ได้
ดังนั้นเราจึงต้องใช้ model อื่นในการรองรับภาษาเหล่านี้ เช่น




Pushdown Automaton มีลกั ษณะเหมือน FA แต่จะเพิม่ Stack เข้ามาทาให้มีความจาไม่จากัด แต่จะ
มีขอ้ เสี ยคือไม่สามารถตรวจสอบได้ string ได้อย่างถูกต้อง อันเป็ นผลเนื่องมาจากการใช้ Stack
Linear Bounded Automata ดีกว่า Pushdown เพราะสามารถรู้จา context-free language ได้ดีกว่า
แต่กย็ งั มีขอ้ จากัดตรงที่ยงั ไม่สามารถรู้จาภาษา context-free ทั้งหมดที่สร้างจาก Phrase-structure
grammar ได้
Turing Machine ลบข้อจากัดของ LBA โดยการใช้เทปถูกคิดค้นโดย Alan Turing เป็ น model ที่
สามารถใช้แสดงการคานวณทั้งหมดที่เป็ นไปได้บนเครื่ องคอมพิวเตอร์
รายละเอียดดูหน้า 825 Sec. 12.4
49
Turing Machine


Machine Model ด้วย Finite-State Automata ที่เราได้ทาการศึกษาผ่านมา
นั้น ไม่สามารถจะนามาใช้กบั Model ทัว่ ๆไปของการคานวนได้ เนื่องจาก
ไม่มีส่วนของ Memory ในการจดจา ดังนั้นในการทางานที่ซบั ซ้อนของ
เครื่ องคอมพิวเตอร์จาเป็ นที่จะต้องหา Model ของ Machine อันใหม่
ได้แก่ Turing Machine ประดิษฐ์คิดค้นโดย Alan Turing ในช่วงทศวรรษ
1930s
50
Turing Machine






โดยหลักการแล้ว Turing Machine (TM) จะประกอบไปด้วย Control Unit และ Tape
ในแต่ละ Step ของการทางาน TM จะอยูใ่ น State ใด State หนึ่งในหลายๆ State ที่มี
อยูจ่ ากัด
ในส่ วนของ Tape จะแบ่งออกเป็ น Block หรื อ Cell โดยสมมุติวา่ ความยาวของ Tape
มีไม่จากัดทั้งสองทิศทาง
เมื่อส่ วนของ Control Unit ทาการเคลื่อนที่ไปบนเทป โดยจะเคลื่อนทีละ 1 Cell และ
จะมีการอ่านและเขียนลงบนเทปดังกล่าว
เมื่อ Control Unit ทาการอ่านค่าใน Block ของเทป มันจะทาการเปลี่ยน State ขึ้นอยู่
กับว่าค่าที่อ่านเป็ นสัญกญกลักษณ์อะไร
ลักษณะของ Turing Machine ที่กล่าวมา สามารถนามาใช้เป็ น Model ของ Computer
ทัว่ ไปได้ดีที่สุด และสามารถทาอะไรก็ได้ที่คอมพิวเตอร์ ทาได้
51
52
State
sx
Control Unit
Read/Write Head
….
B
B
1
1
0
1
B
0
1
B
B
….
Tape จะขยายไปทั้งสองทิศทางไม่จากัดความยาว
แต่จะมี Cell ที่เปน Nonblank ที่นับจานวนได้
53
54
State
s0
….
B
B
0
Initial Position
1
0
1
1
0
B
B
B
….
55
State
s0
….
B
B
0
(s0 ,0, s0 ,0, R)
1
0
1
1
0
B
B
B
….
56
State
s0
….
B
B
0
1
(s0 ,1, s1 ,1, R)
0
1
1
0
B
B
B
….
57
State
s1
….
B
B
0
1
0
(s1 ,0, s0 ,0, R)
1
1
0
B
B
B
….
58
State
s0
….
B
B
0
1
0
1
(s0 ,1, s1 ,1, R)
1
0
B
B
B
….
59
State
s1
….
B
B
0
1
0
1
1
(s1 ,1, s2 ,0, L)
0
B
B
B
….
60
State
s2
….
B
B
0
1
0
1
(s2 ,1, s3 ,0, R)
0
0
B
B
B
….
61
State
s3
….
B
B
0
1
0
0
0
(s3 ,0,...) ไม่ได้กาหนด = Halt
0
B
B
B
….
62
Using Turing Machines to
Recognize Sets
63
64
Computing Function with
Turing Machines
65


ในการนา Turing Machine มาคานวณ Function จาก Set ของ k -Tuples
ของ Nonnegative Integer ไปยัง Set ของ Nonnegative Integer ซึ่ง Function
ดังกล่าว เราเรี ยก Number-Theoretic Function เราจาต้องหาทางที่จะ
แสดง k -Tuples ของ Integer ลงบนเทป
ในการนี้ เราใช้ Unary Representation ของเลข Integer โดยแสดง
Nonnegative Integer ด้วย String ของ ‘1’
66
Unary Representation
67
68
Different Types of Turing
Machines




จะเห็นได้วา่ การนา Turing Machine มาใช้แม้ในการคานวณอย่างง่ายๆ จะมีความ
สลับซับซ้อนและความยุง่ ยากในการสร้างเครื่ องจักรดังกล่าว
เช่นในการคูณกันของสอง Nonnegative Integer จะต้องใช้ถึง 31 5-Tuple และ
ประกอบด้วย 11 State ในการสร้าง Machine
วิธีหนึ่งในการแก้ปัญกหาก็คือดัดแปลง Turing Machine ดั้งเดิมให้มีได้หลายเทป
หรื อดัดแปลงเทปให้มีลกั ษณะเป็ นสองมิติ และตัว Control สามารถเคลื่อนได้
มากกว่าสองแบบ ซึ่ งจะทาให้การทางานบางอย่างง่ายขึ้น อย่างไรก็ตาม ไม่วา่ เรา
จะดัดแปลงอย่างไร เครื่ องจักรใหม่ที่ได้ไม่ได้มีความสามารถในการคานวนมาก
กว่าเดิมเลย
และเราสามารถแสดงให้เห็นได้วา่ ไม่วา่ เราจะดัดแปลง Turing Machine อย่างไร
เราสามารถใช้ Turing Machine ที่มีแค่หนึ่งเทปทางานได้เหมือนกัน กล่าวคือ
ความสามารถในการคานวนไม่ได้เพิม่ ขึ้นหรื อลดลงแต่อย่างใด
69


Function ที่สามารถคานวนโดยใช้ Turing Machine นั้นเราเรี ยกว่า Computable แต่มี
Function บางจาพวกที่ไม่เป็ น Computable
เช่น Function ที่เรี ยกว่า Busy Beaver Function ซึ่ งเป็ น Noncomputable Function
เนื่องจากขนาดของ Function จะเติบโตได้เร็ วกว่าการทางานของ Turing Machine ที่
จะเขียนได้ทนั รายละเอียดมากกว่านี้จะไม่กล่าวถึง
70


นอกเหนือไปจากนี้ Church-Turing Thesis ซึ่ งกล่าวว่า ไม่วา่ เราจะกาหนดปัญกหา
ใดๆขึ้นมาก็ตาม ซึ่ งปั ญกหานั้นสามารถหา Algorithm มาแก้ได้ เราจะสามารถหา
Turing Machine มาแก้ไขปั ญกหานั้นได้เช่นเดียวกัน สังเกตว่าเราไม่ใช้คาว่า ‘Theorem’
แต่ใช้คาว่า ‘Thesis’ แทน เนื่องจาก Concept ของคาว่า “สามารถแก้ปัญกหาได้” หรื อ
Solvability ของ Algorithm นั้น เป็ นคาที่ปราศจากหลักเกณฑ์ และกากวม ในมุมมอง
ทางคณิ ตศาสตร์ ต่างกับคา Solvability ของ Turing Machine อย่างไรก็ตาม จะเห็นได้
ว่าแนวความคิดของ Turing Machine นั้น ได้มีมาก่อนการคิดค้น Computer ที่ใช้ใน
ปัจจุบนั
ดูรายละเอียดเพิ่มเติมใน Sec. 12.5 page 827 - 837
71
Homework 12

12.1.19, 12.1.28, 12.1.33, 12.1.34, 12.1.36, 12.2.1, 12.2.4, 12.2.20,
12.2.25, 12.3.1, 12.3.8, 12.3.16, 12.3.22, 12.3.36, 12.3.43, 12.3.48,
12.4.1, 12.4.3, 12.4.13, 12.4.14, 12.4.16, 12.5.2, 12.5.4, 12.5.7,
12.5.11
72