จะพิสูจน์ได้อย่างไรว่า DFA จาก NFA สามารถมีจำนวนรัฐเป็นเลขชี้กำลัง


20

ออโต้ จำกัด ที่ไม่สามารถกำหนดได้ทั้งหมดสามารถเปลี่ยนเป็นออโต้ จำกัด อัน จำกัด ที่เทียบเท่าได้ อย่างไรก็ตามออโต้ จำกัด ที่กำหนดขึ้นได้นั้นอนุญาตให้ลูกศรเดียวต่อสัญลักษณ์ที่ชี้จากรัฐเท่านั้น ดังนั้นรัฐควรเป็นสมาชิกของชุดพลังแห่งรัฐของ NFA สิ่งนี้ดูเหมือนจะบ่งชี้ว่าจำนวนสถานะของ DFA สามารถปรับขยายชี้แจงในแง่ของจำนวนสถานะของ NFA อย่างไรก็ตามฉันสงสัยว่าจะพิสูจน์สิ่งนี้ได้อย่างไร


7
มันเป็นคำถามที่สมเหตุสมผลและการก่อสร้างไม่ชัดเจนอย่างสมบูรณ์ แต่มันอาจเป็นคำถามการบ้าน ดังนั้นจะเป็นประโยชน์ถ้าคุณได้ยินว่าทำไมคุณถึงอยากรู้

มีสิ่งปลูกสร้างบางอย่างที่นี่แต่ดูเหมือนว่ามันควรจะอยู่ในกระดาษบางแห่ง ไม่ทราบการอ้างอิง ปิดหัวฉันคิดว่ามีการก่อสร้างเช่นนั้น NFA นับเป็นเลขฐานสองในสถานะที่ใช้งานอยู่และยอมรับเฉพาะหลังจากการเปลี่ยนประมาณ ... 2n
vzn

คำตอบ:


15

การดำเนินการหนึ่งที่แปลง NFA ไปเป็น NFA อื่น แต่ไม่ได้ทำเช่นนั้นสำหรับ DFA คือการกลับรายการ (ชี้ที่ลูกศรทั้งหมดในทางกลับกันและสลับสถานะเริ่มต้นด้วยการยอมรับสถานะ) ภาษาที่ได้รับการยอมรับโดยหุ่นยนต์แปลงร่างเป็นภาษาตรงกันข้าม\}LR={un1u0u0un1L}

ดังนั้นแนวคิดหนึ่งคือมองหาภาษาที่มีโครงสร้างแบบอสมมาตร ในอนาคตข้างหน้าภาษานี้ควรได้รับการยอมรับโดยการตรวจสอบสัญลักษณ์แรกซึ่งต้องการเพียงแค่สถานะเท่านั้น การย้อนกลับควรมีความจำเป็นในการเก็บความทรงจำของรัฐล่าสุดซึ่งต้องใช้สถานะโดยที่คือขนาดตัวอักษรn + O ( 1 ) n A n + O ( 1 ) Ann+O(1)nAn+O(1)A

เรากำลังมองหาภาษาของรูปแบบโดยที่ประกอบด้วยคำที่มีความยาวและเป็นชุดย่อยของตัวอักษรที่ไม่เกี่ยวกับตัวอักษรและไม่มีข้อ จำกัด ใด ๆ เพิ่มเติม เราอาจเลือกตัวอักษรที่ง่ายที่สุด (ตัวอักษรเดี่ยวจะไม่ทำคุณจะไม่ได้รับ NFA ที่เล็กลง) และ . ขี้ปะติ๋วหมายถึง\} สำหรับเราต้องการให้มันไม่สัมพันธ์กับ (ดังนั้น DFA สำหรับภาษาที่ตรงกันข้ามจะต้องเก็บหน่วยความจำของ ):M n n S M A = { a , b } M = A S S = { a } M nMnSMMnnSMA={a,b}M=ASS={a}MnS M n = nSSMn=An n

จึงช่วยให้ * มันเป็นที่รู้จักโดย DFA ง่าย ๆ ที่มีฯ n + 2Ln=(a|b)na(a|b)n+2

DFA

การย้อนกลับของอัตราผลตอบแทนถัวมัน NFA ที่ตระหนักถึง nLnR=(a|b)a(a|b)n

NFA

