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

คำถามที่เกี่ยวข้องกับภาษาทางการไวยากรณ์และทฤษฎีออโตมาตะ

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

5
จะพิสูจน์ได้อย่างไรว่าภาษานั้นไม่มีบริบท
เราได้เรียนรู้เกี่ยวกับการเรียนของภาษาบริบทฟรี L มันโดดเด่นด้วยทั้งไวยากรณ์ที่ไม่มีบริบทและออโตมาดาวน์C F LCFL\mathrm{CFL}ดังนั้นมันจึงง่ายต่อการแสดงให้เห็นว่าภาษาที่ให้นั้นไม่มีบริบท ฉันจะแสดงสิ่งที่ตรงกันข้ามได้อย่างไร? TA ของฉันได้ยืนกรานว่าในการที่จะทำเช่นนั้นเราจะต้องแสดงให้ทุกคนได้เห็นไวยากรณ์ (หรือออโตมาตะ) ว่าพวกเขาไม่สามารถอธิบายภาษาในมือ ดูเหมือนว่าจะเป็นงานใหญ่! ฉันได้อ่านเกี่ยวกับบทแทรกซึมบ้าง แต่มันดูซับซ้อนจริงๆ

10
จะพิสูจน์ได้อย่างไรว่าภาษาไม่ปกติ
เราได้เรียนรู้เกี่ยวกับการเรียนของภาษาปกติ{} มันโดดเด่นด้วยแนวคิดใดแนวคิดหนึ่งในการแสดงออกปกติออโต้ จำกัด และไวยากรณ์ด้านซ้ายดังนั้นจึงเป็นเรื่องง่ายที่จะแสดงว่าภาษาที่กำหนดเป็นปกติREGREG\mathrm{REG} ฉันจะแสดงสิ่งที่ตรงกันข้ามได้อย่างไร? TA ของฉันได้รับการยืนยันว่าในการทำเช่นนั้นเราจะต้องแสดงให้เห็นสำหรับการแสดงออกปกติทั้งหมด (หรือสำหรับออโต้ จำกัด ทั้งหมดหรือสำหรับไวยากรณ์ซ้าย - เชิงเส้นทั้งหมด) ที่พวกเขาไม่สามารถอธิบายภาษาที่อยู่ในมือ ดูเหมือนว่าจะเป็นงานใหญ่! ฉันได้อ่านเกี่ยวกับบทแทรกซึมบ้าง แต่มันดูซับซ้อนจริงๆ นี่เป็นคำถามอ้างอิงที่รวบรวมวิธีการพิสูจน์ตามปกติและตัวอย่างการใช้ ดูที่นี่สำหรับคำถามเดียวกันเกี่ยวกับภาษาที่ไม่มีบริบท

1
การเปรียบเทียบทางทฤษฎีภาษาของ LL และไวยากรณ์กรัม
ผู้คนมักบอกว่าตัวแยกวิเคราะห์LR (k)นั้นมีพลังมากกว่าตัวแยกวิเคราะห์LL (k) ข้อความเหล่านี้ส่วนใหญ่คลุมเครือ โดยเฉพาะอย่างยิ่งเราควรเปรียบเทียบคลาสสำหรับคงที่หรือสหภาพกับkทั้งหมดหรือไม่ ดังนั้นสถานการณ์เป็นอย่างไร โดยเฉพาะอย่างยิ่งฉันสนใจที่ LL (*) จะเข้ากันได้อย่างไรkkkkkk เท่าที่ฉันรู้ชุดของตัวแยกไวยากรณ์ LL และ LR ที่เกี่ยวข้องนั้นเป็น orthogonal ดังนั้นให้เราพูดถึงภาษาที่สร้างขึ้นโดยชุดของไวยากรณ์ที่เกี่ยวข้อง ให้แสดงถึงระดับของภาษาที่สร้างขึ้นโดยไวยากรณ์ที่สามารถแยกวิเคราะห์โดยตัวแยกวิเคราะห์L R ( k )และคล้ายกับคลาสอื่น ๆL R ( k )LR(k)LR(k)L R ( k )LR(k)LR(k) ฉันสนใจในความสัมพันธ์ต่อไปนี้: L L ( k ) ⊆?L R ( k )LL(k)⊆?LR(k)LL(k) \overset{?}{\subseteq} LR(k) ⋃∞i=1LL(k)⊆?⋃∞i=1LR(k)⋃i=1∞LL(k)⊆?⋃i=1∞LR(k)\bigcup_{i=1}^{\infty} LL(k) \overset{?}{\subseteq} \bigcup_{i=1}^{\infty} LR(k) ⋃∞i=1LL(k)=?LL(∗)⋃i=1∞LL(k)=?LL(∗)\bigcup_{i=1}^{\infty} …

