Вариант почтовой корреспонденции


12

Это, вероятно, довольно просто, но рассмотрим стандартную проблему почтовой корреспонденции:

Учитывая и , найдите последовательность индексов такую, что . Это, конечно, неразрешимо.β 1 , , β N i 1 , , i K α i 1α i K = β i 1β i Kα1,,αNβ1,,βNi1,,iKαi1αiK=βi1βiK

Теперь я называю это «вариантом», но это не совсем так - по сути, он выбрасывает «корреспонденцию». В любом случае рассмотрим следующий вариант:

Учитывая и , найдите две последовательности индексов i_1, \ ldots, i_K, j_1, \ ldots, j_ {K}, таких что \ alpha_ {i_1} \ cdots \ alpha_ {i_K} = \ beta_ {j_1} \ cdots \ beta_ {j_ {K}} . Что можно сказать об этом варианте? Если это тривиально, мои извинения!β 1 , , β Nα1,,αNβ1,,βN α i 1α i K = β j 1β j Ki1,,iK,j1,,jKαi1αiK=βj1βjK


Не задавая совершенно нового вопроса, я редактирую условие, что K и K не обязательно равны. В случае, если они равны, проблема, вероятно, должна быть неразрешимой - однако сокращение не очевидно (для меня).
alpoge

Ответы:


17

Эта новая версия - где K=K - разрешима.

Покажем, что язык L:=k1(Ak  Bk) является КЛЛ. Тогда разрешимость следует из разрешимости пустоты КЛЛ.

Мы будем разрабатывать КПК принимать . На входе , этот КПК будет пытаться построить два факторизации , один с использованием слова , и другие , используя слова . Он будет использовать счетчик в стеке, чтобы гарантировать, что эти две факторизации имеют одинаковую длину. Концептуально я буду ссылаться на факторизацию так, чтобы она находилась на вершине а факторизация на сидение внизу . Тогда в стеке будет счетчиков, если абсолютное значение разности числа слов, сопоставленных сверху, минус количество слов снизу равноx x A B A x x B x n n n A BLxxABAxxBxnn . Нам нужно другое состояние PDA, чтобы записать, какой соответствующий знак соответствует (который говорит нам, если -факторизация длиннее, чем -факторизация, или наоборот).nAB

Просматривая буквы , мы недетерминированно угадываем слово из и слово из с которого начинается эта буква. Как только мы угадаем, мы стремимся сопоставить остальные и с ; если в какой-то момент наше совпадение окажется неудачным, мы остановимся на этом недетерминированном выборе. Таким образом, мы также поддерживаем в состоянии нашего КПК суффикс и который остается соответствующим.t A u B t u x t uxtAuBtuxtu

Поскольку мы сканируем дальнейшие буквы, мы продолжаем сопоставление, пока не достигнем конца или конца (или обоих). Когда мы достигаем конца слова, мы соответствующим образом обновляем стек, а затем подбираем новое слово для соответствия либо сверху, либо снизу (или обоим).уtu

Мы принимаем, если суффиксы, оставшиеся для сопоставления, пусты как сверху, так и снизу, и в стеке нет счетчиков.

Мы можем эффективно построить этот КПК, поэтому мы можем эффективно решить, принимает ли он что-нибудь или нет (например, путем эффективного преобразования в грамматику и последующего использования обычного метода, чтобы увидеть, генерирует ли G что-нибудь).G

Изменить: Можно также превратить это в верхнюю границу, насколько большой может быть, в худшем случае. Я думаю , он должен дать верхнюю границу чего - то примерно как , где есть сумма длин слов в и .2 O ( l 2 ) l A Bk2O(l2)lAB

Редактировать: теперь я вижу, что требование, чтобы и были конечными множествами, также могло быть ослаблено, к требованию, чтобы и были регулярными (возможно, бесконечными). В этом случае вместо сохранения суффикса, оставшегося для сопоставления в «верхнем» и «нижнем», вместо этого мы сохраняем состояния соответствующего DFA, в котором мы находимся, после обработки префикса возможного сопоставленного слова. Если мы достигаем конечного состояния в «верхнем» или «нижнем», мы можем недетерминированным образом вернуться к начальному состоянию для нового угаданного слова. B A BABAB


2
добро пожаловать в теорию!
Суреш Венкат

1
Потрясающие! Теперь нам просто нужен Эрик Бах ...
Гек Беннетт

Ницца! Отлично.
alpoge

13

Изменить: это решает более раннюю версию, в которой мы должны решить, есть ли равенство в форме . Новая версия имеет . K = K αi1αiK=βj1βjKK=K

Язык сгенерированный всеми строками вида является регулярным. Язык сгенерированный всеми строками вида является регулярным. Вы спрашиваете, пусто лиТак как регулярны, это разрешимо (фактически, в самое большее экспоненциальное время).α i 1α i K B β j 1β j K Aαi1αiKBβj1βjK, BABA,B


Agh - на самом деле! Извините, вы абсолютно правы.
alpoge

Что если мы ограничим ? K=K
alpoge

2
Вы можете сделать это за полиномиальное время. Создайте три для слов первого набора A и три для слов второго набора B. По сути, это попытки NFA. Из них создайте NFA для и используя обычную конструкцию. Теперь, используя обычную конструкцию из перекрестных продуктов, сделайте NFA для их пересечения. Пустота языка, принятого M, теперь может быть проверена с помощью обычного подхода DFS для поиска путей. Т 2, Т + 1, Т + 2 МT1T2T1+T2+M
Джеффри Шаллит

Мой комментарий выше касается только исходной проблемы, а не проблемы, где . K=K
Джеффри Шаллит
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.