น้อยที่สุด DFAที่ตระหนักถึง มีอย่างน้อยรัฐ นี่เป็นเพราะคำทั้งหมดที่มีความยาวจะต้องไปถึงสถานะที่ต่างกันใน DFA (กล่าวอีกนัยหนึ่งพวกเขาอยู่ในชั้นเรียนเทียบเท่าของ Myhill-Nerode ) เพื่อพิสูจน์สิ่งนี้ใช้คำสองคำที่แตกต่างกันและให้เป็นตำแหน่งที่พวกเขาแตกต่างกัน ( ) โดยไม่สูญเสียของทั่วไปสมมติและb จากนั้นและ (เป็นส่วนขยายที่โดดเด่นสำหรับ 2 n + 1 2 n + 1 u , v A n + 1 k u kv k u k = a v k = b u b kL R n v b kL R n b k u v u v kLnR2n+12n+1u,vAn+1kukvkuk=avk=bubkLnRvbkLnRbkuและ ) ถ้าและนำไปสู่สถานะเดียวกันใน DFA ที่รู้จักดังนั้นและจะเป็นไปไม่ได้เนื่องจากเป็นไปไม่ได้เนื่องจากจะนำไปสู่สถานะที่ยอมรับและอีกอันหนึ่งไม่ได้vuv u b k v b bLnRubkvbk

รับทราบ: ตัวอย่างนี้ถูกอ้างถึงในWikipediaโดยไม่มีคำอธิบาย บทความให้การอ้างอิงถึงบทความที่ฉันไม่ได้อ่านซึ่งให้ขอบเขตที่เข้มงวดยิ่งขึ้น:
Leiss, Ernst (1981), "การบรรยายสั้น ๆ ของภาษาปกติโดย Boolean ออโตมาตะ", วิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี 13 (3): 323–330, ดอย: 10.1016 / S0304-3975 (81) 80005-9


คำตอบเชิงตรรกะ: สถานะใน DFA ใช้เป็นหน่วยความจำ (เพื่อเก็บข้อมูลบางอย่างเช่นสวิตช์เปิดปิดพัดลม) ดังนั้นสิ่งที่สามารถแสดงในสถานะเดี่ยวใน DFA สามารถแสดงโดยใช้การรวมกันของรัฐใน NFA ที่เทียบเท่ากัน นั่นคือเหตุผลที่ NFA มีสถานะน้อยกว่าเมื่อเทียบกับ DFA ที่เทียบเท่า ทีนี้ถ้าคุณมี state อยู่ในเซตแล้วเซตของการรวมกันที่เป็นไปได้ทั้งหมดของคือ power-setนั่นคือ , ดังนั้นถ้าเรากลับ NFA ของ state ไปเป็น DFA ที่เท่ากัน DFA จะประกอบด้วยมากที่สุด ระบุ - มันสมเหตุสมผลไหม Q Q 2 n n 2 nnQQ2nn2n
Grijesh Chauhan

1
@GrijeshChauhan นี่ไม่ใช่คำถามที่ถาม ใช่มันเป็นเรื่องง่ายที่จะเห็นว่าสำหรับ NFA กับทุกรัฐมี DFA กับที่มากที่สุดรัฐ แต่ที่นี่เราต้องการเห็นว่าถึงขอบเขตแล้วนั่นคือสำหรับใด ๆมี state NFA เช่นนั้น DFA ที่เล็กที่สุดที่เทียบเท่ากันมีสถานะอย่างน้อย (หรือใกล้กับที่นี่ฉันพิสูจน์ขอบเขต ) 2 n n n 2 n 2 n - 1n2nnn 2n2n1
Gilles 'หยุดความชั่วร้าย'

อืม ... หลังจากอ่านคำตอบของคุณสองครั้งและจากความคิดเห็น"แต่ที่นี่เราต้องการเห็นว่าถึงขอบเขตแล้ว"ตอนนี้ฉันเข้าใจแล้ว ขอบคุณ
Grijesh Chauhan

8

