คำถามติดแท็ก regular-languages

คำถามเกี่ยวกับคุณสมบัติของคลาสของภาษาปกติและแต่ละภาษา

1
การแยกประเภทการปรับแต่ง
ที่ทำงานฉันได้รับมอบหมายให้อนุมานข้อมูลบางประเภทเกี่ยวกับภาษาแบบไดนามิก ฉันเขียนลำดับของข้อความไปยังletนิพจน์ที่ซ้อนกันเช่น: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } เนื่องจากฉันเริ่มต้นจากข้อมูลประเภททั่วไปและพยายามอนุมานประเภทที่เฉพาะเจาะจงมากขึ้นตัวเลือกที่เป็นธรรมชาติคือประเภทการปรับแต่ง ตัวอย่างเช่นตัวดำเนินการตามเงื่อนไขส่งคืนการรวมของประเภทของสาขาที่เป็นจริงและเท็จ …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

5
เงื่อนไขที่เพียงพอและจำเป็นเกี่ยวกับความสม่ำเสมอของภาษา
ข้อความใดต่อไปนี้ถูกต้อง มีเงื่อนไขที่เพียงพอและจำเป็นเกี่ยวกับความสม่ำเสมอของภาษา แต่ยังไม่ได้ค้นพบ ไม่มีเงื่อนไขเพียงพอและจำเป็นเกี่ยวกับความสม่ำเสมอของภาษา การปั๊มบทแทรกเป็นเงื่อนไขที่จำเป็นสำหรับความไม่สม่ำเสมอของภาษา การปั๊มบทแทรกเป็นเงื่อนไขที่เพียงพอสำหรับความไม่สม่ำเสมอของภาษา ฉันรู้ว่า# (4) ถูกต้องและ # (3) เป็นเท็จเพราะ "การสนทนาของคำสั่งนี้ไม่เป็นความจริง: ภาษาที่ตอบสนองเงื่อนไขเหล่านี้อาจยังไม่ปกติ" แต่สิ่งที่สามารถพูดเกี่ยวกับ (1) และ (2)?

2
DFA ที่เล็กที่สุดที่ยอมรับสตริงที่กำหนดและปฏิเสธสตริงที่กำหนดอื่น ๆ
ป.ร. ให้ไว้สองชุด, Bของสตริงมากกว่าตัวอักษรΣเราสามารถคำนวณที่เล็กที่สุดที่กำหนดขอบเขตของรัฐหุ่นยนต์ (DFA) Mเช่นว่า⊆ L ( M )และL ( M ) ⊆ Σ * ∖ B ?A,BA,BA,BΣΣ\SigmaMMMA⊆L(M)A⊆L(M)A \subseteq L(M)L(M)⊆Σ∗∖BL(M)⊆Σ∗∖BL(M) \subseteq \Sigma^*\setminus B กล่าวอีกนัยหมายถึงชุดตัวอย่างเชิงบวก สตริงทั้งหมดในAต้องได้รับการยอมรับจาก DFA Bหมายถึงชุดตัวอย่างเชิงลบ DFA ไม่ควรยอมรับสตริงในBAAAAAABBBBBB มีวิธีแก้ปัญหานี้หรือไม่อาจใช้เทคนิคการย่อขนาด DFAหรือไม่ ฉันนึกภาพได้ว่าการสร้างหุ่นยนต์คล้าย DFA ที่มีสถานะอยู่สามแบบ: ยอมรับสถานะปฏิเสธสถานะและ "ไม่สนใจ" (ข้อมูลใด ๆ ที่ลงท้ายด้วยสถานะ "ไม่สนใจ" สามารถยอมรับได้ หรือถูกปฏิเสธ) แต่เราสามารถหาวิธีที่จะลดสิ่งนี้ให้เป็น DFA สามัญได้หรือไม่? คุณอาจคิดว่านี่เป็นปัญหาของการเรียนรู้ DFA โดยให้ตัวอย่างที่เป็นบวกและลบ นี่คือแรงบันดาลใจจาก สนามกอล์ฟ …

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

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

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

5
ภาษาของค่าของฟังก์ชันเลียนแบบ
เขียนสำหรับการขยายทศนิยมของ (โดยไม่นำหน้า) ให้และเป็นจำนวนเต็มกับ0 พิจารณาภาษาของการขยายทศนิยมของทวีคูณของบวกค่าคงที่:ˉ nn¯\bar n nnn0aaabbba>0a>0a > 0aaa M = { ¯ ax + b ∣x∈N}M={ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯∣x∈N}M = \{ \overline{a\,x+b} \mid x\in\mathbb{N} \} คือปกติ? บริบทฟรีหรือไม่MMM (ตรงกันข้ามกับภาษาของกราฟของฟังก์ชันเลียนแบบ ) ฉันคิดว่านี่จะเป็นคำถามทำการบ้านที่ดีดังนั้นคำตอบที่เริ่มต้นด้วยคำใบ้หรือสองและอธิบายไม่เพียง แต่วิธีการแก้ปัญหา แต่ยังรวมถึงวิธีการตัดสินใจว่าจะใช้เทคนิคใดในการใช้งาน

