ภาษาปกติที่ให้ไว้มีชุดย่อยที่ไม่มีคำนำหน้าไม่มีที่สิ้นสุดหรือไม่?


11

ชุดของคำบนตัวอักษรที่ จำกัด ไม่มีคำนำหน้าหากไม่มีสองคำที่แตกต่างกันโดยที่คำหนึ่งเป็นคำนำหน้าของอีกคำหนึ่ง

คำถามคือ:

ความซับซ้อนของการตรวจสอบว่าภาษาปกติให้เป็น NFA มีส่วนย่อยที่ไม่มีคำนำหน้าไม่มีที่สิ้นสุด?

คำตอบ (เนื่องจาก Mikhail Rudoy ด้านล่าง) : สามารถทำได้ในเวลาพหุนามและฉันคิดว่าแม้ใน NL

การถอดความคำตอบของมิคาอิลให้(Σ,q0,F,δ)เป็นอินพุต NFA ในรูปแบบปกติ (ไม่มีการเปลี่ยนเอปไซลอนตัดแต่ง) และปล่อยให้L[p,r] (resp. L[p,R] ) ภาษาที่ได้จากการมีสถานะpเป็นสถานะเริ่มต้นและ{r}เป็นสถานะสุดท้าย (resp. state pเป็น inital และ set Rเป็นขั้นสุดท้าย) สำหรับคำที่uให้uωเป็นคำที่ไม่มีที่สิ้นสุดได้รับโดย iterating ยูu

สิ่งต่อไปนี้เทียบเท่า:

  1. ภาษาL[q0,F]มีชุดย่อยที่ไม่มีคำนำหน้าไม่มีที่สิ้นสุด
  2. qQ ,uL[q,q]{ε} vL[q,F]เพื่อให้vไม่ได้เป็นคำนำหน้าของuω ω
  3. qQ L[q,q]{ε} uL[q,q] vL[q,F]เพื่อให้vไม่ได้เป็นคำนำหน้าของuωโอห์ม

พิสูจน์:

3 2 เล็กน้อย

สำหรับ 2 1 ก็พอเพียงที่จะเห็นว่าสำหรับการใด ๆwL[q0,q]เรามีw(u|v|)vเป็นเซตคำนำหน้าฟรีไม่มีที่สิ้นสุดของL[q0,F] ]

ในที่สุด 1 3 เป็นข้อพิสูจน์ "ความถูกต้อง" ในคำตอบของมิคาอิล

คำตอบ:


7

ปัญหาของคุณสามารถแก้ไขได้ในเวลาพหุนาม

ในการเริ่มต้นให้แปลง NFA ที่กำหนดเป็น NFA ที่เทียบเท่าด้วยคุณสมบัติเพิ่มเติมต่อไปนี้:

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

รูทีนย่อยที่เป็นประโยชน์

สมมติว่าเรามี NFA Nรัฐqและสตริงว่างssรูทีนย่อยต่อไปนี้จะให้เราประเมินค่าความจริงของข้อความสั่งต่อไปนี้: "ทุกพา ธ ในNจาก state qไปยังสถานะ accept ยอมรับกับสตริงที่เป็นคำนำหน้าของสตริงsnสำหรับบางn " นอกจากนี้รูทีนย่อยนี้จะทำงานในเวลาพหุนาม

S|s|+1snn|s|sssssNNqNซึ่งภาษาคือโดยใช้การก่อสร้างทางแยก NFA มาตรฐาน โปรดทราบว่าการก่อสร้างเหล่านี้ทั้งหมดเป็นพหุนามในขนาดของอินพุตL(N)L(S)L(N)

จากนั้นทดสอบว่าภาษาของว่างเปล่าหรือไม่ (ซึ่งสามารถทำได้ในเวลาพหุนามด้วยการค้นหากราฟอย่างง่าย) ถ้าหากว่าหรือในคำอื่น ๆ สตริงในทุกไม่ได้อยู่ใน(S) ในคำอื่น ๆ ภาษาของเป็นที่ว่างเปล่าและถ้าหากยอมรับเฉพาะสตริงที่มีคำนำหน้าของสำหรับบางnสิ่งนี้สามารถนำมาใช้ใหม่ได้ตามคำสั่งที่เราพยายามประเมิน: "ทุก ๆ พา ธ ในจาก stateไปยัง state accept สอดคล้องกับสตริงที่เป็นคำนำหน้าของสตริงNL(N)=L(S)L(N)=L(N)L(S)NNsnnNqsn nสำหรับบาง ."n

