ชุดความยาวของคำที่เป็นไปได้ในภาษาปกติมีอะไรบ้าง


15

ให้ภาษาLให้นิยามชุดความยาวของLเป็นชุดของความยาวของคำในL :

LS(L)={|ยู||ยูL}

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

คำตอบ:


14

อันดับแรกการสังเกตซึ่งไม่สำคัญ แต่สะดวก: ชุดSของชุดจำนวนเต็มที่เป็นLS(L)สำหรับภาษาปกติบางLบนตัวอักษรที่ไม่ว่างAไม่ได้ขึ้นอยู่กับการเลือกตัวอักษร หากต้องการดูสิ่งนั้นให้พิจารณาหุ่นยนต์ จำกัด ที่รับรู้L ; ความยาวของคำที่อยู่ในLคือความยาวของเส้นทางบนหุ่นยนต์ที่มองว่าเป็นกราฟที่ไม่มีป้ายกำกับจากสถานะเริ่มต้นไปยังสถานะที่ยอมรับ โดยเฉพาะอย่างยิ่งคุณสามารถสับทุกลูกศรเพื่อและได้รับเป็นภาษาปกติด้วยชุดยาวเดียวกันมากกว่าตัวอักษร{ } ในทางกลับกันถ้าa{a}Lเป็นภาษาปกติของตัวอักษรแบบองค์ประกอบเดียวสามารถฉีดเข้าไปในตัวอักษรขนาดใหญ่ได้เล็กน้อยและผลลัพธ์ยังคงเป็นภาษาปกติ

ดังนั้นเรากำลังมองหาความยาวที่เป็นไปได้ที่ตั้งไว้สำหรับคำที่มากกว่าตัวอักษรซิงเกิล บนตัวอักษรเดี่ยวภาษาที่เป็นชุดความยาวที่เขียนออกมาในเอก: LS(L)={nยังไม่มีข้อความ|anL} } ภาษาดังกล่าวเรียกว่าภาษาเอก

ให้Lเป็นภาษาปกติและพิจารณากำหนดแน่นอนหุ่นยนต์ (DFA) ที่ตระหนักถึงLLชุดความยาวของคำของLคือชุดของความยาวของเส้นทางใน DFA ที่เห็นเป็นกราฟกำกับที่เริ่มต้นที่สถานะเริ่มต้นและสิ้นสุดในหนึ่งในรัฐที่ยอมรับ DFA บนตัวอักษรแบบองค์ประกอบเดียวนั้นค่อนข้างเชื่อง (NFA จะเป็นตัวสร้าง): มันเป็นรายการที่แน่นอนหรือรายการแบบวงกลม หากรายการมีจำนวน จำกัด ให้ระบุสถานะตั้งแต่0ถึงชั่วโมงตามลำดับรายการ ถ้ามันเป็นวงกลมให้ระบุสถานะจาก0ถึงชั่วโมงตามหลังหัวของรายการและชั่วโมงถึงชั่วโมง+Rตามลูป

ออโตมา

ให้Fเป็นชุดของดัชนียอมรับรัฐขึ้นไปชั่วโมงและGเป็นชุดของดัชนีของรัฐยอมรับจากชั่วโมงการชั่วโมง+R R แล้วก็

LS(L)=F{kR+x|xG,kยังไม่มีข้อความ}

ตรงกันข้ามให้ชั่วโมงและRมีสอง integers และFและGเป็นสองชุด จำกัด ของจำนวนเต็มเช่นว่าxF,xชั่วโมงและxG,hxh+r R จากนั้นชุดLF,G,r={akR+x|xG,kยังไม่มีข้อความ}เป็นภาษาปกติ: เป็นภาษาที่ DFA อธิบายไว้ข้างต้น นิพจน์ทั่วไปที่อธิบายภาษานี้เป็น F | G ( R ) *aF|aG(aR)* * * *

เพื่อสรุปเป็นภาษาอังกฤษชุดความยาวของภาษาปกติคือชุดของจำนวนเต็มที่มีค่าเป็นระยะ¹สูงกว่าค่าที่แน่นอน

