Я не впевнений, що ви досягаєте з декартовим продуктом; це імітує обидва автомати паралельно, що дасть вам перехрестя. Але ви хочете, щоб він ідентифікував усі слова в які мають суфікс від ! На інтуїтивному рівні, тобто.LR
Припустимо, наше введення є . Очевидно, ми не можемо перевірити всі можливі продовження (для членства в ), а лише обмежену їх кількість. Тут найкраще допомагає коментар Артема ; ми здогадуємось, яким буде суфікс , і запускаємо на ньому обидва автомати.w∈Σ∗Rx
Нехай і - КПК для і NFA для відповідно. Побудуйте автомат наступним чином. На вході , . Після споживається, перехід до модифікованого перетину з і , зберігаючи стан від . Тепер вирішіть для кожного переходу недетерміновано, який символ буде наступним у віртуальному вході. Прийміть якщо і тільки тоді, коли обидва компоненти досягають остаточного стану одночасно, тобто якщоALARLRAw∈Σ∗ALwAL,RALARALwAL,Rwмає продовження , так що і .xwx∈Lx∈R
Також можна використовувати формальні граматики. Ви бачите, як можна паралельно вивести дві граматики? Загалом, незрозуміло, як адаптувати щоб ви отримали ручку на суфікси; використання нормальної форми Хомського допомагає.GL
Припустимо, що і і задані у звичайному вигляді Хомського. Змініть таким чином, щоб найбільш правий нетермінал відрізнявся, і зробіть його початковий символ новим початковим символом. Введіть для відмінних версій нетерміналів нові правила, які ведуть до граматики, яка паралельно походить у та (нетермінали - це пари нетерміналів); якщо обидві граматики погоджуються на символ терміналу, видаліть складений нетермінал. Таким чином, суфікс в , видаляється , якщо і тільки якщо воно може бути отримано в , і в , залишається .GLGRGLGLGRGLGLGRw∈L/R