อัลกอริทึมหลัก

พิจารณาชุดสถานะใน NFA ที่อยู่ในวงวน สำหรับแต่ละสถานะดังกล่าวให้ทำดังต่อไปนี้:q

ให้ใด ๆ ที่เรียบง่ายห่วงที่มีคิวLetเป็นสตริงที่สอดคล้องกับห่วงP_2เนื่องจาก NFA ไม่มีการเปลี่ยน epsilonจึงไม่ว่างเปล่า จากนั้นให้ใช้ย่อยไปยัง NFA รัฐและสตริงsหาก subroutine บอกเราว่าทุกเส้นทางเริ่มต้นที่ใน NFA และสิ้นสุดที่ยอมรับสอดคล้องรัฐคำนำหน้าของสำหรับบางแล้วดำเนินการต่อไปยังรัฐต่อไปQมิฉะนั้นเอาต์พุตที่ภาษาของ NFA ที่ระบุมีเซ็ตย่อยที่ไม่มีการเติมล่วงหน้าอย่างไม่มีที่สิ้นสุดP2qsP2sqsqsnnq

ถ้าเราลองทุกสถานะที่อยู่ในลูปและอัลกอริธึมไม่เคยส่งออกผลลัพธ์ที่ภาษาของ NFA ที่ระบุไม่ได้มีเซ็ตย่อยที่ไม่มีการเติมล่วงหน้าแบบไม่มีที่สิ้นสุดq

ความถูกต้อง (ครึ่งแรก)

ขั้นแรกสมมติว่าอัลกอริทึมด้านบนยืนยันว่าภาษาของ NFA ที่ระบุมีชุดย่อยที่ไม่มีการเติมล่วงหน้าอย่างไม่มีที่สิ้นสุด ขอบอกว่าการแสดงผลนี้ได้รับเลือกขณะที่การพิจารณาบางวงและบางรัฐQเมื่อก่อนเป็นสตริงที่สอดคล้องกับP_2จากนั้นเราทราบตามรูทีนย่อยที่ไม่ใช่ทุกพา ธ เริ่มต้นที่ใน NFA และสิ้นสุดที่สถานะการยอมรับซึ่งสอดคล้องกับคำนำหน้าของสำหรับบาง (เนื่องจากนี่เป็นเอาต์พุตเดียวของรูทีนย่อยที่จะนำไปสู่หลัก อัลกอริทึมแสดงผลที่ )P2qsP2qsnnq

ให้เป็นเส้นทางที่มีอยู่ถูกกล่าวหาโดย subroutine: เส้นทางจากไปสู่การยอมรับของรัฐดังกล่าวว่าสตริงที่สอดคล้องกันไม่ได้เป็นคำนำหน้าของสำหรับการใด ๆnP3qtsnn

ให้ประกอบด้วยสำเนาของโดยที่มีขนาดใหญ่พอที่. ตั้งแต่เป็นห่วงผ่าน ,สามารถจะถือว่าเป็นเส้นทางจากที่จะถามสตริงที่สอดคล้องกับคือP2mP2mm|s|>|t|P2qP2qqP2sm

ให้เป็นเส้นทางจากสถานะเริ่มต้นไปยัง (ซึ่งมีอยู่เนื่องจากทุกรัฐสามารถเข้าถึงได้จากจุดเริ่มต้น) และปล่อยให้เป็นสตริงที่สอดคล้องกับเส้นทางนี้P1qr

