Étant donné les langues et , disons que leur concaténation est sans ambiguïté si pour tous les mots , il y a exactement une décomposition avec et , et ambiguë sinon. (Je ne sais pas s'il existe un terme établi pour cette propriété - chose difficile à rechercher!) Comme exemple trivial, la concaténation de avec elle-même est ambiguë ( ), mais la concaténation de { a } avec elle-même est sans ambiguïté.
Existe-t-il un algorithme pour décider si la concaténation de deux langues régulières est sans ambiguïté?
Réponses:
Astuce: étant donné les DFA pour et B , construisez un NFA qui accepte les mots dans A B ayant au moins deux décompositions différentes. Le NFA conserve une trace de deux copies du NFA standard pour A B (formé en joignant les DFA pour A et B avec ϵ transitions), garantissant que le passage de A à B se produit à deux points différents.A B AB AB A B ϵ A B
la source
Mise à jour (merci à Yuval Filmus).
Étant donné deux langues et Y de A ∗ , soit X - 1 YX Y A∗
Je prétends queXYest sans ambiguïté si et seulement si la langueX-1X∩YY-1∩A+est vide.
Preuve . Supposons que soit ambigu. Ensuite , il existe un mot u qui a deux décompositions sur X Y , par exemple u = x 1 y 2 = x 2 y 1 , où x 1 , x 2 ∈ X et y 1 , y 2 ∈ Y . Sans perte de généralité, nous pouvons supposer que x 1 est un préfixe de x 2 , c'est-à-dire x 2 = xXY u XY u=x1y2=x2y1 x1,x2∈X y1,y2∈Y x1 x2 x2=x1z for some z∈A+ . It follows that u=x1y2=x1zy1 , whence y2=zy1 . Thus z∈X−1X∩YY−1 .
IfX and Y are regular, then both X−1X and YY−1 are regular and thus X−1X∩YY−1 is also regular (see Yuval's answer for an automaton accepting this language).
la source