8
จะพิสูจน์ภาษาได้อย่างไร?
มีหลายวิธีในการพิสูจน์ว่าภาษาไม่ปกติแต่ฉันต้องทำอย่างไรเพื่อพิสูจน์ว่าภาษาบางอย่างเป็นปกติ ตัวอย่างเช่นหากฉันได้รับเป็นปกติฉันจะพิสูจน์ได้อย่างไรว่าต่อไปนี้เป็นปกติเช่นกันL ′LLLL′L′L' L′:={w∈L:uv=w for u∈Σ∗∖L and v∈Σ+}L′:={w∈L:uv=w for u∈Σ∗∖L and v∈Σ+}\qquad \displaystyle L' := \{w \in L: uv = w \text{ for } u \in \Sigma^* \setminus L \text{ and } v \in \Sigma^+ \} ฉันสามารถวาดออโตเมติก จำกัด แบบไม่มีการกำหนดเพื่อพิสูจน์สิ่งนี้ได้หรือไม่?

2
การกำหนดความสามารถของเครื่องสถานะขั้นต่ำ (หรือแปลกใหม่) เครื่อง
ดูจุดสิ้นสุดของโพสต์นี้สำหรับการชี้แจงเกี่ยวกับคำจำกัดความของ min-heap ออโตมาตา สามารถจินตนาการได้ว่าใช้โครงสร้างข้อมูลที่หลากหลายสำหรับจัดเก็บข้อมูลเพื่อใช้งานโดยเครื่องของรัฐ ตัวอย่างเช่นการกดออโตมาเก็บข้อมูลในสแต็กและเครื่องทัวริงใช้เทป เครื่องแสดงสถานะโดยใช้คิวและเครื่องที่ใช้สองชุดซ้อนกันหรือหลายเทปได้แสดงให้เห็นว่าเทียบเท่ากับกำลังของเครื่องจักรทัวริง ลองนึกภาพเครื่อง min-heap มันทำงานเหมือนกับหุ่นยนต์กดลงโดยมีข้อยกเว้นดังต่อไปนี้: แทนที่จะดูสิ่งสุดท้ายที่คุณเพิ่มลงใน heap คุณจะได้ดูองค์ประกอบที่เล็กที่สุดเท่านั้น (ด้วยการสั่งซื้อที่กำหนดไว้ตามเครื่องต่อเครื่อง) ที่อยู่บนฮีป แทนที่จะเอาสิ่งสุดท้ายที่คุณเพิ่มลงใน heap ออกคุณจะได้เพียงแค่ลบหนึ่งในองค์ประกอบที่เล็กที่สุด (ด้วยการเรียงลำดับที่กำหนดไว้ตามเครื่องต่อเครื่อง) ใน heap แทนที่จะเพิ่มองค์ประกอบเข้าไปที่ด้านบนของ heap คุณสามารถเพิ่มองค์ประกอบเข้ากับ heap ได้เท่านั้นโดยตำแหน่งของมันจะถูกกำหนดตามองค์ประกอบอื่น ๆ ใน heap (โดยมีการเรียงลำดับที่กำหนดไว้ในแต่ละเครื่อง) เครื่องนี้สามารถยอมรับภาษาปกติทั้งหมดเพียงแค่ไม่ใช้ฮีป นอกจากนี้ยังสามารถรับภาษาโดยการเพิ่ม's ไปกอง และลบ 'ออกจาก heap เมื่อมันอ่าน ' สามารถยอมรับภาษาที่ไม่มีบริบทอื่น ๆ ได้หลากหลาย อย่างไรก็ตามมันไม่สามารถยอมรับได้เช่น (ระบุโดยไม่มีการพิสูจน์) แก้ไข: หรือสามารถ ฉันไม่คิดว่าจะทำได้ แต่ฉันแปลกใจมาก่อนและฉันแน่ใจว่าฉันจะประหลาดใจเมื่อสมมติฐานของฉันทำให้ฉันเป็น ...{anbn∈{a,b}∗∣n≥0}{anbn∈{a,b}∗∣n≥0}\displaystyle \{a^{n}b^{n} \in \{a, …

