上下文无关文法(CFG)的渐近密度


9

不明确的 CFG与所有CFG的比率是多少

由于这两个集合都是无穷大的,因此比率不明确。但是渐近密度呢

limn# ambiguous CFG of size<n# CFG of size<n

其中终端和非终端符号来自固定的可计数集合。

语法的大小是语法大小的任何合理概念,例如

  1. 生产规则中变量和终止的总出现次数,或
  2. 变量出现的总数,或
  3. 生产规则总数,或
  4. 不同变量的数量。

(我假设大小的定义不会影响答案。)


3
顺便说一句,在文献中已经考虑了以下CFG大小的概念:关于语法大小的概念,在文献中出现了以下内容。(1)语法中所有产生式两边出现的变量和终止符的总数。(2)语法中所有产生式两边的可变出现次数。(3)语法中的产生数。(4)语法中不同变量的数量。
Martin Berger 2014年

1
例如,参见:S. Ginsburg,N. Lynch,无上下文语法形式的大小复杂度。J. Gruska,关于上下文无关文法的大小。J. Gruska,无上下文语法和语言的复杂性和明确性。A. Kelemenova,范式语法的复杂性。
Martin Berger 2014年

1
@Martin,如果不注意的话,给定大小的语法可能会无限多地存在,并且比率是没有意义的。安全的方法是计算语法的某些固定编码的位长。
Kaveh 2014年

1
您可能想将渐近密度定义为各个数量的对数比率,因为这两个数量都是指数的,可能具有不同的底数。
mobius饺子2014年

1
@MartinBerger假设我们在谈论同一件事,即定义 logdensity=log(#unambiguousCFGs)/log(#CFGs),这显然会影响密度。假设明确CFG的数量为1.5n CFG的数量是 2n,则对数密度为 log1.52而渐近密度为0。我很确定渐近密度将为0或1,但渐近对数密度可能是一个有趣的数字。
mobius饺子2014年

Answers:


4

问题取决于确切的编码。但是,似乎在许多合理的编码中,随着长度趋于无穷大,生产规则的数量Sa (以正确解释起始符号 S 和终端 a)将不止一个具有高可能性;这里我的意思是同一终端a。如果我们认为这是模棱两可的,那么我期望“大多数”语法是模棱两可的。我们还可以编造类似情况,例如规则SSSa 每个都至少出现一次。

假设此一般假设,随着长度趋于无穷大,每个(固定)可想见的规则都应以高概率出现,我们发现“大多数”语法生成 Σ 模棱两可。

例如,考虑以下语法编码 Σ={0,1}。语法字母由符号组成{0,1,;,.}。非终端由长度至少为2的二进制字符串索引。规则由句号分隔。每个规则都是由分号分隔的二进制字符串序列。第一个二进制字符串是左侧的非终结符,其余的字符串(如果有)构成右侧。如果第一个二进制字符串不是非终结符(即ϵ,, 0,1),则假定起始非终止。起始非终端始终为00。

在这种编码下,每个字符串 {0,1,;,.}描述一些语法。随机语法将很可能包含的许多副本.00;00..00;0.,尤其会造成歧义。


是的,我确实考虑了诸如 SSSa(多次出现)在语法中为有效。确实,这使语法变得微不足道。干杯。
user18064 2014年

但是,随着size(CFG)的增加,终端和非终端的数量通常也会增加的情况也并非如此,因此我们需要更多的位来表示它们,因此我们需要更多的位来表示各个规则。因此,出于琐碎原因(例如,只有一个规则适合大小限制)而明确的CFG的数量也会增加。
Martin Berger 2014年

@Martin取决于编码。也许您可以提出一种支持您要求的编码,例如,如果字母大小随语法大小而增长。我的编码使用恒定的字母大小,因此不会发生这种情况。
Yuval Filmus 2014年

@MartinBerger这是关于随着我们增加语法大小而增加终端符号和非终端符号数量的正确点。对于诸如编程语言的用例,这是有道理的。
user18064 2014年

@ user18064编程语言通常使用恒定大小的字母,大多数情况下是ASCII的子集。我不知道任何可以限制字母大小的实用语言,尽管可以轻松定义它们。
Yuval Filmus 2014年
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.