5
มีวิธีที่รู้จักกันในการสร้างไวยากรณ์ที่ได้รับชุด จำกัด ของสตริง จำกัด ?
จากการอ่านของฉันดูเหมือนว่าไวยากรณ์ส่วนใหญ่เกี่ยวข้องกับการสร้างสตริงจำนวนอนันต์ ถ้าคุณทำงานในทางตรงกันข้าม หากให้ความยาว n สตริงของ m คุณควรสร้างไวยากรณ์ที่จะสร้างสตริงเหล่านั้นและเป็นเพียงสตริงเหล่านั้น มีวิธีการที่เป็นที่รู้จักกันสำหรับการทำเช่นนี้หรือไม่? นึกคิดชื่อเทคนิคที่ฉันสามารถวิจัย อีกวิธีหนึ่งฉันจะดำเนินการค้นหาวรรณกรรมเพื่อค้นหาวิธีการดังกล่าวได้อย่างไร

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

1
Finite Automata ที่ไม่สามารถกำหนดค่าได้ ตัวอย่าง Sipser 1.16
ฉันกำลังทำงานผ่าน Sipser Book (ฉบับที่ 2) และพบกับตัวอย่างนี้ซึ่งฉันไม่เข้าใจ ในหนังสือเล่มนี้มันระบุว่า NFA นี้ยอมรับสตริงว่าง\εϵ\epsilon มีใครบางคนที่จะช่วยให้ฉันรู้ว่าทำไมถึงเป็นเช่นนั้น ความเข้าใจของฉันคือจะย้ายไปที่ซึ่งไม่ใช่สถานะที่ยอมรับได้εϵ\epsilonQ3q3q_3

3
DFA สำหรับการยอมรับสตริงไบนารีทั้งหมดของรูปแบบพลังงานของ (ไม่หารด้วย ) คือสำหรับกำหนด
เราสามารถสร้างการยอมรับ DFA เลขฐานสองหารด้วยnnnn ตัวอย่างเช่น DFA ที่ยอมรับเลขฐานสองหารด้วย 2 สามารถเกิดขึ้นได้ดังนี้: ในทำนองเดียวกัน DFA ที่รับเลขฐานสองหารด้วย 3 สามารถเกิดขึ้นได้ดังนี้: เราสามารถทำตามขั้นตอนที่กำหนดไว้อย่างดีเพื่อจัดทำ DFA ประเภทนี้ อย่างไรก็ตามสามารถมีขั้นตอนที่กำหนดไว้ได้ดีหรือดีกว่าที่จะบอกว่าตรรกะสำหรับการสร้าง DFAs ยอมรับจำนวนรูปแบบnknkn^k ? ยกตัวอย่างเช่นให้เราพิจารณา DFA ยอมรับตัวเลขทั้งหมดของรูปแบบ k ภาษานี้จะเป็นจึงมี regex * เราสามารถสร้าง DFA ได้ดังต่อไปนี้: 2k2k2^k{1,10,100,1000,...}{1,10,100,1000,...}\{1,10,100,1000,...\}10∗10∗10^* ฉันลองสร้าง DFA เป็นเวลาและสิ่งที่คล้ายกันใช่ไหม แต่ก็ไม่สามารถที่จะทำเช่นนั้น หรือจะเป็นเพียงว่ารูปแบบของเทียบเท่าไบนารีซึ่งทำให้มันเป็นไปได้ที่จะสร้าง DFA และเราไม่สามารถสร้างการยอมรับ DFA เลขฐานสองทุกรูปแบบสำหรับเฉพาะ ?3k3k3^k2n2n2^nnknkn^knnn

