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

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

1
เราสามารถตัดสินใจได้อย่างรวดเร็วว่า DFA ที่ให้มามีน้อยที่สุดหรือไม่
การ จำกัด ขอบเขตของออโตมาตา (DFAs) ที่ลดลงอย่างน้อยเป็นปัญหาที่ได้รับการศึกษาอย่างละเอียดในวรรณคดีและมีการเสนออัลกอริทึมหลายอย่างเพื่อแก้ปัญหาดังต่อไปนี้: ให้ DFA , คำนวณ DFA ที่สอดคล้องกัน{A} อัลกอริทึมส่วนใหญ่ทำงานในเวลาพหุนามAAA\mathscr{A}AA\mathscr{A} อย่างไรก็ตามฉันสงสัยว่าตัวแปรการตัดสินใจของปัญหานี้ - "ให้ DFA ,น้อยที่สุดหรือไม่" - สามารถแก้ไขได้อย่างมีประสิทธิภาพมากกว่าการคำนวณออโตเมติกน้อยที่สุด เห็นได้ชัดว่าสิ่งนี้สามารถทำได้อย่างมีประสิทธิภาพโดยการรันอัลกอริธึมการปรับแต่งพาร์ติชันของ Hopcroftแล้วตัดสินใจว่าทุกพาร์ติชันมีสถานะเดียวอย่างแม่นยำหรือไม่AAA\mathscr{A}AA\mathscr{A} ดังที่ Yuval Filmus แนะนำไว้ในคำตอบของเขาตัวแปร decidability สามารถแก้ไขได้เร็วขึ้นโดยใช้อัลกอริธึมมาตรฐาน น่าเสียดายที่ฉันไม่สามารถเห็นได้ว่า (ฉันหวังว่าฉันจะไม่พลาดจุดที่ชัดเจนที่นี่) Yuval ชี้ให้เห็นในความคิดเห็นที่นี่ว่าอัลกอริธึมที่รู้จักกันดีที่สุด (อย่างที่กล่าวข้างต้น) ทำงานในเวลาสำหรับตัวอักษรขนาดคงที่ ดังนั้นฉันจึงไม่เพียง แต่สนใจกำไรที่ได้รับอย่างมีนัยสำคัญทาง asymptotically ในขณะที่สิ่งเหล่านี้ดูเหมือนไม่น่าเป็นไปได้ สิ่งที่รบกวนจิตใจฉันมากที่สุดคือฉันไม่สามารถจินตนาการ "ทางลัด" ใด ๆ ที่อาจมาจากความจริงที่ว่าเราสนใจเพียงคำตอบใช่ไม่ใช่คำตอบ - ไม่ใช่แม้กระทั่งทางลัดที่ช่วยให้ประหยัดเวลาเล็กน้อยแบบไม่แสดงอาการ ฉันรู้สึกว่าอัลกอริธึมที่สมเหตุสมผลทุกอย่างที่ตัดสินใจลดจำนวนขั้นต่ำของ DFA นั้นจะต้องลดความเป็นจริงของ DFA ลงและดูว่ามีอะไรเปลี่ยนแปลงในระหว่างกระบวนการหรือไม่O(nlogn )O(nlog⁡n)\mathcal{O}(n …

2
ตัวอย่างของภาษาที่ไม่มีบริบทพร้อมกับการเติมที่ไม่มีบริบท
ภาษาที่ไม่มีบริบทจะไม่ถูกปิดภายใต้การเสริม ในการบรรยายเราได้รับอาร์กิวเมนต์เดียวกันกับที่นี่ใน Wikipedia : สำหรับ A = { anขnคม.; m , n ∈ N 0}และB = { aม.ขnคn; m , n ∈ N 0} ,A={anbncm; m,n∈ℕ0}andB={ambncn; m,n∈ℕ0},A = \{\mathtt a^n \mathtt b^n \mathtt c^m;~m, n ∈ ℕ_0\}\quad\text{and}\quad B = \{\mathtt a^m \mathtt b^n \mathtt c^n;~m, n ∈ ℕ_0\}, ทั้งAAAและBBBปราศจากบริบท แต่การแยกA …

1
อัลกอริทึมในการทดสอบว่าภาษาปกติหรือไม่
มีอัลกอริทึม / ขั้นตอนการทดสอบอย่างเป็นระบบว่าภาษานั้นปกติหรือไม่? กล่าวอีกนัยหนึ่งระบุภาษาที่ระบุในรูปแบบพีชคณิต (คิดว่าบางอย่างเช่น ) ทดสอบว่าภาษาเป็นปกติหรือไม่ ลองนึกภาพเรากำลังเขียนบริการเว็บเพื่อช่วยนักเรียนทำการบ้านทั้งหมด ผู้ใช้ระบุภาษาและบริการบนเว็บตอบกลับด้วย "ปกติ", "ไม่ปกติ" หรือ "ฉันไม่รู้" (เราต้องการให้บริการเว็บตอบ "ฉันไม่รู้" ไม่บ่อยเท่าที่จะเป็นไปได้) มีวิธีใดที่ดีในการทำสิ่งนี้โดยอัตโนมัติหรือไม่? สิ่งนี้สามารถแก้ไขได้หรือไม่? เป็นเรื่องที่ตัดสินใจได้หรือไม่ (คือสามารถรับประกันได้ว่าเราไม่จำเป็นต้องตอบว่า "ไม่รู้" หรือไม่? มีอัลกอริทึมที่มีประสิทธิภาพพอสมควรสำหรับการแก้ปัญหานี้หรือไม่และสามารถให้คำตอบอื่นที่ไม่ใช่ "ไม่รู้"L = { anขn: n ∈ N }L={anขn:n∈ยังไม่มีข้อความ}L=\{a^n b^n : n \in \mathbb{N}\} วิธีคลาสสิกสำหรับการพิสูจน์ว่าภาษาไม่ปกติคือการแทรกบทแทรก อย่างไรก็ตามดูเหมือนว่าต้องมีความเข้าใจคู่มือในบางจุด (เช่นเพื่อเลือกคำที่จะปั๊ม) ดังนั้นฉันไม่ชัดเจนว่าจะกลายเป็นสิ่งที่เป็นอัลกอริทึม วิธีคลาสสิกสำหรับการพิสูจน์ว่าภาษาเป็นเรื่องปกติที่จะใช้ทฤษฎีบท Myhill – Nerode เพื่อให้ได้มาซึ่งสถานะออโตเมติกอัน จำกัด นี่เป็นวิธีที่มีแนวโน้ม แต่จะต้องใช้ความสามารถในการดำเนินการขั้นพื้นฐานกับภาษาในรูปแบบพีชคณิต ไม่ชัดเจนสำหรับฉันว่ามีวิธีที่เป็นระบบในการดำเนินการเชิงสัญลักษณ์ที่จำเป็นสำหรับภาษาในรูปแบบพีชคณิต เพื่อให้คำถามนี้ถูกต้องเราจำเป็นต้องตัดสินใจว่าผู้ใช้จะระบุภาษาอย่างไร …

2
การค้นหาภาษาที่สร้างโดยไวยากรณ์ที่ไม่มีบริบท
นี่คือคำถามจากหนังสือ Dragon (ฉันขอโทษสำหรับความผิดพลาดในการแปลฉันไม่ได้มีเวอร์ชันภาษาอังกฤษอยู่ในมือ): ไวยากรณ์นี้สร้างด้วยภาษาใด S→ a SขS∣ b SS∣ ϵS→aSขS|ขSaS|εS \rightarrow a S b S \mid b S a S \mid \epsilon ฉันไม่รู้ว่าฉันควรทำอะไรที่นี่ คำจำกัดความในหนังสือเกี่ยวกับภาษาบอกว่าสิ่งนี้ (และมันก็สวยมากในบท): ภาษาคือชุดของคำทั้งหมดที่สามารถสร้างได้โดยทรีการแยกวิเคราะห์ใด ๆ ดังนั้นหากฉันต้องการแยกทรี "ใด ๆ " ออกจากไวยากรณ์นี้ฉันสามารถสร้างมันซ้ำ ๆ โดยใช้กฏสองข้อแรก ฉันค้นหาเล็กน้อยและได้รับความประทับใจว่าต้องใช้กฎทุกครั้ง แต่ฉันไม่แน่ใจ มันจะมีประโยชน์มากถ้ามีคนสามารถให้คำแนะนำในการแก้ปัญหาต่าง ๆ เหล่านี้ได้

3
พิสูจน์ได้ง่ายสำหรับภาษาที่ไม่มีบริบทถูกปิดภายใต้การเปลี่ยนแปลงแบบวนรอบ
วงจรกะ (ที่เรียกว่าหมุนหรือผัน ) ของภาษาถูกกำหนดให้เป็น\} ตามวิกิพีเดีย (และที่นี่ ) ภาษาที่ไม่มีบริบทถูกปิดภายใต้การดำเนินการนี้โดยมีการอ้างอิงถึงเอกสารจาก Oshiba และจาก Maslov มีหลักฐานง่าย ๆ ของความจริงข้อนี้?{ y x ∣ x y ∈ L }LLL{yx∣xy∈L}{yx∣xy∈L}\{ yx \mid xy \in L \} สำหรับภาษาทั่วไปการปิดตัวจะถูกกล่าวถึงในแบบฟอร์มนี้เป็น " พิสูจน์ว่าภาษาปกติถูกปิดภายใต้ตัวดำเนินการรอบ "

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 

2
ฉันจะพิสูจน์ได้ว่าภาษานี้ไม่มีบริบทได้อย่างไร
ฉันมีภาษาต่อไปนี้ {0i1j2k∣0≤i≤j≤k}{0i1j2k∣0≤i≤j≤k}\qquad \{0^i 1^j 2^k \mid 0 \leq i \leq j \leq k\} ฉันกำลังพยายามที่จะกำหนดระดับภาษาของ Chomsky ที่เหมาะสม ฉันสามารถดูว่ามันสามารถใช้ไวยากรณ์ไวต่อบริบทได้อย่างไรดังนั้นฉันจึงรู้ว่ามันไวตามบริบทอย่างน้อยที่สุด ดูเหมือนว่าเป็นไปไม่ได้ที่จะสร้างด้วยไวยากรณ์ที่ไม่มีบริบท แต่ฉันมีปัญหาในการพิสูจน์ว่า ดูเหมือนว่าจะผ่านบทแทรก - สูบน้ำเพราะถ้าทั้งหมดถูกวางไว้ในส่วนที่สามของคำใด ๆ (ส่วนที่มีทั้งหมดวินาที) มันสามารถปั๊มและหลายครั้งตามที่คุณต้องการและมันจะอยู่ในภาษานั้น หากฉันผิดคุณสามารถบอกฉันได้ว่าทำไมถ้าฉันพูดถูกฉันยังคงคิดว่าภาษานี้ไม่ใช่บริบทดังนั้นฉันจะพิสูจน์ได้อย่างไร2 v xuvwxyuvwxyuvwxy222vvvxxx

3
วิธีแปลง NFA ด้วยการวนรอบที่ซ้ำซ้อนเป็นนิพจน์ทั่วไป
ถ้าฉันเข้าใจถูกต้อง NFA มีพลังการแสดงออกเช่นเดียวกับการแสดงออกปกติ บ่อยครั้งที่การอ่านการแสดงออกปกติเทียบเท่าจาก NFA นั้นเป็นเรื่องง่าย: คุณแปลวัฏจักรเป็นดวงดาวทางแยกเป็นทางเลือกและอื่น ๆ แต่จะทำอย่างไรในกรณีนี้: [ แหล่งที่มา ] รอบที่ทับซ้อนกันทำให้มองเห็นสิ่งที่หุ่นยนต์นี้ยอมรับได้ยาก (ในแง่ของนิพจน์ทั่วไป) มีเคล็ดลับหรือไม่?

1
การรวมกันของภาษาที่ไม่มีบริบทเป็นสิ่งที่ปราศจากบริบทเสมอหรือไม่?
ให้ , , ,จะเป็นในสายลำดับ Nite ภาษาบริบทของแต่ละคนซึ่งเป็นนิยามมากกว่าตัวอักษรที่พบบ่อยΣ ให้Lเป็นสมาชิกของL_1 , L_2 , L_3 , \ จุด ; เช่นL = L_1 \ ถ้วย L_2 \ ถ้วย L_3 \ ถ้วย \L 2 L 3 ...L1L1L_1L2L2L_2L3L3L_3……\dotsΣΣΣLLLL1L1L_1L2L2L_2L3L3L_3……\dots L=L1∪L2∪L3∪…L=L1∪L2∪L3∪…L = L_1 \cup L_2 \cup L_3 \cup \dots เป็นกรณีที่LLLเป็นภาษาที่ไม่มีบริบทเสมอหรือไม่

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

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

3
ภาษาที่ปราศจากบริบทคืออะไร
ฉันต้องรู้ว่า CFL ในคลาสใดปิดอยู่เช่นชุดใดที่เป็นส่วนเสริมของ CFL ฉันรู้ว่า CFL ไม่ได้ปิดภายใต้ส่วนประกอบและฉันรู้ว่า P ถูกปิดภายใต้ส่วนประกอบ เนื่องจาก CFL PI สามารถพูดได้ว่าส่วนประกอบของ CFL นั้นรวมอยู่ใน P (ใช่ไหม) ยังคงมีคำถามว่าส่วนเติมเต็มของ CFL เป็นส่วนย่อยที่เหมาะสมของ P หรือ P ทั้งหมดฉันขอขอบคุณแนวคิดใด ๆ เกี่ยวกับวิธีแสดงให้เห็นว่าการเติมเต็มของ CFL นั้นเป็น P ทั้งหมด (ถ้าเป็นกรณีนี้)⊊⊊\subsetneq

2
ภาษาที่เกี่ยวข้องกับจำนวนอตรรกยะไม่ใช่ CFL
ฉันทำงานหนักในตำราเรียนและฉันก็ไม่สามารถหาวิธีดำเนินการได้ นี่คือปัญหา สมมติว่าเรามีภาษาL = { a ฉันb j : ฉัน≤ j γ , ฉัน≥ 0 , j ≥ 1 }L={aibj:i≤jγ,i≥0,j≥1}L = \{a^ib^j: i \leq j \gamma, i\geq 0, j\geq 1\}โดยที่γγ\gammaเป็นจำนวนอตรรกยะ ฉันจะพิสูจน์ได้อย่างไรว่าLLLไม่ใช่ภาษาที่ไม่มีบริบท ในกรณีที่ationalγ\gammaมีเหตุผลมันค่อนข้างง่ายที่จะสร้างไวยากรณ์ที่ยอมรับภาษา แต่เนื่องจากγγ\gammaไม่มีเหตุผลฉันจึงไม่รู้จะทำยังไง ดูเหมือนว่าบทแทรกใด ๆ จะทำงานที่นี่ บางทีทฤษฎีบทของ Parikh อาจจะทำงานที่นี่เนื่องจากดูเหมือนว่าสัญชาตญาณดูเหมือนว่าภาษานี้จะไม่มีภาพ Parikh semilinear ประกอบ แบบฝึกหัดนี้มาจาก "หลักสูตรที่สองในภาษาทางการและทฤษฎีออโตมาตา" โดย Jeffrey Shallit แบบฝึกหัด 25 บทที่ …

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

2
วิธีการวัด 'ความเหมือน' ระหว่างไวยากรณ์ FSA หรือไม่
ฉันกำลังทำงานกับอัลกอริธึมการจับคู่รูปแบบที่สร้างออโตเมติกสถานะ จำกัด แบบวนรอบซึ่งยอมรับสตริงข้อความที่กำหนดและสตริงย่อยทั้งหมด อัลกอริทึม FSA กำลังทำงานบนการแสดงสัญลักษณ์ของสตรีมเพลง (เช่นข้อมูล MIDI) สตรีมเพลงได้รับการประมวลผลล่วงหน้าเพื่อแบ่งแต่ละเพลงออกเป็น 'ส่วน' ที่ไม่มีป้ายกำกับ FSA ถูกสร้างขึ้นสำหรับแต่ละกลุ่มในแต่ละเพลงถ้าฉันมีเพลงแต่ละแบ่งออกเป็นปีส่วนฉันจะมีn ⋅ Y FSAs แยกต่างหากnnnYYyn ⋅ yn⋅Yn \cdot y ฉันต้องการเปรียบเทียบ FSA ของแต่ละกลุ่มกับ FSA อื่น ๆ ในคลังข้อมูลของฉัน เป้าหมายสูงสุดคือการทำคลัสเตอร์ในพื้นที่ที่คล้ายคลึงกันและเกิดขึ้นกับ 'คลาส' ของเซ็กเมนต์ตามเมตริกการก่อสร้างที่คล้ายคลึงกัน ดังนั้นสิ่งที่น่าสนใจเป็นพิเศษคือไวยากรณ์ที่ FSA แต่ละรายการกำหนด (ที่สอดคล้องกันอย่างคร่าว ๆ ส่วนประกอบบางส่วนของเนื้อหาดนตรีในเซ็กเมนต์) มีเทคนิคที่อาจดีสำหรับการเปรียบเทียบสิ่งนี้ KL-divergence อยู่ในใจ (เช่นใช้เปรียบเทียบการกระจายข้ามสตริงที่เกี่ยวข้องกับ FSA ที่กำหนด) แม้ว่าอาจมีเทคนิคที่ดีกว่า / มีประสิทธิภาพมากกว่านี้หรือไม่? นอกจากนี้ยังต้องขออภัยหากคำถามนี้เป็นเพียง (1) ง่ายเล็กน้อยหรือ (2) …

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