有限语言的 Kleene 星什么时候是免费的?

When is the Kleene star of a finite language free?

我正在寻找提供解决此问题的算法的参考资料:

问题:给定一个有限的字母表 Σ 和一个有限的语言 L ⊆ Σ* ,判断L* 是否为自由幺半群

等价地,问题是在给定一组有限的字符串的情况下,确定这些字符串的每个串联是否都可以使用相同的字符串进行唯一分解。例如,任何字符串大小都相同的语言都满足这个条件,语言 L = {a, ba} 也是如此,但是语言 L = {ab, ba, aba} 不满足条件,因为字符串 ababa 可以分解为 ab abaaba ba.

这个问题等价地表述为:什么时候 L a code over Σ?

确定这一点的标准算法是 Sardinas-Patterson algorithm,发表于 1953 年。

Berstel 和 Perren 的 代码理论 book review by Juhani Karhumäki(Bulletin of the AMS,第 17 卷第 1 期,第 161-167 页,1987 年)中有一个有趣的讨论(理论与应用数学第 117 卷,学术出版社,纽约,1985 年)