Если

9

Я застрял, решая следующее упражнение:

Докажите, что если зависит от контекста, а R регулярно, то L / R = { w x RLR (т.е.правый фактор) не зависит от контекста.L/R={wxRs.twxL}

Я знаю , что должен существовать КПК , который принимает и DFA , который принимает R . Я сейчас пытаюсь объединить эти автоматы в КПК, который принимает правильный коэффициент. Если я могу построить это, я доказал, что L / R не зависит от контекста. Но я застрял в создании этого КПК.LRL/R

Вот как далеко я сделал это:

В комбинированном PDA состояния являются декартовым произведением состояний отдельных автоматов. И ребра - это ребра DFA, но только те, для которых в будущем может быть достигнуто конечное состояние исходного PDA L. Но не знаю, как записать это формально.

Dommicentl
источник
Добро пожаловать! Где именно вы застряли, каков ваш подход?
Рафаэль
1
Подсказка: подумайте, как лучше всего использовать недетерминизм.
Артем Казнатчеев
В комбинированном PDA состояния являются декартовым произведением состояний отдельных автоматов. И ребра - это ребра DFA, но только те, для которых в будущем может быть достигнуто конечное состояние исходного PDA L. Но не знаю, как исправить это формально.
Доммицентль
3
Я скопировал ваш комментарий в вопрос. Это лучшее место для этого.
Дэйв Кларк

Ответы:

8

Вот подсказка.

Вам нужно, чтобы ваша машина изначально принимала часть слова из , потребляя ленту по ходу дела. Затем, ничего не потребляя, вам нужно найти какое-то слово из R , которое переведет машину в конечное состояние. Выбранное слово из R играет роль входного слова для второй половины вычисления.LRR

Очевидно, что недетерминизм будет играть роль, как и продукт между двумя машинами. Хитрость в формализации этого состоит в том, чтобы настроить продукт так, чтобы он учитывал тот факт, что вход поступает от не от входа.R

Дэйв Кларк
источник
6

Я не уверен, к чему вы клоните с помощью декартового произведения; это симулирует оба автомата параллельно, что даст вам пересечение. Но вы хотите, чтобы он идентифицировал все слова в которые имеют суффикс из 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,RwxwxLxR

Вы также можете использовать формальные грамматики. Видите ли вы, как вы можете получить в двух грамматиках параллельно? В общем, не ясно, как адаптировать чтобы вы могли справиться с суффиксами; с помощью нормальной формы Чомский помогает.GL

Предположим, что и и G R даны в нормальной форме Хомского. Измените G L так , чтобы крайний правый нетерминал был различим и сделал его начальный символ новым начальным символом. Ввести для выделенных версий нетерминалов новые правила, которые приводят к грамматике, которая выводится в G L и G R параллельно (нетерминалы - это пары нетерминалов); если обе грамматики согласуются с символом терминала, удалите составной нетерминал. Таким образом, суффикс в G L удаляется тогда и только тогда, когда он может быть получен в G L и в G R , он остаетсяGLGRGLGLGRGLGLGR .wL/R

Рафаэль
источник
Обратите внимание, что даже то, что находится в областях спойлера, не является строгим или формальным. Пожалуйста, дайте мне знать, если вам нужно больше деталей (после того, как попробовал это сам).
Рафаэль
6

Я рекомендую использовать ответ Рафаэля, который гораздо проще понять, но вот альтернативный, использующий свойства замыкания вместо автоматов:

Пусть - язык. Мы хотим прочитать слово w , но спросим L, есть ли w x в языке. Итак, мы хотим создать новый язык из L, который х "стер". Мы можем сделать это, используя гомоморфизм, но он может удалить буквы из w . Решение: разделите алфавит на две части и используйте разные буквы для w и x .LAwLwxLxwwx

Более формально:

1) Создайте слов из L , где каждая буква помечена как 0 или 1. 2) Пересекайте ее с обычным языком ( A × 0 ) ( R × 1 ) . Это сила , которые все-прийти до всех 1 - х, а вторая часть поступает от R . Точное значение × оставлено для читателя. 3) Заменить ( а , 0 ) а иL(A×{0,1})L
(A×0)(R×1)R×
(a,0)a . Используемые свойства замыкания: гомоморфное изображение, прообраз, пересечение с обычными языками. Преимущество: это доказательство работает для других семейств (например, замените контекстное на обычное).(a,1)ε


sdcvvc
источник
1
Что бы это ни стоило, конструкция автоматов масштабируется и на другие классы: мы ни в коем случае не используем, что - это КПК. AL
Рафаэль
Хорошая точка зрения.
sdcvvc
1
Технически такой класс (где это доказательство работает) называется конусом или полным трио .
Хендрик Ян