automata - Pumping 引理中的 'pumping length' 到底是什么?

标签 automata pumping-lemma

我试图了解在 Pumping 引理的每个应用程序中使用的这个“神奇”数字“n”是什么。经过几个小时的研究,我来到了以下网站:http://elvis.rowan.edu/~nlt/TheoryNotes/PumpingLemma.pdf

它指出

n is the longest a string can be without having a loop. The biggest n can be is s, though it might be smaller for some particular language.



据我了解,如果存在语言 L,那么 L 的泵送长度是识别 L 的有限状态自动机中的状态数量。这是真的吗?

如果是这样,那么上面的最后一行究竟是什么意思“尽管对于某些特定语言来说它可能更小”?我脑子里一团糟。有大佬能解一下吗?

最佳答案

一个国家不承认一种语言。 DFA 通过完全接受语言中的单词集而不接受其他语言来识别语言。 DFA 有许多状态。

如果存在可以通过泵引理建模的正则语言 L,它将具有属性 n。

对于具有 s 个状态的 DFA,为了接受 L,s 必须 >= n。

最后一行仅说明在某些语言中 s 大于 n,而不是相等。

这可能更适合 https://cstheory.stackexchange.com/https://cs.stackexchange.com/ (不太确定我自己的值(value))。

备注 : 简单地说,并非所有具有足够状态的 DFA 都会接受该语言。此外,语言通过抽水引理这一事实并不意味着它是规则的(但失败意味着绝对不是)。

另请注意,FA 和 DFA 之间的语言变化 - 这有点松懈,但由于 NDFA 与 DFA 具有相同的功能,而且 DFA 更易于编写和理解,因此使用 DFA 进行证明。

编辑 我将举一个常规语言的例子,这样你就可以看到 u、v、w、z 和 n 的概念。然后我们将讨论 s。

L = xy^nz, n > 2 (i.e. xyyz, xyyyz, xyyyyz)
u = xy
v = y
w = z
n = 4

因此:
|z| = 3: xyz  (i = 0) Not in L, but |z| < n
|z| = 4: xyyz (i = 1)
|z| = 5: xyyyz (i = 2)
etc

因此,它由泵引理建模。 DFA 至少需要 4 个状态。所以让我们想一个。
 -> State 1: x

State 1:
  -> State 2: y

State 2:
  -> State 3: y

State 3:
  -> State 3: y
  -> State 4: z

State 4:
  Accepting state
  Terminating state

4 个状态,正如预期的那样。不可能像 n = 4 所预期的那样用更少的时间来完成。在这种情况下,这个例子非常简单,所以我认为你不能构建一个具有超过 4 个状态的状态(但如果需要的话也可以) .

关于automata - Pumping 引理中的 'pumping length' 到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18423903/

相关文章:

css - FSA 接受的无 epsilon 转换的语言联盟

regular-language - 抽引引理(普通语言)

regex - 证明 L ={ ww^R : w ∈ Σ*} is not regular by using Pumping Lemma

infinite - 表明语言是无限的

string - 使用 Ogden’s Lemma 与常规 Pumping Lemma 进行上下文无关语法

automata - 以下 CFL 和非 CFL 的并集是 CFL 本身吗?

regex - 计算机是否可以通过用户提供的示例将 "learn"转换为正则表达式?

c++ - 根据条件 C++ 从 vector 中复制元素

grammar - 我如何构建生成这种语言的语法?

math - 确保: Pumping lemma for infinite regular languages only?