การแสดงออกปกติสามารถไม่มีที่สิ้นสุด?


10

ฉันรู้ว่าภาษาที่สามารถกำหนดได้โดยใช้นิพจน์ทั่วไปและภาษาที่สามารถจดจำได้โดย DFA / NFA (finite automata) นั้นเทียบเท่า ยังไม่มี DFA สำหรับภาษานี้{0n1n|n0}. แต่ก็ยังสามารถเขียนได้โดยใช้การแสดงออกปกติ (สำหรับเรื่องที่ไม่ได้ภาษาปกติใด ๆ ) เป็น{ϵ}{01}{0011}....... แต่เรารู้ว่าทุกภาษาที่มีการแสดงออกปกติมี DFA ที่ตระหนักถึงมัน (ขัดแย้งกับคำสั่งก่อนหน้าของฉัน) ฉันรู้ว่านี่เป็นเรื่องเล็กน้อย แต่คำจำกัดความของการแสดงออกปกติรวมถึงเงื่อนไขที่ควรจะมีขอบเขตหรือไม่?


3
คุณได้ตอบคำถามของคุณเองแล้ว: ถ้า REG CFL คำศัพท์ดังกล่าวไม่สามารถใช้เป็นนิพจน์ปกติได้
Raphael

1
เพียงแค่สังเกตด้าน: ถ้าเราวางความต้องการของ DFA / NFA ถูก จำกัด ที่เราสามารถสร้างหุ่นยนต์ที่จะยอมรับ\} {0n1nn0}

3
ในฐานะที่เป็นคำศัพท์คำว่า 'automata' เป็นพหูพจน์ของ 'ออโตเมติก' ไม่มีคำว่า 'automatas' - คุณไม่สามารถทำให้มันเป็นพหูพจน์ได้มากกว่าที่เป็นอยู่แล้ว (ออโตมาต้านั้นถูกต้องในฐานะที่เป็นเจ้าของ แต่ไม่เป็นพหูพจน์)
chasly จากสหราชอาณาจักร

คำตอบ:


23

หากการแสดงออกปกติได้รับอนุญาตให้ไม่มีที่สิ้นสุดแล้วภาษาใด ๆก็จะเป็นปกติ

ด้วยภาษาเราสามารถกำหนดนิพจน์ทั่วไปซึ่งกำหนดอย่างแน่นอน (ตัวอย่าง: นิพจน์ทั่วไปกำหนด .)L={w1,w2,}R=w1+w2+L
R1=ϵ+0+1+00+01+10+11+L1={0,1}

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


5
ฉันรักคำตอบนี้เพราะไม่เพียง แต่บอกว่าการแสดงออกปกติไม่สิ้นสุดนั้นแตกต่างกัน แต่แนวคิดโดยรวมนั้นไม่ได้มีความหมาย
jmite

ถ้อยแถลงที่ชัดเจนยิ่งขึ้นของจุดที่ฉันฝังไว้ในย่อหน้าที่สองของฉันจึงชัดเจนขึ้น
Davislor

แต่มันก็ลงเอยด้วยความบริสุทธิ์ ทำไมเราไม่พิจารณาทุกภาษาเป็นประจำถ้ามีแบบฟอร์มนี้ สิ่งที่เราทำกับ regexes ไม่ทำงานอีกต่อไป เราไม่สามารถสร้างกลไกสถานะโดยอัลกอริธึมอุปนัยเพราะมันไม่เสร็จและมีสถานะไม่สิ้นสุด เราไม่สามารถเปรียบเทียบกับทุกสิ่งในรายการและปฏิเสธหากไม่มีอะไรตรงกัน และเราไม่สามารถแสดงรายการได้ (รายการที่เราสามารถสร้างขึ้นโดยคอมพิวเตอร์เป็นภาษาที่ decidable) เราสามารถพิสูจน์สิ่งต่าง ๆ โดยใช้ความจริงที่ว่าทุกภาษามีแบบฟอร์มนี้ แต่ไม่ใช่สิ่งที่เรารู้เกี่ยวกับ regexes
Davislor