2
ความสม่ำเสมอของภาษาเอกนารีที่มีความยาวรวมสองคำ สามสี่เหลี่ยม
ฉันคิดถึงภาษาเอก LkLkL_kที่ไหน LkLkL_k คือชุดของคำทั้งหมดที่ความยาวคือผลรวมของ kkkสี่เหลี่ยม อย่างเป็นทางการ: Lk={an∣n=∑i=1kni2,ni∈N0(1≤i≤k)}Lk={an∣n=∑i=1kni2,ni∈N0(1≤i≤k)}L_k=\{a^n\mid n=\sum_{i=1}^k {n_i}^2,\;\;n_i\in\mathbb{N_0}\;(1\le i\le k)\} มันง่ายที่จะแสดงให้เห็นว่า L1={an2∣n∈N0}L1={an2∣n∈N0}L_1=\{a^{n^2}\mid n\in\mathbb{N_0}\}ไม่ปกติ (เช่นกับ Pumping-Lemma) ยิ่งไปกว่านั้นเรารู้ว่าจำนวนธรรมชาติแต่ละตัวนั้นคือผลรวมของสี่เหลี่ยมจัตุรัสสี่อันซึ่งมีความหมายว่าk≥4k≥4k\ge 4 ทุกภาษา LkLkL_k เป็นปกติตั้งแต่ Lk=L(a∗)Lk=L(a∗)L_k=L(a^*). ตอนนี้ฉันสนใจในกรณี k=2k=2k=2 และ k=3k=3k=3: L2={an12+n22∣n1,n2∈N0}L2={an12+n22∣n1,n2∈N0}L_2=\{a^{{n_1}^2+{n_2}^2}\mid n_1,n_2\in\mathbb{N_0}\}, L3={an12+n22+n32∣n1,n2,n3∈N0}L3={an12+n22+n32∣n1,n2,n3∈N0}L_3=\{a^{{n_1}^2+{n_2}^2+{n_3}^2}\mid n_1,n_2,n_3\in\mathbb{N_0}\}. น่าเสียดายที่ฉันไม่สามารถแสดงได้ว่าภาษานี้เป็นภาษาปกติหรือไม่ (แม้จะได้รับความช่วยเหลือจากทฤษฎีบทสามสแควร์ของเลอช็องดร์หรือทฤษฎีบทของแฟร์มาต์ในจำนวนสองสแควร์ส ) ฉันค่อนข้างแน่ใจว่าอย่างน้อย L2L2L_2ไม่ใช่เรื่องปกติ แต่การคิดอย่างไม่มีความสุขไม่ใช่ข้อพิสูจน์ ความช่วยเหลือใด ๆ

3
คือปกติ?
ฉันใช้ทฤษฎีการคำนวณการสอบเมื่อไม่กี่สัปดาห์ที่ผ่านมาและนี่เป็นหนึ่งในคำถาม: สมมติภาษาL = { (anขม.)R∣ n , m , r ≥ 0 }L={(anbm)r∣n,m,r≥0}L=\{(a^nb^m)^r \mid n,m,r\ge 0\} L ปกติหรือไม่ ถ้าใช่ให้การแสดงออกปกติหรือหุ่นยนต์สำหรับมัน หลังจากฉันถามเขาตอบสั้น ๆ หลังจากการสอบดูเหมือนจะเป็นเรื่องปกติ (ฉันเชื่อว่าเขาบอกว่าการแสดงออกนั้นง่าย ) อย่างไรก็ตามฉันดูเหมือนจะไม่เข้าใจว่าทำไมถึงเป็นเช่นนั้น วิธีที่ฉันเห็นมันเชื่อมโยงมัน rครั้งเช่นนี้:(a* * * *ข* * * *)* * * *(a∗b∗)∗(a^*b^*)^*anขม.anbma^nb^m anขม.anขม.anขม.. . .anขม.anขม.anbmanbmanbm...anbmanbma^nb^ma^nb^ma^nb^m...a^nb^ma^nb^m , ซึ่งไม่ปกติเนื่องจากไม่มีวิธีสำหรับหุ่นยนต์ที่จะเรียกคืนnและmทุกครั้ง ฉันอยู่ตรงนี้ตรงไหน แก้ไข: ฉันคุยกับอาจารย์อีกครั้งเขายอมรับว่ามันเป็นความผิดพลาด ภาษานั้นไม่ปกติอย่างแน่นอน

3
วิธีที่จะรู้สึกอย่างสังหรณ์ใจว่าภาษาเป็นปกติ
ให้ภาษาฉันจะพูดโดยตรงอย่างไรโดยไม่ดูกฎการผลิตภาษานี้ไม่ปกติL = {anขnคn}L={anbncn} L= \{a^n b^n c^n\} ฉันสามารถใช้เลมม่าสูบน้ำ แต่ผู้ชายบางคนบอกว่าแค่ดูไวยากรณ์ว่านี่ไม่ใช่เรื่องปกติ มันเป็นไปได้ยังไงกัน?

4
คำที่มีผลทางขวาและทางซ้ายเหมือนกัน
ฉันได้เริ่มต้นในการศึกษาออกำหนดไม่ใช่ใช้หนังสือของHopcroft และ Ullman ฉันติดอยู่ในปัญหาที่ฉันพบว่าน่าสนใจมาก: ให้ออโตเมทริก จำกัด ที่ไม่ได้กำหนดค่าไว้ให้ยอมรับสตริงทั้งหมดที่มีค่าเท่ากันเมื่อประเมินจากซ้ายไปขวาเป็นจากขวาไปซ้ายโดยการคูณตามตารางต่อไปนี้: ×abcaacbbaacccba×abcaaacbcabcbca\qquad \displaystyle\begin{array}{c|ccc} \times & a & b & c \\ \hline a & a & a & c \\ b & c & a & b \\ c & b & c &a \end{array} ดังนั้นหากเรามีสตริง , สินค้าจากซ้ายไปขวาคือและ ผลิตภัณฑ์จากขวาไปซ้ายคือขcabcabc( a × b ) × …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.