Я не уверен, к чему вы клоните с помощью декартового произведения; это симулирует оба автомата параллельно, что даст вам пересечение. Но вы хотите, чтобы он идентифицировал все слова в которые имеют суффикс из R ! На интуитивном уровне это так.LR
Предположим, что наш вход . Очевидно, мы не можем проверить все возможные продолжения (для принадлежности к R ), но только конечное их число. Комментарий Артема наиболее полезен здесь; мы предполагаем, каким будет суффикс x , и запускаем оба автомата на нем.w∈Σ∗Rx
Пусть и A R - КПК для L и NFA для R соответственно. Построим автомат A следующим образом. На входе ш ∈ Е * , моделировать A L . После того, как ж потребляется, переход к модифицированному пересечения L , R из A L и A R , сохраняя состояние из A L . Теперь решите для каждого перехода недетерминированным образом, какой символ является следующим в виртуальном входе. Принять wALARLRAw∈Σ∗ALwAL,RALARALwтогда и только тогда , когда оба компонента достигают конечного состояния одновременно, то есть , если ш имеет продолжение х , так что ж Купить ∈ L и X ∈ R .AL,Rwxwx∈Lx∈R
Вы также можете использовать формальные грамматики. Видите ли вы, как вы можете получить в двух грамматиках параллельно? В общем, не ясно, как адаптировать чтобы вы могли справиться с суффиксами; с помощью нормальной формы Чомский помогает.GL
Предположим, что и и G R даны в нормальной форме Хомского. Измените G L так , чтобы крайний правый нетерминал был различим и сделал его начальный символ новым начальным символом. Ввести для выделенных версий нетерминалов новые правила, которые приводят к грамматике, которая выводится в G L и G R параллельно (нетерминалы - это пары нетерминалов); если обе грамматики согласуются с символом терминала, удалите составной нетерминал. Таким образом, суффикс в G L удаляется тогда и только тогда, когда он может быть получен в G L и в G R , он остаетсяGLGRGLGLGRGLGLGR .w∈L/R