จากนั้นเส้นทางประกอบด้วย ,สำเนาของและเป็นเส้นทางการคำนวณการยอมรับ สตริงที่สอดคล้องกับเส้นทางนี้คือRดังนั้น NFA ยอมรับสตริงของรูปแบบทุกRนี่เป็นชุดสตริงที่ไม่ จำกัด ที่ยอมรับโดย NFA และฉันอ้างว่าชุดสตริงนี้ไม่มีคำนำหน้า โดยเฉพาะอย่างยิ่งสมมติว่าเป็นคำนำหน้าของกับx ในคำอื่น ๆเป็นคำนำหน้าที เนื่องจากมีความยาวนี่ก็หมายความว่าP1xP2P3r(sm)xtr(sm)xtr(sm)xtr(sm)yty>xt(sm)yxt(sm)yxm(yx)|s|m|s|>|t|t( s m ) y - x = s m ( y - x ) t s n n r ( s m ) x t r ( s m ) y tเป็นคำนำหน้า(YX)} แต่เราทราบโดยการส่งออกของ subroutine ที่ไม่ได้เป็นคำนำหน้าของสำหรับการใด ๆnดังนั้นไม่สามารถเป็นคำนำหน้าของและตามที่ต้องการชุดของสตริงจะไม่มีคำนำหน้า(sm)yx=sm(yx)tsnnr(sm)xtr(sm)yt

ดังนั้นฉันได้แสดงให้เห็นว่าหากอัลกอริทึมหลักแสดงผลว่าภาษาของ NFA ที่ระบุมีเซ็ตย่อยที่ไม่มีการเติมล่วงหน้าอย่างไม่มีที่สิ้นสุดในกรณีนี้เป็นจริง

ความถูกต้อง (ครึ่งหลัง)

ต่อไปฉันจะแสดงอีกครึ่งหนึ่ง: หากภาษาของ NFA ที่ระบุมีชุดย่อยที่ไม่มีการเติมล่วงหน้าอย่างไม่มีที่สิ้นสุดแล้วอัลกอริทึมหลักจะแสดงผลข้อเท็จจริงนี้

สมมติว่าภาษาของ NFA ที่ระบุมีชุดย่อยที่ไม่มีคำนำหน้าไม่มีที่สิ้นสุด ให้เป็นชุดของพา ธ การคำนวณ (ยอมรับ) ที่สอดคล้องกับสตริงเหล่านี้ ขอให้สังเกตว่าคือชุดการยอมรับเส้นทางการคำนวณที่ไม่มีที่สิ้นสุดซึ่งสตริงที่สอดคล้องกันจะไม่นำหน้ากันAA

สมมติว่าสถานะคือ "การวนซ้ำ" ใน NFA หากมีการวนซ้ำใน NFA ผ่านสถานะนั้นและ "ไม่วนซ้ำ" เป็นอย่างอื่น พิจารณาพา ธ ทั้งหมดจากสถานะเริ่มต้นไปยังสถานะลูปใด ๆ ที่ผ่านสถานะไม่วนซ้ำเท่านั้น (ยกเว้นสถานะลูปเดียวที่สิ้นสุด) ให้เป็นชุดของเส้นทางเหล่านี้ แต่ละเส้นทางไม่สามารถมีลูปได้ในขณะนั้นสถานะในลูปนั้นจะเป็นการวนลูปและจะผ่านสถานะลูป ดังนั้นความยาวของเส้นทางในถูกล้อมรอบด้วยจำนวนของรัฐใน NFA และดังนั้นมี จำกัด (ตัวอย่างเช่นถ้าสถานะเริ่มต้นเป็นรัฐวนรอบแล้วเส้นทางดังกล่าวเท่านั้นคือเส้นทางที่ว่างเปล่า)PpPpPP

เราสามารถแบ่งพาร์ติชันเข้าย่อยตามวิธีการที่เส้นทางการคำนวณในเริ่มต้น โดยเฉพาะอย่างยิ่งสำหรับให้เป็นชุดของการคำนวณเส้นทางทั้งหมดในที่เริ่มต้นด้วยเส้นทางและให้เป็นชุดของเส้นทางอื่น ๆ ทั้งหมดใน เห็นได้ชัดว่าทุกและมีเคล็ดและสหภาพของพวกเขาคือการตั้งค่าทั้งหมด นอกจากนี้มีเส้นทางเท่านั้นที่ไม่เคยผ่านรัฐวนรอบและดังนั้นจึงไม่วนซ้ำ; ดังนั้นจึงจำกัด เราสามารถสรุปได้ว่าบางA|P|+1พีP พีพีบีพีบีB B พีApPApApBAApBABBApจะต้องไม่มีที่สิ้นสุด (มิฉะนั้นจะเป็นสหภาพของชุด จำกัด จำนวนมาก)A