¹ ที่จะแขวนบนกับความคิดที่ดีขึ้น , ระยะหมายถึงลักษณะการทำงานของชุด (ซึ่งเป็นฟังก์ชั่นยังไม่มีข้อความ{aล.sอี,เสื้อRยูอี}ซึ่งเรายกให้เป็นฟังก์ชั่นZ{aล.sอี,เสื้อRยูอี} ) เป็นระยะ ค่าเหนือค่าที่แน่นอนเป็นระยะหมายความว่าฟังก์ชัน จำกัด ให้[h,+[ สามารถยืดเยื้อเป็นฟังก์ชันธาตุได้


การสังเกตของคุณเกี่ยวกับความไม่เกี่ยวข้องของตัวอักษรแสดงให้เห็นว่าสามารถใช้ทฤษฎีบทของ Parikh ได้ คุณแสดงให้เห็นว่า LS (L) = LS (L ') โดยที่ L' ตัวอักษรทั้งหมดจะถูกยุบเป็นตัวอักษรเดียว แต่ LS (L ') คือการทำแผนที่ Parikh ของภาษา L ซึ่งเป็นที่รู้จักกันว่าเป็นครึ่งวงกลมสำหรับภาษาปกติใด ๆ
Suresh

วิธีการที่ดี! 1) ฉันคิดว่าย่อหน้าแรกสามารถแทนที่ได้ด้วยการสังเกตว่าภาษาปกติปิดกับสายอักขระโฮโมมอร์ฟิซึม 2) เพื่อความชัดเจนคุณควรพิจารณาให้ส่วนที่สองของเป็น{ h + k r + ( x - h ) } , modulo off-by-one-errors 3) ชุดจำนวนเต็ม "เป็นงวด" คืออะไร LS(L){h+kr+(xh)}
Raphael

1
@Suresh, Raphael (1): ฉันชอบที่จะระบุหลักฐานในวิธีการประถมไม่ homomorphisms หรือการแมป Parikh ถูกกล่าวถึงในชั้นเรียน CS 102 ของฉัน
Gilles 'หยุดความชั่วร้าย'

@ ราฟาเอล (2) ที่คุณเริ่มต้นในการจัดทำดัชนีไม่สำคัญฉันสามารถลบเงื่อนไขh Gเนื่องจากFสามารถดูดซับองค์ประกอบขนาดเล็กได้มากเท่าที่เราต้องการ (3) ชุดที่มีระยะเหนือค่าที่แน่นอนคือชุดที่สามารถใส่ในแบบฟอร์มที่แสดงด้านบน Gชั่วโมงGF
Gilles 'หยุดความชั่วร้าย'

5

เซตย่อย จำกัด ใด ๆสามารถเป็นชุดภาษาLปกติได้เนื่องจากคุณสามารถใช้ตัวอักษร unary { 0 }และกำหนดLเป็น{ 0 1 , , 0 n } (รวมถึงภาษาว่างและ{ ε } ){1,...,n}ยังไม่มีข้อความL{0}L{01,...,0n}{ε}

ตอนนี้สำหรับเซตอนันต์ ฉันจะให้การวิเคราะห์สั้น ๆ แต่คำตอบสุดท้ายอาจไม่ชัดเจนเพียงพอ ฉันจะไม่ทำอย่างละเอียดจนกว่าคุณจะขอให้ฉันเพราะฉันคิดว่ามันใช้งานง่ายและเพราะฉันไม่มีเวลามากในขณะนี้

ให้เป็นนิพจน์ทั่วไปที่สร้างภาษาL 1และL 2ตามลำดับ มันเป็นเรื่องง่ายที่จะเห็นR1,R2L1L2

  • )LS(L(r1+r2))=LS(L1L2)=LS(L1)LS(L2)
  • LS(L(R1R2))=LS(L1L2)={1+2:1LS(L1),2LS(L2)}. This is denoted LS(L1)+LS(L2).
  • LS(L(R1* * * *))={0}n1{Σผม=1nผม:(1,...,n)(LS(L1))n}.

ดังนั้นชุดที่เป็นไปได้ของจำนวนเต็มที่สามารถเป็นชุดความยาวของภาษาปกติคือเซตย่อยที่มีขอบเขต จำกัด ของหรือที่สามารถสร้างขึ้นได้โดยการเซตย่อยเซตS 1 , S 2ของNและใช้สูตรก่อนหน้านี้แน่นอน จำนวนครั้ง.ยังไม่มีข้อความS1,S2N

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


ฉันไม่เห็นคำตอบสุดท้าย (คุณตั้งใจจะให้คำตอบเสร็จในภายหลังหรือไม่) ฉันหวังว่าจะได้คำอธิบายง่ายๆเกี่ยวกับฉากที่เป็นไปได้และการเชื่อมต่อกับออโตมาตะ
Gilles 'หยุดความชั่วร้าย'

คำตอบสุดท้ายคือ: "ดังนั้นชุดจำนวนเต็มที่เป็นไปได้ ... " นั่นเป็นคำอธิบายง่ายๆแม้ว่าจะเชื่อมต่อกับนิพจน์ทั่วไปไม่ใช่ออโตมาต้า
Janoma

There's a simpler description that doesn't involve taking a fixpoint. Maybe this question isn't as elementary as I thought!
Gilles 'SO- stop being evil'