@jmite "ไม่มีความหมาย" หรือเป็นกรณีพิเศษใช่ไหม
BAR

@BAR ไม่มีความหมายเช่นเดียวกับในคลาสของภาษาที่มีมากกว่าอธิบายโดยนิพจน์ทั่วไปที่ไม่มีที่สิ้นสุดเพียงเช่นชุดของภาษาทั้งหมด เราไม่ได้เรียนภาษาในแบบที่คุณทำกับ RES จำกัด CFG หรือแม้แต่เครื่องจักรทัวริง Σ2Σ
jmite

5

ใช่มันจะต้องมี จำกัด 011ลองนึกภาพคุณได้ว่าชุดที่ไม่มีที่สิ้นสุดของการแข่งขันเป็นไปได้และการป้อนข้อมูลของคุณ คุณเคยปฏิเสธหรือไม่ คุณเคยดูการแข่งขันหมดหรือไม่?

มีภาษาใดที่ตามคำจำกัดความนั้นจะไม่เป็นปกติหรือไม่? แล้วชุดของโปรแกรมและอินพุตทั้งหมดที่โปรแกรมที่ให้ไว้หยุดทำงานกับอินพุตที่กำหนด?

ทีนี้ถ้าคุณมีโปรแกรมที่ระบุสตริงในภาษาตามลำดับพจนานุกรม -

ปรับปรุง

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

ทำไมเราจึงนิยามภาษา“ ปกติ” ในลักษณะนั้น เพราะภาษาทางการทุกภาษาเป็นชุดย่อยของสตริงบนตัวอักษรและชุดสตริงทุกชุดสามารถแสดงเป็นกลุ่มของซิงเกิลดังนั้นถ้าเราเรียกชุดของสตริงเป็นภาษา "ปกติ" ภาษาปกติจะเป็นคำพ้องความหมายสำหรับภาษา นั่นไม่ใช่คำจำกัดความที่มีประโยชน์มากโดยเฉพาะอย่างยิ่งเมื่อเราไม่สามารถนำไปใช้กับฮาร์ดแวร์หรือซอฟต์แวร์ได้ เราไม่สามารถจัดเก็บรายการที่ไม่มีที่สิ้นสุดโดยพลการได้ทุกที่หรือสร้างเครื่องที่ไม่มีที่สิ้นสุด

ตามที่ฉันบอกใบ้หากคุณมีวิธีในการระบุสตริงทั้งหมดในภาษาตามลำดับคุณสามารถสร้าง decider จากสิ่งนั้น (ยอมรับเมื่อคุณเห็นสตริงที่แน่นอนนั้นปฏิเสธเมื่อคุณพบสตริงที่มาจากคนที่คุณ กำลังมองหา) และในทางกลับกัน (สำหรับแต่ละสตริงตามลำดับให้รันผ่าน decider และส่งออกถ้าและถ้ามันยอมรับเท่านั้น) ดังนั้นหากเราพิจารณาทุกภาษาที่แจกแจงเป็นประจำทุกภาษาที่สามารถตัดสินใจได้จะเป็น "ปกติ" และเราต้องการคำศัพท์ใหม่สำหรับภาษาที่ได้รับการยอมรับโดยเครื่องจักรสถานะ จำกัด และการเข้ารหัสเทียบเท่าเป็นคำจำกัดความ


1
คำตอบนี้ผิด ความจริงเพียงอย่างเดียวที่การเป็นตัวแทนของภาษาบางอย่างไม่ได้ให้ยืมตัวเองเพื่อสร้าง decider อัลกอริทึมในทางที่ไร้เดียงสาไม่ได้หมายความว่าการเป็นตัวแทนนี้ผิด อาจมีวิธีการอื่น ในความเป็นจริงทุกภาษา decidable มีรูปแบบของ sasha เสนอ! กล่าวโดยย่อคือคุณยอมรับว่า "ฉันไม่สามารถเห็นได้ว่าจะเข้าใจผิดอย่างไรจึงเป็นไปไม่ได้"
Raphael