ตั้งแต่เป็นอนันต์มีเส้นทางการคำนวณหลายอย่างมากมายไม่มีที่มีสตริงคำนำหน้าของแต่ละอื่น ๆ ที่มีเส้นทางการยอมรับเริ่มต้นด้วยPขอให้ถูกรัฐถึงที่จุดสิ้นสุดของเส้นทางพีเราสามารถสรุปได้ว่ามีหลายเส้นทางที่ยอมรับไม่สิ้นสุดเรียกชุดนี้เริ่มต้นที่ซึ่งทั้งหมดสอดคล้องกับสตริงที่ไม่ได้นำหน้าซึ่งกันและกันAppqpAq

ในระหว่างขั้นตอนวิธีการหลักที่เราทำงานย่อยในรัฐและบางสตริงsรูทีนย่อยนี้บอกเราว่าเส้นทางการยอมรับทุกอันเริ่มต้นที่สอดคล้องกับสตริงที่เป็นส่วนนำหน้าของสำหรับบางหรือไม่ หากเป็นกรณีนี้เส้นทางที่ยอมรับจำนวนมากทั้งหมดในจะเป็นคำนำหน้าของสำหรับต่างๆซึ่งจะบ่งบอกว่าพวกเขาเป็นคำนำหน้าทั้งหมดของกันและกัน นี่ไม่ใช่กรณีดังนั้นเราจึงสรุปได้ว่าเมื่ออัลกอริทึมหลักรันรูทีนย่อยในสถานะqsqsnnAsnnqผลลัพธ์คือผลลัพธ์ที่เป็นไปได้อื่น ๆ อย่างไรก็ตามสิ่งนี้นำไปสู่อัลกอริทึมหลักในการแสดงผลว่าภาษาของ NFA มีส่วนย่อยที่ไม่มีคำนำหน้าไม่มีที่สิ้นสุด

นี่เป็นการพิสูจน์ถึงความถูกต้อง


ฉันไม่เข้าใจวิธีการทำงานของการจัดการลูปเนื่องจากสถานะกำหนดสามารถเป็นส่วนหนึ่งของลูปมากมาย (อธิบาย) แน่นอนว่าถ้ามีลูปสองตัวใด ๆ ที่สามารถใช้สร้างลำดับที่ไม่ใช่คาบได้เราก็จะเสร็จ q
japh

คุณหมายถึงอะไรโดยการจัดการลูป? ในอัลกอริทึมหลักสำหรับแต่ละสถานะคุณเลือกหนึ่งวงวนที่ผ่าน (วนใด ๆ จากวงเวียนหลายจุด) และเรียกวนรอบนั้น (afterwords คุณเรียกใช้รูทีนย่อยในสถานะและสตริงโดยที่คือสตริง เกี่ยวข้องกับ ) รูทีนย่อยจัดการการตรวจสอบว่าเป็นไปได้หรือไม่ที่จะสร้างลำดับที่ไม่เป็นระยะโดยใช้การวนซ้ำนั้น ถ้าใช่เราก็เสร็จแล้ว หากไม่มี (และยิ่งกว่านั้นไม่มีสำหรับทุก ๆ ) ดังนั้นภาษาทั้งหมดของคุณคือการเรียงลำดับตามช่วงเวลาดังนั้นเราจึงดำเนินการให้เสร็จสิ้น คิวP 2 Q s s P 2 QqqP2qssP2q
Mikhail Rudoy

เพื่อทำให้คำถามของฉันชัดเจนยิ่งขึ้นนี่เป็น NFA ง่ายๆที่มีสถานะเริ่มต้น , สถานะสุดท้ายและการเปลี่ยนสามช่วง: , ,T การวนซ้ำสำหรับจะไม่สร้างสตริงที่ไม่มีคำนำหน้า แต่การวนซ้ำสำหรับจะ T q a q q b q q a T a bqTqaqqbqqaTab
japh