I don't think you can avoid the last rule, since it is the star operator the one which can produce infinite length-sets, just as it produces infinite languages.
Janoma

@Gilles So you want a closed form of the smallest fixpoint of the inductive solution Janoma provides?
Raphael

2

ตามการปั๊มของบทแทรกสำหรับภาษาปกติมีอยู่เช่นนั้นที่สตริงxของความยาวอย่างน้อยเท่ากับnสามารถเขียนในรูปแบบต่อไปนี้: x = u v wโดยที่สามเงื่อนไขต่อไปนี้ถือ: | คุณv | < n | v | > 0 u v k w Lnxn

x=ยูโวลต์W
|ยูโวลต์|<n
|โวลต์|>0
ยูโวลต์kWL

สิ่งนี้ทำให้เราได้รับการทดสอบหนึ่งชุด: ชุดไม่สามารถเป็นชุดความยาวของภาษาปกติเว้นแต่องค์ประกอบทั้งหมดสามารถแสดงเป็นชุดจำนวนเต็มโดยพลการไม่มากกว่าค่าคงที่รวมทั้งค่าหลายค่าที่ไม่ได้นิยามm (ความยาว ของv ) บวกค่า จำกัด โดยพลการบางอย่างnม.โวลต์

กล่าวอีกนัยหนึ่งดูเหมือนว่าชุดความยาวภาษาที่เป็นไปได้สำหรับภาษาปกติคือการปิดด้วยความเคารพต่อการรวมกลุ่ม (ตามที่กล่าวไว้ภายใต้ EDIT และ EDIT2 ขอบคุณผู้แสดงความคิดเห็น) ของชุดที่อธิบายดังต่อไปนี้: สำหรับการแก้ไขa , b Nและชุด จำกัด ทั้งหมดS , โดยการแทรกบทแทรกสำหรับภาษาปกติ (ขอบคุณ Gilles ที่ชี้ให้เห็นข้อผิดพลาดโง่ ๆ ในฉบับดั้งเดิมของฉัน, โดยที่ฉันกำหนดชุดN )

{a+n|nยังไม่มีข้อความ}S
a,ยังไม่มีข้อความSยังไม่มีข้อความ

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

na

EDIT3: ในแง่ของความเห็นของ Janoma เราลืมปิดคุณสมบัติของชุดความยาวภาษาที่ฉันพูดถึงใน EDIT แรก เนื่องจากภาษาปกติมีคุณสมบัติการปิดเหล่านี้และเนื่องจากภาษาปกติทุกภาษามี DFA จึงเป็นไปตามที่การเติมศัพท์สำหรับภาษาปกติใช้กับสหภาพทั้งหมดทางแยกการเติมเต็มและความแตกต่างของภาษาปกติและเราจะปล่อยไว้ที่ ; ไม่จำเป็นต้องพิจารณาสิ่งเหล่านี้ยกเว้นสหภาพซึ่งฉันยังคิดว่าอาจจำเป็นต้องทำให้ต้นฉบับของฉัน (แก้ไขแล้วขอบคุณการป้อนข้อมูลจาก Gilles) ที่ถูกต้อง ดังนั้นคำตอบสุดท้ายของฉันคือ: สิ่งที่ฉันพูดในรุ่นดั้งเดิมบวกกับการปิดชุดความยาวภาษาด้วยความเคารพต่อการรวมกลุ่ม


1
{a+n|a,,nยังไม่มีข้อความ}S อยู่ในเส้นทางที่ถูกต้อง แต่คุณมีปริมาณที่ไม่ถูกต้องคุณกำลังสร้าง ยังไม่มีข้อความ.
Gilles 'หยุดความชั่วร้าย'

1
การวิเคราะห์ความสมบูรณ์ของชุดความยาวอาจมีความละเอียดอ่อนเล็กน้อย ถ้าL=L(a* * * *) มากกว่าตัวอักษร Σ={a,}จากนั้นชุดความยาวของ L คือ ยังไม่มีข้อความ และความยาวของชุด L¯ คือ ยังไม่มีข้อความ+และสิ่งเหล่านี้ไม่ได้เติมเต็มซึ่งกันและกัน
Janoma

@Gilles แต่ชุดของตัวเลขธรรมชาติทั้งหมดเป็นชุดความยาวที่ถูกต้องใช่มั้ย ฉันไม่ได้สร้างเซตย่อยของตัวเลขธรรมชาติทั้งหมดใช่ไหม ฉันยอมรับว่าจะเป็นปัญหา แก้ไข: โอ้เดี๋ยวก่อนฉันเห็นสิ่งที่คุณพูด ใช่คุณพูดถูก. จะแก้ไขเมื่อกลับไปที่คอมพิวเตอร์
Patrick87

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