我正在学习解析的代数理论。我的第一个问题是确定特定于形式语言理论的半环示例。这是尝试构造两个示例。
1给定CNF语法,半环的元素是带有操作的终端和非终端符号集:
i)乘法,根据CYK规则将两个集合成对连接。例如给定的CNF语法
s: p p | q r
t: p q
u: q q
然后
{ p ,q,r } ⊗ { p ,r } = { s ,t }
ii)加法设置为并集,例如
{ p ,q} ⊕ { q,r } = { p ,q,r }
不幸的是,乘法不是关联的。
2第二个半圆环的元素不是符号集,而是语法规则(不一定在CNF中),并对其位置进行了修改。操作是
i)乘法,根据Earley完整规则连接所有匹配的元素对。例如给定的CNF语法
s: p q r
r: s t | u
然后
{ s :p ∙ q[R ,š :p q∙ r } ⊗ { r :u ∙ } = { s :p qr ∙ }
ii)加法还是集合的并集
{ s :p ∙ qr ,r :∙ s t } ⊕ { r :u ∙ } = { s :p ∙ qr ,r :∙ s t ,r :u ∙ }
这个例子也是有缺陷的。
将元素作为语法规则集并将乘法作为规则替换的半圆环似乎可以正常工作。然而,这只是变相的关系代数。实际上,让我们将每个语法规则视为等价类-一组由规则的应用程序相关的由末尾字母组成的单词对
[ 吨:小号一个] = { (吨,š 一),(吨一个,š 一个一),(b 吨,b 小号一),(一个b 吨,一个b 小号一个),。。。}
那么,语法中单词的识别是一系列关系组成的,例如
[ t :s a ] ⊗ [ s :a a ] ⊗ { (a a a ,a a a )} = { (t ,a a a )}
(此多项式让人联想到Josh Goodman博士论文中的半环解析器多项式;但是,让我们重申,通过采用多项式和矩阵构造新的半环在这里并不重要)。
因此,问题仍然存在:形式语言的半圆环是否超过字母Σ 唯一的例子?