1
แสดงว่า {xy ∣ | x | = | y |, x ≠ y} ไม่มีบริบท
ฉันจำคำถามต่อไปนี้เกี่ยวกับภาษาที่คาดคะเนได้ว่าเป็นบริบท แต่ฉันไม่สามารถหาหลักฐานของความจริงได้ ฉันอาจนำคำถามนี้ไปใช้ผิดครั้งหรือไม่? อย่างไรก็ตามนี่คือคำถาม: แสดงว่าภาษาไม่มีบริบทL={xy∣|x|=|y|,x≠y}L={xy∣|x|=|y|,x≠y}L = \{xy \mid |x| = |y|, x\neq y\}

1
ความแตกต่างระหว่างอัลกอริทึมภาษาและปัญหาคืออะไร?
ดูเหมือนว่าในเว็บไซต์นี้ผู้คนมักจะแก้ไขข้อผิดพลาดอื่น ๆ สำหรับ "อัลกอริทึม" และ "ปัญหา" ความแตกต่างระหว่างสิ่งเหล่านี้คืออะไร? ฉันจะรู้ได้อย่างไรว่าฉันควรพิจารณาอัลกอริทึมและการพิจารณาปัญหาอย่างไร และสิ่งเหล่านี้เกี่ยวข้องกับแนวคิดของภาษาในทฤษฎีภาษาที่เป็นทางการได้อย่างไร