ที่จริงห่วงสำหรับไม่สร้างคำนำหน้าชุดฟรี: ชุดของสตริงทั้งหมดใช้ห่วง ในขั้นตอนวิธีการของผมถ้าวงที่คุณเลือกสำหรับเป็นห่วงแล้วย่อยจะเป็นตัวกำหนดว่าไม่มีไม่ได้ทุกเส้นทางยอมรับเริ่มต้นที่มีสตริงของรูปแบบและเพื่อให้ขั้นตอนวิธีการหลักจะบอกว่าไม่มีที่สิ้นสุด มีชุดย่อยที่ไม่มีคำนำหน้า หากลูปที่อัลกอริธึมใช้สำหรับแทน loop รูทีนย่อยจะพิจารณาว่าไม่ใช่ทุกเส้นทางการยอมรับที่เริ่มต้นที่มีสตริงของฟอร์ม*Q Q * Q Q *aabaaqaqaqbqbและในกรณีนี้อัลกอริทึมก็มีเอาต์พุตเหมือนกัน
Mikhail Rudoy

ขอบคุณ Mikhail! ฉันคิดว่าคำตอบของคุณจะตั้งคำถาม
Googlo

2

คำนิยาม

คำจำกัดความ 1 : ให้เป็นชุดของคำ เรากล่าวว่าเป็นอย่างไม่มีที่สิ้นสุดคำนำหน้าฟรี (ขึ้นชื่อสำหรับวัตถุประสงค์ของคำตอบนี้) ถ้ามีคำและดังกล่าวว่า:SSU 0 , ... , U n , ... วี1 , ... , V n , ...u0,,un,v1,,vn,

  • สำหรับแต่ละ ,และไม่ว่างเปล่าและเริ่มต้นด้วยตัวอักษรที่แตกต่างกัน;n1unvn

  • S={u0v1,,u0unvn+1,}\}

สัญชาตญาณคือคุณสามารถใส่คำเหล่านั้นทั้งหมดลงบนต้นไม้ที่หยั่งรากไม่สิ้นสุด ( คือราก, เป็นใบและส่วนที่เหลือเป็นโหนดตกแต่งภายใน) ของรูปทรงดังต่อไปนี้ซึ่งคำในเป็นป้ายกำกับของเส้นทาง จากรากถึงใบไม้:S

   u₀    u₁    u₂
■-----•-----•-----•⋅⋅⋅
      |     |     |
      | v₁  | v₂  | v₃
      |     |     |
      ▲     ▲     ▲

ข้อเสนอที่ 1.1 : ชุดที่ไม่มีคำนำหน้าไม่มีที่สิ้นสุดไม่มีคำนำหน้า

หลักฐานของข้อเสนอ 1.1 : สมมติว่าเป็นคำนำหน้าอย่างเข้มงวดของ1} มีสองกรณี:u0unvn+1u0umvm+1

  • ถ้าแล้วเป็นคำนำหน้าของ1} สิ่งนี้เป็นไปไม่ได้เนื่องจากและมีตัวอักษรแรกที่แตกต่างกันn<mvn+1un+1umvm+1un+1vn+1

  • ถ้าแล้วเป็นคำนำหน้าของ1} สิ่งนี้เป็นไปไม่ได้เนื่องจากและมีตัวอักษรแรกที่แตกต่างกันn>mum+1unvn+1vm+1um+1vm+1

ข้อเสนอที่ 1.2 : ชุดคำนำหน้าฟรีที่ไม่มีที่สิ้นสุดไม่มีที่สิ้นสุด

หลักฐานการเสนอ 1.2 : ในข้อ 1.1 เราพบว่าหากดังนั้นและไม่สามารถเทียบเคียงได้กับคำนำหน้า พวกเขาจึงไม่เท่ากันnmu0unvn+1u0umvm+1


หลักฐานหลัก

ข้อเสนอที่ 2 : ชุดคำนำหน้าฟรีที่ไม่มีที่สิ้นสุดใด ๆ มีชุดคำนำหน้าฟรีที่ดีไม่มีที่สิ้นสุด

ข้อเสนอที่ 3 : ภาษาที่มีชุดคำนำหน้าฟรีที่ไม่มีที่สิ้นสุดถ้าหากมันมีชุดคำนำหน้าฟรีที่ไม่มีที่สิ้นสุดอย่างดี

พิสูจน์ด้านล่าง

หลักฐานการเสนอ 3 :โดยข้อเสนอ 2ตามข้อเสนอ 1.1 และ 1.2

