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


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:=⋃k≥1(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⋯βjK′K=K′

Язык сгенерированный всеми строками вида является регулярным. Язык сгенерированный всеми строками вида является регулярным. Вы спрашиваете, пусто лиТак как регулярны, это разрешимо (фактически, в самое большее экспоненциальное время).α i 1 ⋯ α i K B β j 1 ⋯ β j K ′Aαi1⋯αiKBβj1⋯βjK′, BA∩BA,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.