2
มีภาษาที่ไม่มีบริบทที่คลุมเครือและไม่แน่นอนหรือไม่
ให้เราเรียกใช้ภาษาที่ไม่มีบริบทถ้าหากมันสามารถได้รับการยอมรับจากหุ่นยนต์แบบกดลงที่กำหนดได้และเป็นอย่างอื่น ให้เราเรียกภาษาที่ปราศจากบริบทโดยเนื้อแท้ถ้าหากไวยากรณ์ไวยากรณ์ที่ไม่ใช้บริบททั้งหมดที่สร้างภาษานั้นคลุมเครือและไม่คลุมเครือเป็นอย่างอื่น ตัวอย่างของภาษาที่กำหนดขึ้นมาอย่างไม่แน่นอนคือภาษา: ตัวอย่างของภาษา nondeterministic ไม่กำกวมคือภาษา: { w ∈ { a , b } ∗ | w = w R }{ anขn∈ { a , b }* * * *| n≥0}{anbn∈{a,b}∗|n≥0}\{a^{n}b^{n} \in \{a, b\}^{*} | n \ge 0\}{w∈{a,b}∗|w=wR}{w∈{a,b}∗|w=wR}\{w \in \{a, b\}^{*} | w = w^{R}\} จากวิกิพีเดียตัวอย่างของภาษาที่ไม่มีบริบทที่คลุมเครือโดยเนื้อแท้คือการรวมกันของภาษาที่ไม่ใช้บริบทต่อไปนี้ซึ่งจะต้องปราศจากบริบท: L={anbmcmdn∈{a,b,c,d}∗|n,m≥0}∪{anbncmdm∈{a,b,c,d}∗|n,m≥0}L={anbmcmdn∈{a,b,c,d}∗|n,m≥0}∪{anbncmdm∈{a,b,c,d}∗|n,m≥0}L = \{a^{n}b^{m}c^{m}d^{n} \in …

9
ความสำคัญของภาษาตามบริบท (ประเภท 1) คืออะไร
เห็นได้ว่าในรัฐChomsky Hierarchy Type 3 สามารถรับรู้โดยเครื่องของรัฐที่ไม่มีหน่วยความจำภายนอก (เช่นเครื่อง จำกัด อัตโนมัติ), Type 2 โดยเครื่องของรัฐที่มีสแต็กเดียว (เช่นเครื่องกดลง) และ Type 0 โดย เครื่องรัฐที่มีสองกอง (หรือเทียบเท่าเทปเช่นเดียวกับกรณีของทัวริงเครื่อง) ภาษาประเภท 1 พอดีกับภาพนี้ได้อย่างไร และข้อดีอะไรบ้างที่นำมาพิจารณาว่าภาษาไม่เพียง แต่พิมพ์ 0 แต่พิมพ์ 1

2
ทำไมภาษาปกติจึงเรียกว่า 'ปกติ'
ฉันเพิ่งเสร็จสิ้นบทแรกของบทนำสู่ทฤษฎีการคำนวณโดยMichael Sipserซึ่งอธิบายพื้นฐานของขอบเขตออโตมาตา เขากำหนดภาษาปกติเป็นสิ่งที่สามารถอธิบายได้ด้วยออโต้ จำกัด แต่ฉันไม่สามารถหาที่ที่เขาอธิบายได้ว่าทำไมภาษาปกติเรียกว่า "ปกติ" อะไรคือต้นกำเนิดของคำว่า "ปกติ" ในบริบทนี้ หมายเหตุ: ฉันเป็นสามเณรดังนั้นโปรดลองอธิบายอย่างง่าย ๆ !

2
เหตุใด C ประเภทโมฆะจึงไม่คล้ายกับประเภทที่ว่าง / ด้านล่าง
Wikipedia ตลอดจนแหล่งข้อมูลอื่น ๆ ที่ฉันได้พบรายการvoidประเภทC เป็นหน่วยประเภทซึ่งตรงข้ามกับประเภทที่ว่างเปล่า ฉันพบว่ามันสับสนเพราะฉันคิดว่าvoidเหมาะกับนิยามของประเภทที่ว่าง / ล่าง ไม่มีค่านิยมใด ๆ อยู่voidเท่าที่ฉันจะบอกได้ ฟังก์ชั่นที่มีประเภทคืนค่าเป็นโมฆะระบุว่าฟังก์ชั่นจะไม่ส่งคืนสิ่งใดดังนั้นจึงสามารถทำงานได้เพียงผลข้างเคียงเท่านั้น ตัวชี้ชนิดvoid*เป็นชนิดย่อยของชนิดตัวชี้อื่นทั้งหมด นอกจากนี้การแปลงไปยังและจากvoid*ใน C นั้นเป็นนัย ผมไม่แน่ใจว่าถ้าจุดสุดท้ายมีบุญใด ๆ ที่เป็นข้อโต้แย้งสำหรับvoidการเป็นประเภทที่ว่างเปล่าเป็นมากหรือน้อยเป็นกรณีพิเศษที่มีความสัมพันธ์ไม่มากที่จะvoid*void ในทางกลับกันvoidตัวมันเองไม่ใช่ประเภทย่อยของประเภทอื่นทั้งหมดซึ่งเท่าที่ฉันสามารถบอกได้ว่าเป็นข้อกำหนดสำหรับประเภทที่จะเป็นประเภทด้านล่าง
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

1
Asymptotics ของจำนวนคำในภาษาปกติของความยาวที่กำหนด
สำหรับภาษาปกติLLLให้cn(L)cn(L)c_n(L)เป็นจำนวนคำในLLLความยาวnnnnใช้จอร์แดนรูปแบบที่ยอมรับ (นำไปใช้กับเมทริกซ์การเปลี่ยนแปลง unannotated ของ DFA บางอย่างสำหรับLLL ) หนึ่งสามารถแสดงให้เห็นว่าใหญ่พอnnn , cn(L)=∑i=1kPi(n)λni,cn(L)=∑i=1kPi(n)λin, c_n(L) = \sum_{i=1}^k P_i(n) \lambda_i^n, ที่มี ชื่อพหุนามแบบซับซ้อนและPiPiP_iλiλi\lambda_i"ค่าลักษณะเฉพาะ" ที่ซับซ้อน (สำหรับขนาดเล็กเราอาจมีข้อกำหนดเพิ่มเติมของแบบฟอร์มโดยที่คือถ้าและอย่างอื่นสิ่งเหล่านี้สอดคล้องกับบล็อกของจอร์แดนที่มีขนาดอย่างน้อยมีค่าลักษณะเฉพาะ )nnnCk[n=k]Ck[n=k]C_k[n=k][n=k][n=k][n=k]111n=kn=kn=k000k+1k+1k+1000 การแสดงนี้ดูเหมือนจะบ่งบอกว่าถ้าเป็นอนันต์แล้ว asymptotically,สำหรับบาง 0 อย่างไรก็ตามนี่เป็นความเท็จอย่างชัดแจ้ง: สำหรับภาษามากกว่าของทุกคำที่มีความยาวเท่ากันแต่ . นี้แสดงให้เห็นว่าบางและสำหรับทั้งหมดทั้งสำหรับขนาดใหญ่พอหรือA} นี่คือการพิสูจน์ในFlajolet & SedgewickLLLcn(L)∼Cnkλncn(L)∼Cnkλnc_n(L) \sim C n^k \lambda^nC,λ>0C,λ>0C,\lambda>0LLL{0,1}{0,1}\{0,1\}c2n(L)=22nc2n(L)=22nc_{2n}(L) = 2^{2n}c2n+1(L)=0c2n+1(L)=0c_{2n+1}(L) = 0ddda∈{0,…,d−1}a∈{0,…,d−1}a \in \{0,\ldots,d-1\}cdm+a(L)=0cdm+a(L)=0c_{dm+a}(L) = 0mmmcdm+a∼Ca(dm+a)kaλdm+aacdm+a∼Ca(dm+a)kaλadm+ac_{dm+a} \sim C_a (dm+a)^{k_a} \lambda_a^{dm+a} (ทฤษฎีบท V.3) ซึ่งเป็นผู้พิสูจน์ข้อพิสูจน์ของ Berstel …