ข้อเสนอที่ 4 : ชุดย่อยส่วนย่อยที่ไม่มีคำนำหน้าของภาษาปกติ (เข้ารหัสเป็นคำไม่สิ้นสุด ) คือ -regular (และขนาดของBüchi Automaton ที่รับรู้ว่าเป็นพหุนามในขนาดของ NFA ที่ใช้ภาษาปกติ)u0¯v1^u1¯v2^u2¯ω

พิสูจน์ด้านล่าง

ทฤษฎีบทที่ 5 : การตัดสินใจว่าภาษาปกติที่อธิบายโดย NFA มีชุดย่อยที่ไม่มีคำนำหน้าไม่มีที่สิ้นสุดสามารถทำได้ในเวลาพหุนามในขนาดของ NFA

ข้อพิสูจน์ทฤษฎีบทที่ 5 : โดยข้อเสนอ 3 มันเพียงพอที่จะทดสอบว่ามันมีส่วนย่อยของคำนำหน้าฟรีที่ไม่มีที่สิ้นสุดซึ่งสามารถทำได้ในเวลาพหุนามโดยการสร้างหุ่นยนต์Büchiที่ได้รับจากข้อเสนอ 4 และทดสอบความว่างเปล่าของมัน ภาษา (ซึ่งสามารถทำได้ในเวลาเชิงเส้นในขนาดของBüchiหุ่นยนต์)


หลักฐานการเสนอ 2

บทที่ 2.1 : ถ้าเป็นชุดคำนำหน้าฟรีดังนั้นจึงเป็น (สำหรับคำใด ๆ ที่ )Sw1Sw

หลักฐานที่ 2.1 : ตามคำจำกัดความ

บทแทรก 2.2 : ให้เป็นชุดคำที่ไม่มีที่สิ้นสุด Letเป็นคำนำหน้าทั่วไปที่ยาวที่สุดกับคำทั้งหมดในSและมีจำนวนนับเท่ากันSw:=lcp(Sn)SSw1S

หลักฐาน 2.2 : กำหนดโดยfมันถูกกำหนดไว้อย่างดีโดยความหมายของ , นึงโดยความหมายของและ surjective โดยความหมายของWf:w1SSf(x)=wxw1Sfw

ข้อพิสูจน์ที่ 2 : เราสร้างและโดยการเหนี่ยวนำที่โดยมีสมมติฐานการเหนี่ยวนำประกอบด้วยส่วนต่าง ๆ ดังต่อไปนี้:unvnnHn

  • (P1)สำหรับ , ;k{1,,n}u0uk1vkS

  • (P2)สำหรับ ,และทั้งหมดไม่ว่างเปล่าและเริ่มต้นด้วยตัวอักษรที่แตกต่างกัน;k{1,,n}ukvk

  • (P3) Sn:=(u0un)1Sไม่มีที่สิ้นสุด

  • (P4)ไม่มีไม่ว่างเปล่าคำนำหน้าร่วมกันเพื่อทุกคำคือS_nในคำอื่น ๆ : ไม่มีตัวอักษรเป็นดังกล่าวว่า *SnaSnaΣ

หมายเหตุ 2.3 : ถ้าเรามีลำดับที่ตรวจสอบโดยไม่ต้อง , เราสามารถปรับเปลี่ยนจะทำให้พวกเขายังตอบสนอง(P_4)อันที่จริงก็พอเพียงที่จะแทนที่โดย(S_n) ไม่ได้รับผลกระทบ ไม่สำคัญ เป็นการก่อสร้าง โดย lemma 3Hn(P4)un(P4)ununlcp(Sn)(P1)(P2)(P4)(P3)

ตอนนี้เราสร้างลำดับโดยการเหนี่ยวนำใน :n

  • การกำหนดค่าเริ่มต้น:เป็นจริงโดยการใช้ (เช่นโดยการใช้และใช้หมายเหตุ 3.1)H0u0:=lcp(S)u0:=ε

  • ขั้นตอนการเหนี่ยวนำ: สมมติว่าเรามีคำและดังกล่าวว่าสำหรับบางnเราจะสร้างและเช่นว่า1}u1,,unv1,,vnHnnun+1vn+1Hn+1

