Cette nouvelle version - où - est décidable.K=K′
Montrons que le langage est un CFL. Ensuite, la décidabilité découle de la décidabilité du vide d'un CFL.L:=⋃k≥1(Ak ∩ Bk)
Nous allons concevoir un PDA pour accepter . En entrée , ce PDA va essayer de construire deux factorisation de , un en utilisant des mots de , et les autres en utilisant des mots . Il utilisera un compteur sur la pile pour s'assurer que ces deux factorisations sont de la même longueur. Conceptuellement, je ferai référence à la factorisation de dans la mesure où il est assis au-dessus de et à la factorisation comme à la position assise au bas de . La pile contiendra alors compteurs si la valeur absolue de la différence du nombre de mots appariés en haut, moins le nombre de mots en bas, estx x A B A x x B x n n n A BLxxABAxxBxnn . Nous avons besoin d'un autre état du PDA pour enregistrer ce que le signe approprié correspond à (qui nous indique si la factorisation est plus longue que la factorisation , ou vice versa).nAB
En parcourant les lettres de , nous devinons de façon non déterministe un mot de et un mot de auxquels commence cette lettre. Une fois que nous avons deviné, nous nous engageons à faire correspondre le reste de et avec ; si à tout moment notre match échoue, nous nous arrêtons dans ce choix non déterministe. Nous conservons donc également, dans l'état de notre PDA, le suffixe de et qui reste à faire correspondre.t A u B t u x t uxtAuBtuxtu
Au fur et à mesure que nous numérisons d'autres lettres, nous continuons à faire correspondre jusqu'à ce que nous atteignions la fin de ou la fin de (ou les deux). Lorsque nous frappons la fin d'un mot, nous mettons à jour la pile de manière appropriée, puis devinons un nouveau mot à faire correspondre en haut ou en bas (ou les deux).utu
Nous acceptons si les suffixes restant à faire correspondre sont tous les deux vides en haut et en bas, et la pile ne contient aucun compteur.
Nous pouvons construire ce PDA efficacement, afin que nous puissions effectivement décider s'il accepte quelque chose ou non (par exemple, en convertissant efficacement en grammaire et en utilisant ensuite la méthode habituelle pour voir si G génère quelque chose).G
Edit: On peut également transformer cela en une limite supérieure sur la taille de peut être, dans le pire des cas. Je pense qu'il devrait donner une limite supérieure de quelque chose à peu près comme , où est la somme des longueurs des mots et .2 O ( l 2 ) l A Bk2O(l2)lAB
Edit: je vois maintenant que l'exigence que et soient des ensembles finis peut également être assouplie, à l'exigence que et soient réguliers (éventuellement infinis). Dans ce cas, au lieu de conserver le suffixe restant à mettre en correspondance en "haut" et "en bas", nous conservons plutôt les états du DFA respectif dans lequel nous nous trouvons, après avoir traité le préfixe d'un mot correspondant possible. Si nous atteignons un état final en «haut» ou «bas», nous pouvons choisir de manière non déterministe de revenir à l'état initial pour un nouveau mot deviné. B A BABAB