พิจารณาตระกูลภาษาต่อไปนี้: Ln={x1,x2,,xk#xk+1:i{1,,k} with xi=xk+1}

ตัวอักษรของเป็น{ # , 1 , ... , n }Ln{#,1,,n}

มี NFA กับเป็นรัฐที่ตระหนักถึงภาษาL n มันมีnสำเนา ในสำเนาที่iเราเดาว่าอักษรตัวสุดท้ายจะเป็นiและตรวจสอบการเดาของเรา มันง่ายที่จะสร้างสำเนาที่มี3สถานะ มีเพียงการตัดสินใจในระดับเริ่มต้นเท่านั้นO(n)Lnnii3

อย่างไรก็ตามไม่มี DFA ที่ตระหนักถึงที่มีน้อยกว่า2 O ( n )รัฐเพราะสังหรณ์ใจเป็น DFA ต้องจำย่อยของ{ 1 , ... , n }Ln2O(n){1,,n}

ฉันค่อนข้างมั่นใจว่าหนังสือของ Sipser มีตัวอย่างนี้


การก่อสร้างในหนังสือของไซเปอร์สร้าง DFA โดยมีสถานะเป็น 2 ^ n แน่นอน หาก NFA มีสถานะชุด Q ดังนั้นชุดสถานะของ DFA คือ Pow (Q) เพื่อจำลองสถานะ 'ขนาน' ทั้งหมดที่เป็นไปได้ที่การโยกย้าย NFA เป็นไปได้ (แก้ไขเพื่อเพิ่มความคิดเห็นในขอบเขตคำถาม) ระบุว่า การก่อสร้างที่ใช้สำหรับข้อความมาตรฐานแสดงให้เห็นอย่างชัดเจนถึงความเป็นไปได้ของการระบุเลขชี้กำลังมันดูเหมือนว่าสำหรับฉันแล้วนี่ไม่ใช่ระดับการวิจัย อาจเหมาะสมสำหรับการร้องขอการอ้างอิงแม้ว่า
Logan Mayfield

8

อีกตัวอย่างหนึ่งคือภาษาของทุกคำที่พลาดสัญลักษณ์หนึ่งตัวอักษร หากตัวอักษรมีขนาดดังนั้น NFA สามารถ "เดา" สถานะเริ่มต้นและยอมรับภาษาที่มีnสหรัฐฯ บนมืออื่น ๆ โดยใช้ทฤษฎีบท Nerode ของมันเป็นเรื่องง่ายที่จะเห็นว่าขนาดของ DFA น้อยที่สุดสำหรับภาษานี้เป็น2 nnn2n

ตัวอย่างนี้ยังแสดงให้เห็นว่า NFAs อาจมีการระเบิดแบบเอ็กซ์โปเนนเชียลภายใต้การเสริม แท้จริงแล้วมันเป็นที่รู้จักกันว่า NFA ใด ๆ (หรือแม้แต่ไวยากรณ์ที่ไม่มีบริบท) สำหรับภาษาของคำทั้งหมดที่มีสัญลักษณ์ทั้งหมดของตัวอักษรจะต้องมีจำนวนของรัฐที่ชี้แจง


1
ในกรณีที่คนนอกจากฉันแรกตีความมัน "คำที่พลาดหนึ่งสัญลักษณ์ของตัวอักษร" หมายถึง * (ไม่ใช่: คำที่มีตัวอักษรทุกตัวยกเว้นตัวเดียวหรือคำที่เรียงตัวอักษรตามลำดับและข้ามไปหนึ่งตัว)σΣ(Σσ)
6005

มันเป็นตัวอย่างที่แปลกเพราะขนาดของไม่คงที่สำหรับครอบครัวของตัวอย่าง หากเราถือว่าตัวอักษรไบนารีคงที่เราสามารถปรับตัวอย่างโดยการเข้ารหัสตัวอักษรnในรูปแบบไบนารี แต่ผลลัพธ์จะแตกต่างกันเล็กน้อย สมมติว่าผมไม่ได้ทำผิดพลาดในกรณีที่เราจะได้รับ NFA ขนาดO ( n 2 )และเอฟเอจะต้องมีขนาดอย่างน้อย2 n 2 n ΣnO(n2)2n2n
6005

จุดเช่นนี้ก็คือว่าระเบิดตรงว่าการก่อสร้างอำนาจตั้ง มีตัวอย่างไบนารีที่มีการระเบิดเหมือนกัน แต่มีความซับซ้อนมากขึ้น
Yuval Filmus

ใช่มันเป็นตัวอย่างที่ดี
6005

1
O(nlogn)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.