@ ราฟาเอล: โปรดพิจารณาความหมายของคำพูดของคุณ” ทุกภาษาที่มีการตัดสินมีรูปแบบที่ Sasha เสนอ!” นั่นคือในความเป็นจริงจุดที่ฉันทำในคำตอบของฉัน คำถามคือภาษาทั้งหมดของแบบฟอร์มนี้ถูกกำหนดเป็นปกติหรือไม่? ทุกภาษาเป็นภาษาที่ใช้ประจำได้หรือไม่? (และอย่างที่ฉันแสดงบางคนที่ไม่สามารถตัดสินใจได้เช่นกัน?) นั่นจะเป็นคำจำกัดความที่มีประโยชน์ของ“ ปกติหรือไม่”
Davislor

ยิ่งไปกว่านั้นการตกหลุมที่ว่า decider สำหรับรายการที่ไม่มีที่สิ้นสุดของสตริงไม่สามารถทำได้ประโยคสุดท้ายของฉันคือคำใบ้ว่ามันสามารถทำได้อย่างไร: ถ้ารายการของสตริงนั้นดีมากคุณสามารถปฏิเสธได้ทันที ในขณะที่คุณพบกับสตริงที่ผ่านมาในการสั่งซื้อ อย่างไรก็ตามเครื่องจักรสถานะจำกัดไม่สามารถทำได้เนื่องจากไม่สามารถแสดงสถานะทั้งหมดของการเปรียบเทียบกับแต่ละสตริงในรายการที่ไม่มีที่สิ้นสุดและไม่สามารถแสดงผลปกติได้ หากทำได้พวกเขาจะมีพลังมากพอที่จะรับรู้ภาษาที่สามารถตัดสินใจได้ทั้งหมด
Davislor

0

สมมติว่านิพจน์ทั่วไปได้รับอนุญาตให้ไม่มีที่สิ้นสุด

ดังนั้นภาษาที่กำหนดโดย {ϵ} ∪ {01} ∪ {0011} ... จะเป็นภาษาปกติ สำหรับทุกภาษาปกติมี NFA อยู่ วิธีหนึ่งในการรับ NFA นี้คือการมี NFA แต่ละรายการสำหรับแต่ละ {ϵ}, {01}, {0011} ... และรวมเข้าด้วยกันโดยใช้การเปลี่ยน ϵ เนื่องจากมีนิพจน์ทั่วไปที่แตกต่างกันไม่สิ้นสุดเราจึงจำเป็นต้องรวม NFA ย่อยที่ไม่สิ้นสุด อย่างไรก็ตาม NFA สามารถมีจำนวนสถานะที่แน่นอนเท่านั้น (คำจำกัดความของ NFA)

ดังนั้นจึงไม่มี NFA ที่สามารถกำหนดภาษาที่กำหนดโดยการรวมกันของการแสดงออกปกติไม่สิ้นสุดซึ่งหมายความว่าภาษาไม่ปกติ

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

ดังนั้นการแสดงออกปกติสามารถมีการแสดงออกที่แน่นอนเท่านั้น


"นิพจน์ทั่วไปที่ไม่มีที่สิ้นสุด" ของคุณจากนั้นกำหนดภาษาอีกประเภทหนึ่งไม่ใช่ภาษาลากูนทั่วไป ในความเป็นจริงพวกเขาจะสามารถกำหนดใดภาษาใด ๆ และที่จืดอย่างเต็มที่ (พวกเขาไม่ได้ จำกัด จึงยากที่จะทำงานร่วมกับเขาและพวกเขาสามารถทำอะไรจึงไม่มีอะไรที่จะศึกษาในแง่ของข้อ จำกัด )
vonbrand
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.