การสมมูลกันของออโตมาตาจำกัด
ขณะนี้ เรารู้จักออโตมาตาจำกัดทั้งสามชนิดแล้วคือ ออโตมาตาจำกัดเชิงกำหนด ออโตมาตาจำกัดเชิงไม่กำหนด
และออโตมาตาจำกัดเชิงไม่กำหนดที่มีการย้าย- เราต้องการทราบว่า ออโตมาตาทั้งสามแบบ
มีความสามารถในการยอมรับภาษาต่างกันหรือไม่ โดยพิจารณาการสมมูลกันของออโตมาตาทั้งสามแบบ
บทนิยาม ให้ M และ M' เป็นออโตมาตาจำกัดสองเครื่องใด ๆ เรากล่าวว่า
M สมมูล (equivalent) กับ M' ก็ต่อเมื่อ L(M) = L(M')
ต่อไปเราจะแสดงว่าความสามารถในการยอมรับภาษาของเครื่องออโตมาตาทั้งสามแบบเหมือนกัน
ทฤษฎีบทการสมมูลกันของออโตมาตาจำกัดเชิงกำหนดกับออโตมาตาจำกัดเชิงไม่กำหนด
- สำหรับออโตมาตาจำกัดเชิงกำหนด M เราสามารถสร้างออโตมาตาจำกัดเชิงไม่กำหนด M' ที่สมมูลกับ M ได้
- สำหรับออโตมาตาจำกัดเชิงไม่กำหนด M' เราสามารถสร้างออโตมาตาจำกัดเชิงกำหนด M ที่สมมูลกับ M' ได้
พิสูจน์
- กำหนดให้ M = (Q,
,
, q0, F) เป็นออโตมาตาจำกัดเชิงกำหนดเครื่องหนึ่ง
เราสร้างออโตมาตาจำกัดเชิงไม่กำหนดให้เหมือนกับ M โดยเปลี่ยนนิยาม เป็น
' ใหม่ดังนี้
สร้าง M' = (Q, , ',
q0, F) และ ': Q ×
2Q โดยที่
- สำหรับแต่ละ q
Q, a
, '(q, a) =
{ (q, a)}
เราจะแสดงได้ง่ายว่า L(M) = L(M')
- กำหนดให้ M' = (Q,
,
', q0, F') เป็นออโตมาตาจำกัดเชิงไม่กำหนดเครื่องหนึ่ง
เราสร้างออโตมาตาจำกัดเชิงกำหนด โดยนิยามสถานะใหม่ให้เป็นเซตของสถานะแทนที่จะเป็นสถานะเดี่ยวดังนี้
สร้าง M = (2Q, , ,
{q0}, F) และ : 2Q ×
2Q โดยที่
- 2Q หมายถึงเซตของทุกสับเซตทั้งหมดที่เป็นไปได้ของ Q นั่นคือ 2Q = { A | A
Q }
- F = { A | A
Q และ A
F' }
- สำหรับแต่ละ S
2Q และ a
, ให้ (S, a) =
'(q, a)
เราจะแสดงว่า L(M') = L(M) โดยแสดงว่า L(M') L(M) และ
L(M) L(M')
- ให้ w
L(M') จะได้ว่า
'(q0, w)
F'
- ถ้า w =
จะได้ว่า q0
F' หมายความว่า {q0} 2Q และ {q0}
F'
โดยนิยามการเป็นสมาชิกของเซต F เราได้ว่า {q0} F
กล่าวคือ w = L(M)
- ถ้า w
จะได้
w = a1...an โดยที่ ai
เนื่องจาก w L(M')
จะมีสถานะ q1, ..., qn Q โดยที่ qn
F' และ (q0, a1a2...an )
(q1, a2...an )
...
(qn, )
จะได้ว่า q1
'(q0, a1) แทนด้วย A1,
q2
'(q1, a2) แทนด้วย A2
... qn
'(qn-1, an) แทนด้วย An ซึ่งเป็นสับเซตของ Q
เราพบว่าสถานะร่วมระหว่าง F' กับ An คือ qn ดังนั้น An
F จากนิยามของ ที่ขยายมาจาก
สำหรับ A1, ..., An
({q0}, a1) =
'(q0, a1) = A1
(A1, a2) = A2
... (An-1, an) = An
สรุปได้ว่า ({q0}, w) = ({q0}, a1a2...an)
(An, )
จะได้ว่า M ยอมรับ w นั่นคือ L(M') L(M)
- ให้ w
L(M)
- ถ้า w =
จะได้ว่า
({q0}, w) ({q0},
) จะได้ว่า {q0}
F จากนิยาม {q0} F'
เราต้องได้ว่า q0
F' สรุปได้ว่า w =
L(M')
- ถ้า w
จะได้
w = a1...an โดยที่ ai
เนื่องจาก w L(M)
จะมีสถานะ A1, ..., An 2Q โดยที่ An
F และ ({q0}, a1a2...an )
(A1, a2...an )
...
(An, )
นั่นคือ An Q และ An
F'
เราสามารถเลือกสถานะ q1 A1, ... , qn
An ได้ที่ทำให้การแปลงสุดท้ายได้ qn
F'
สรุปได้ว่า (q0, w) = (q0, a1a2...an)
(qn, ) โดยที่
qn F'
จะได้ว่า M' ยอมรับ w นั่นคือ L(M) L(M')
เราได้ว่ากลุ่มของภาษาที่ยอมรับโดยออโตมาตาจำกัดเชิงกำหนด กับกลุ่มของภาษาออโตมาตาจำกัดเชิงไม่กำหนดเป็นกลุ่มเดียวกัน
ตัวอย่างที่ 1 กำหนด M' = (Q', ,
, q0, F') โดยที่ Q' = {q0, q1},
= {0, 1} และ F' = {q1} เป็นออโตมาตาจำกัดเชิงไม่กำหนดเครื่องหนึ่ง
ที่มีฟังก์ชันการผ่าน นิยามดังนี้
 |
0 |
1 |
q0 |
{q0, q1} |
{q1} |
q1 |
 |
{q0, q1} |
จงสร้างออโตมาตาจำกัดเชิงกำหนด M' ที่สมมูลกับ M โดยใช้วิธีการสร้างจากการพิสูจน์ของทฤษฎีบทการสมมูลกัน
ของออโตมาตาจำกัดเชิงกำหนดกับออโตมาตาจำกัดเชิงไม่กำหนด
ทฤษฎีบทการสมมูลกันของออโตมาตาจำกัดเชิงไม่กำหนดกับออโตมาตาจำกัดเชิงไม่กำหนดที่มีการย้าย-
- สำหรับออโตมาตาจำกัดเชิงไม่กำหนด M เราสามารถสร้าง
ออโตมาตาจำกัดเชิงไม่กำหนดที่มีการย้าย-
M' ที่สมมูลกับ M ได้
- สำหรับออโตมาตาจำกัดเชิงไม่กำหนดที่มีการย้าย-
M'
เราสามารถสร้างออโตมาตาจำกัดเชิงไม่กำหนด M ที่สมมูลกับ M' ได้
พิสูจน์
- กำหนดให้ M = (Q,
,
, q0, F) เป็นออโตมาตาจำกัดเชิงไม่กำหนดเครื่องหนึ่ง
เราสร้างออโตมาตาจำกัดเชิงไม่กำหนดที่มีการย้าย- ให้เหมือนกับ M โดยเปลี่ยนนิยาม
เป็น ' ใหม่ดังนี้
สร้าง M' = (Q, , ',
q0, F) และ ': Q × (
{ })
2Q โดยที่
- สำหรับแต่ละ q
Q, a
, '(q, a) =
(q, a)
และ '(q, ) = {q}
เราจะแสดงได้ง่ายว่า L(M) = L(M') และแผนภาพการผ่านของทั้งสองเครื่องจะเหมือนกัน
- กำหนดให้ M' = (Q',
, ',
q0, F') เป็นออโตมาตาจำกัดเชิงไม่กำหนดที่มีการย้าย- เครื่องหนึ่ง
เราสร้างออโตมาตาจำกัดเชิงไม่กำหนดที่ไม่มีการย้าย
พิจารณาว่า q0 ควรเป็นสถานะยอมรับหรือไม่ และกำจัดอาร์กที่มี
กำกับอยู่โดยการเขียนอาร์กใหม่ดังนี้
M = (Q', , ,
q0, F) โดยที่
- ถ้า
-CL(q0)
F'
แล้ว ให้ F = F' {q0}
- ถ้า
-CL(q0) F'
= แล้ว ให้ F = F'
- และสำหรับแต่ละ p
Q', a
, S = -CL(p),
ให้ (p, a) =
'(q, a)
เราจะแสดงว่า L(M') = L(M) โดยจะใช้แสดงว่า
- ทุก w
*,
ถ้า w แล้ว
(q0, w) =
'(q0, w)
- ทุก w
*,
(q0, w) F
ก็ต่อเมื่อ
'(q0, w) F'
- ให้ w
*,
โดยที่ w จะใช้
อุปนัยเข้มบน | w |
มูลฐานของการอุปนัย | w | = 1ได้ว่า w = a
, (q0, a) =
'(q0, a) และ
'(q0, a) =
'(q0, a) จึงได้ว่า
(q0, a) =
(q0, a)
โดยพิจารณานิยามการขยายของ (q0, a) =
'(q0, a)
สมมติฐานของการอุปนัย สมมติว่า | w | > 1 และทุก x
* ที่ | x | < | w | ถ้า x
แล้ว (q0, x) =
'(q0, x)
ต้องการแสดงว่า (q0, w) =
'(q0, w)
จาก | w | > 1 เขียน w = xa โดยที่ | x | > 0 และ a
จากสมมติฐานของการอุปนัยได้
(q0, x) =
'(q0, x) = {p1, ..., pm}
พิจารณา (q0, w) =
(q0, xa) =
(p1, a)
... (pm, a)
= '(p1, a)
... '(pm, a)
= '(q0, xa) =
'(q0, w)
- ให้ w
*,
สมมติว่า '(q0, w)
F'
- ถ้า w =
จะได้ว่า
'(q0, w) = '(q0,
) = {q0} จึงได้ q0
F' ซึ่งจากนิยามของ F' เราอาจได้ q0 F
หรือ q0 -CL(q0)
F นำไปสู่ข้อสรุป
(q0, w) F
สมมติว่า w
จะได้ w = xa สำหรับบาง x *
และ a และ
'(q0, w) = (q0, w)
รวมกับสมมติฐานข้างต้นได้ว่า
(q0, w)
F'

F' = F {q0}
จะพิสูจน์โดยการขัดแย้ง ต้องการ (q0, w)
F
สมมติว่าไม่จริงนั่นคือ
(q0, w)
F =
เราได้ว่า q0 ไม่อยู่ใน F และ q0 อยู่ใน (q0, w)
ดังนั้น -CL(q0) F
จะมี p
-CL(q0)
F และจาก w = xa
q0 อยู่ใน (q0, w) จะได้ว่า p
-CL(S) เมื่อ S คือยูเนียนของ
(q, a) เมื่อ q เป็นสถานะที่ได้จาก q0 อ่าน x
p (q0, w)
F ซึ่งขัดแย้งกับที่สมมติว่า
(q0, w)
F =
ที่สมมติไว้ไม่จริง
ในทางกลับกัน สมมติว่า (q0, w)
F
ถ้า w = จะได้ว่า (q0, w)
= -CL(q0) และ
'(q0, w) = {q0}
จากนิยามของ F' จะได้ F' = F {q0} และ
'(q0, w) F'
สมมติว่า w
จะได้ '(q0, w) =
(q0, w)
และ F F' และ '(q0, w)
F'
เราได้ว่ากลุ่มของภาษาที่ยอมรับโดยออโตมาตาจำกัดเชิงไม่กำหนดที่มีการย้าย-
กับกลุ่มของภาษาออโตมาตาจำกัดเชิงไม่กำหนดเป็นกลุ่มเดียวกัน
ตัวอย่างที่ 2 กำหนด M = (Q, ,
, q0, F) เป็น
ออโตมาตาจำกัดเชิงไม่กำหนดที่มีการย้าย- ที่มีแผนภาพการผ่านดังรูป
จงสร้างออโตมาตาจำกัดเชิงไม่กำหนด M' ที่สมมูลกับ M โดยใช้วิธีการสร้างจากการพิสูจน์ของทฤษฎีบทการสมมูลกัน
ของออโตมาตาจำกัดเชิงไม่กำหนดกับออโตมาตาจำกัดเชิงไม่กำหนดที่มีการย้าย-
ทฤษฎีบท สมบัติของภาษาปกติ
ถ้า R
1 และ S
2 เป็นภาษาปกติแล้ว
R S, RS, R*,
* - R, R S
เป็นภาษาปกติทั้งสิ้น
พิสูจน์ R S, RS, R*, เป็นภาษาปกติ (ชัดเจนจากนิยาม
ของภาษาปกติ)
- สำหรับ
* - R เราทำดังนี้
จาก R เป็นภาษาปกติจะมีออโตมาตาจำกัดเชิงกำหนด M = (Q, ,
, q0, F) ที่ยอมรับ R
สร้างออโตมาตาจำกัด M' = (Q, ,
, q0, F') ที่ยอมรับ
* - R โดยปรับสถานะยอมรับเป็นสถานะปฏิเสธและ
สถานะปฏิเสธเป็นสถานะยอมรับโดยที่ทุกสถานะต้องมีอาร์กที่มีสัญลักษณ์ใน ออกมาทุกตัว นั่นคือ F' = Q - F
เราจะได้ว่า L(M') = * - R นั่นคือ
* - R เป็นภาษาที่ยอมรับโดยออโตมาตาจำกัดเชิงกำหนด
เราเขียนแทน * - R ด้วยนิพจน์ปกติได้
- สำหรับ R
S ที่ R
* และ S
*, เราทำดังนี้
จาก R เป็นภาษาปกติจะมีออโตมาตาจำกัดเชิงกำหนด M1 = (Q1, ,
1, q(1)0, F1) ที่ยอมรับ R
จาก S เป็นภาษาปกติจะมีออโตมาตาจำกัดเชิงกำหนด M2 = (Q2, ,
2, q(2)0, F2) ที่ยอมรับ S
สร้างออโตมาตา M = (Q, , ,
q0, F) ที่ยอมรับ R S ได้ดังนี้
ให้ Q = Q1 × Q2, q0 = (q(1)0,
q(2)0), F = F1 × F2
สำหรับทุก (p, q) Q1 × Q2 และทุก a
,
((p,q), a) = ( 1(p,a),
2(q,a))
(หมายเหตุ ถ้า 1(p,a) ไม่มีค่าหรือ
2(q,a) ไม่มีค่าแล้ว
((p,q),a) ไม่มีค่าด้วย)
จะได้ว่า L(M) = R S นั่นคือ
R S เป็นภาษาที่ยอมรับโดยออโตมาตาจำกัดเชิงกำหนด ดังนั้น
เราเขียนแทน R S ด้วยนิพจน์ปกติได้
ตัวอย่างที่ 3 กำหนด R = L(0(10)*) และ S = L((01)*0)
จงเขียนนิพจน์ปกติของ
- R
S
- RS
- R*
|