6
การสร้างชุดค่าผสมจากชุดคู่โดยไม่มีการทำซ้ำองค์ประกอบ
ฉันมีชุดของคู่ แต่ละคู่เป็นรูปแบบ (x, y) เช่นว่า x, y [0,n)เป็นจำนวนเต็มจากช่วง ดังนั้นถ้า n คือ 4 ดังนั้นฉันมีคู่ต่อไปนี้: (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) ฉันมีคู่แล้ว ตอนนี้ฉันต้องสร้างชุดค่าผสมโดยใช้n/2คู่ที่ไม่มีจำนวนเต็มซ้ำ (กล่าวอีกอย่างหนึ่งว่าจำนวนเต็มแต่ละค่าปรากฏอย่างน้อยหนึ่งครั้งในชุดค่าผสมสุดท้าย) ต่อไปนี้เป็นตัวอย่างของชุดค่าผสมที่ถูกต้องและไม่ถูกต้องเพื่อความเข้าใจที่ดีขึ้น 1. (0,1)(1,2) [Invalid as 3 does not occur anywhere] 2. (0,2)(1,3) [Correct] 3. (1,3)(0,2) [Same as 2] มีคนแนะนำฉันถึงวิธีในการสร้างชุดค่าผสมที่เป็นไปได้ทั้งหมดเมื่อฉันมีคู่

2
จะพิสูจน์ได้อย่างไรว่าภาษาไม่มีบริบท
มีเทคนิคมากมายที่จะพิสูจน์ว่าภาษาไม่ได้เป็นแบบไม่มีบริบท แต่ฉันจะพิสูจน์ได้อย่างไรว่าภาษานั้นไม่มีบริบท มีเทคนิคอะไรที่จะพิสูจน์ได้? เห็นได้ชัดว่าวิธีหนึ่งคือการแสดงไวยากรณ์ที่ไม่มีบริบทสำหรับภาษา มีเทคนิคใด ๆ ที่เป็นระบบเพื่อค้นหาไวยากรณ์ที่ไม่มีบริบทสำหรับภาษาที่กำหนดหรือไม่ สำหรับภาษาที่ปกติมีมี วิธีการที่เป็นระบบที่จะได้รับเป็นประจำไวยากรณ์ / จำกัด รัฐหุ่นยนต์: ตัวอย่างเช่น Myhill-Nerode ทฤษฎีบทมีวิธีหนึ่ง มีเทคนิคที่สอดคล้องกันสำหรับภาษาที่ไม่มีบริบทหรือไม่ แรงจูงใจของฉันที่นี่คือ (หวังว่า) สร้างคำถามอ้างอิงที่มีรายการเทคนิคที่มักจะเป็นประโยชน์เมื่อพยายามพิสูจน์ว่าภาษาที่กำหนดไม่มีบริบท เนื่องจากเรามีคำถามมากมายที่นี่ซึ่งเป็นกรณีพิเศษของสิ่งนี้มันจะดีถ้าเราสามารถบันทึกแนวทางทั่วไปหรือเทคนิคทั่วไปที่เราสามารถใช้เมื่อเผชิญกับปัญหาแบบนี้

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