ตั้งแต่เป็นอนันต์และคำนำหน้าฟรี (โดยแทรก 1), มันไม่ได้มีเพื่อให้*) ตั้งแต่เป็นอนันต์มีความเป็นตัวอักษรดังกล่าวว่าเป็นอนันต์ โดยมีตัวอักษรแตกต่างจากดังกล่าวว่าเป็นไม่ว่างเปล่า เลือก * การจะเป็นจะตอบสนอง ,และSnεSn=aΣ(SnaΣ)SnaSnaΣ(P4)baSnbΣvn+1SnbΣun+1a(P1)(P2)(P3)ดังนั้นเราจึงใช้คำพูดที่จะได้รับ 3.1 :S_n)(P4)un+1:=alcp(a1Sn)

(P1) u1unvn+1u1un(SnbΣ)SS

(P2)ตามคำนิยามของและ1}un+1vn+1

(P3) a1Snนั้นไม่มีที่สิ้นสุดตามคำจำกัดความของและจึงไม่มีที่สิ้นสุดโดย lemma 3aSn+1

(P4)ตามคำนิยามของ1}un+1


หลักฐานข้อเสนอ 4

หลักฐานการเสนอ 4 : ให้เป็น NFAA=(Q,,Δ,q0,F)

แนวคิดมีดังต่อไปนี้: เราอ่านจำไว้ว่าเราอยู่ที่ไหนอ่านย้อนกลับไปที่ที่เราอ่านหลังจากอ่านจำว่าเราอยู่ที่ไหน ... เรายังจำตัวอักษรตัวแรกที่อ่านในแต่ละเพื่อให้แน่ใจว่าเริ่มต้นด้วยตัวอักษรอื่นu0v1u0u1vnun

ฉันได้รับการบอกว่านี่อาจเป็นเรื่องง่ายขึ้นกับออโตมาหลายหัว แต่ฉันไม่คุ้นเคยกับพิธีการดังนั้นฉันจะอธิบายโดยใช้ออโตเมติกBüchi (มีเพียงหัวเดียว)

เราตั้งค่าโดยที่สัญลักษณ์ overlined จะถูกใช้เพื่ออธิบาย s และสัญลักษณ์ที่มีหมวกสำหรับ sΣ:=Σ¯Σ^ukvk

เราตั้งค่าโดยที่:Q:=Q×({}(Q×Σ))

  • (q,)หมายความว่าคุณกำลังอ่าน ;un

  • (q,(p,a))หมายความว่าคุณอ่านบางส่วนในสถานะแล้วตอนนี้คุณกำลังอ่านที่เริ่มต้นด้วยและเมื่อคุณทำเสร็จแล้วคุณจะกลับไปที่อ่านที่ไม่ได้เริ่มต้นด้วยunpvn+1apun+1a

เราตั้งเพราะเราเริ่มต้นด้วยการอ่านu_0q0:=(q0,)u0

เรากำหนดเป็น\FF×Q×Σ

ชุดของการเปลี่ยนถูกกำหนดดังนี้:

  • " " สำหรับการเปลี่ยนแต่ละครั้ง , เพิ่ม ;unqaq(q,)a¯(q,)

  • "ถึง " สำหรับการเปลี่ยนแปลงแต่ละครั้ง , เพิ่ม ;unvn+1qaq(q,)a^(q,(q,a))

  • " " สำหรับการเปลี่ยนแต่ละครั้ง , เพิ่ม ;vnqaq(q,(p,a))a^(q,(p,a))

  • "ถึง " สำหรับการเปลี่ยนแปลงแต่ละครั้งโดยที่เป็นครั้งสุดท้ายและตัวอักษรแตกต่างจากเพิ่ม ;vnunpappba(q,(p,b))a¯(p,)

บทแทรก 4.1 :ได้รับการยอมรับโดย iff สำหรับแต่ละ ,และเป็นไม่ว่างเปล่าและเริ่มต้นด้วยตัวอักษรที่แตกต่างกันและสำหรับแต่ละ ,(A)u0¯v1^u1¯v2^un¯vn+1^ 'n1UnVnn0U0...UnVn+1L()An1unvnn0u0unvn+1L(A)

หลักฐานของบทแทรก 4.1 : จากซ้ายไปยังเครื่องอ่าน

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