Questions tagged «pushdown-automata»

有关带有单个堆栈的状态机的问题。它们代表了无上下文语言的类别。


2
是否有天生的模棱两可和确定性的上下文无关语言?
当且仅当确定性下推式自动机可以接受上下文无关的语言时,我们才将其称为确定性语言,否则将其称为不确定性。 当且仅当生成该语言的所有无上下文语法都模棱两可,否则,我们才将上下文无关的语言固有地称为歧义。 确定性,明确语言的示例是以下语言: 一种不确定的,明确的语言的示例是以下语言: { 瓦特∈ { 一个,b } * | w = w R }{ añbñ∈ { a ,b }∗| Ñ≥0}{一种ñbñ∈{一种,b}∗|ñ≥0}\{a^{n}b^{n} \in \{a, b\}^{*} | n \ge 0\}{ 瓦特∈ { 一个,b }∗| w= w[R}{w∈{一种,b}∗|w=w[R}\{w \in \{a, b\}^{*} | w = w^{R}\} 在Wikipedia中,固有的模棱两可的上下文无关语言的一个示例是以下上下文无关语言的联合,它们也必须是上下文无关的: L = { añb米C米dñ∈ { a ,b …

3
汉明距离等于或大于2的等长单词对的语言是否与上下文无关?
以下语言上下文是否免费? L={uxvy∣u,v,x,y∈{0,1}+,|u|=|v|,u≠v,|x|=|y|,x≠y}L={uxvy∣u,v,x,y∈{0,1}+,|u|=|v|,u≠v,|x|=|y|,x≠y}L = \{ uxvy \mid u,v,x,y \in \{ 0,1 \}^+, |u| = |v|, u \neq v, |x| = |y|, x \neq y\} 如sdcvvc所指出的,该语言中的单词也可以描述为汉明距离为2或更大的两个相同长度单词的串联。 我认为它不是上下文无关的,但是我很难证明这一点。我尝试将此语言与常规语言(例如)相交, 然后使用抽引引理和\或同态性,但是我总是得到一种过于复杂的语言,难以描述和编写下。 0∗1∗0∗1∗ 0∗1∗0∗1∗ \ 0^*1^*0^*1^*


1
下推式自动机是否可以识别给定的常规语言是否可以确定?
两个下推自动机是否识别相同语言的问题尚不确定。下推式自动机是否识别空语言的问题是可以确定的,因此也可以确定是否可以识别给定的有限语言。下推式自动机接受的语言是否正常是不确定的。但是... ...是否可以确定下推式自动机是否可以识别给定的常规语言? 如果答案是否定的,如果给定的常规语言的星星高度为 111,是否可以确定问题?

1
我想知道如果这甚至可能的,因为{anbncn∣n≥0}∉CFL{anbncn∣n≥0}∉CFL\{a^n b^n c^n \mid n \geq 0\} \not\in \mathrm{CFL}。因此,一个PDA,可以区分词w∈{anbncn∣n≥0}w∈{anbncn∣n≥0}w\in\{a^n b^n c^n \mid n \geq 0\}从其余{a∗b∗c∗}{a∗b∗c∗}\{a^*b^*c^*\}倒不如接受它,这听起来矛盾给我。 我想我需要利用PDA的不确定性,但是我没有主意。如果您能提供一些建议,我将不胜感激。

4
下推自动机“猜测”-这是什么意思?
我意识到非确定性下推自动机可以比确定性下推自动机更好,因为它们可以在多个状态之间“选择”,并且有一些上下文无关的语言无法被确定性下推所接受。 不过,我不知道他们到底是如何 “选择”的。例如,对于palindormes,我发现的每个来源都只是说自动机“猜测”了单词的中间部分。这意味着什么? 我可以想到几种可能的含义: 它随机进入一种状态,因此可能不接受实际上是该语言中的单词 它以某种“一切可能的方式”进行,因此,如果第一个错误,它将测试另一个是否正确 我不知道某种机制,它选择单词的中间,因此不是随机的,但是自动机总是找到正确的中间。 这只是一个例子。我想知道的是,对于具有一个以下多个状态且位于同一状态之前的自动机,它是如何工作的。

1
计算两个NPDA的交点
不赞成拉斐尔关于两个NPDA相交的建议: 让和 NPDA分别用于上下文无关的语言和。假设我们知道,是上下文无关,我们可以(有效地)构造NPDA用于?阿2 大号1 大号2大号= 大号1 ∩ 大号2甲大号一种1个A1A_1一种2A2A_2大号1个L1L_1大号2L2L_2L = L1个∩ 大号2L=L1∩L2L = L_1 \cap L_2一种AA大号LL 任何类型的算法都是可以接受的,但是越实用越好。

2
正则表达式语言是否需要下推自动机进行解析?
我想将用户输入的正则表达式转换为NFA,以便随后可以对字符串运行NFA以进行匹配。可用于解析正则表达式的最低机器是什么? 我认为它必须是下推式自动机,因为方括号的含义意味着需要计数,而DFA / NFA不能执行任意计数。这个假设正确吗?例如,表达式a(bc *)d需要使用PDA,以便正确处理括号中的子表达式。

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 } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
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 

1
如何证明PDA中不需要ε环?
在我们对堆自动机的调查中,我想证明一个特定的变体不能接受非上下文敏感的语言。由于我们没有等效的语法模型,因此我需要一个仅使用自动机的证明。因此,我必须证明可以通过LBA(或等效模型)来模拟堆自动机。 我希望证明的工作原理类似于显示下推自动机接受上下文相关语言的子集。但是,我知道的所有证据都是通过 使用语法-根据定义,这里的事实很明显-或 令人难以置信的含糊不清(例如here)。 我的问题是PDA(res.HA)可能包含周期,可能会将符号写入堆栈(resp.heap)。LBA无法模拟此类循环的任意迭代。从语法获得的乔姆斯基层次结构中,我们知道εε\varepsilon 每种与上下文无关的语言都有一个循环PDA或εε\varepsilon 模拟LBA可以防止太频繁地迭代周期。εε\varepsilon 直观地讲,这很清楚:这样的周期与输入无关地写入符号,因此堆栈(堆)内容仅在周期长度内保持线性的信息量(暂时不考虑重叠周期)。另外,除了使用另一个循环之外,您没有办法(如果需要)再次清除这些内容。从本质上讲,如果重复多次,则此类循环不会有助于处理输入,因此它们不是必需的。εε\varepsilon 如何严格/正式地提出这一论点,尤其是考虑到重叠的循环?εε\varepsilon

1
非确定性图腾机中的非确定性是否与有限自动机和下推自动机不同?
假设输入字符串为。然后,如果某个NFA当前处于状态(并且已读取输入的最大字母),则在读取下一个输入符号之前,如果存在以下转换,则NFA会分成两个NFA,一个处于状态,另一个处于。类型。如果存在类型为,其中是NFA的某些状态,那么记住状态另一个NFA 直到读取输入直到字母 ř 瓦特我 ř 小号ř ε →交通小号ř ε →交通小号ε →交通 q 1。。。。ϵ → q k ϵ → r q i r w i r w i r ϵ ,ϵ → a → s ϵ ,ϵ → a → q 1w1w2...wnw1w2...wnw_1w_2...w_nrrrwiwiw_irrrsssr →ϵsr→ϵsr \xrightarrow{\epsilon} sr →ϵs →ϵq1个。。。。→ϵqķ→ϵ[Rr→ϵs→ϵq1....→ϵqk→ϵrr \xrightarrow{\epsilon} s \xrightarrow{\epsilon} q_1....\xrightarrow{\epsilon} …


3
如果是上下文无关的并且是规则的,那么是上下文无关的吗?
我无法解决下一个练习: 认为如果LLL是上下文无关的并且RRR是规则的,则L/R={w∣∃x∈Rs.twx∈L}L/R={w∣∃x∈Rs.twx∈L}L / R = \{ w \mid \exists x \in R \;\text{s.t}\; wx \in L\} (即右商)与上下文无关。 我知道应该存在一个接受L的PDA LLL和接受R的DFA RRR。我现在正在尝试将这些自动机结合到接受正确商数的PDA上。如果可以证明我证明了L/RL/RL/R是无上下文关系的。但是我一直在建造这款PDA。 这是我取得的成就: 在组合的PDA中,状态是单独的自动机状态的笛卡尔积。边缘是DFA的边缘,但是只有将来可以达到L原始PDA最终状态的边缘。但是不知道如何正式写下来。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.