Как это часто бывает с NP-сокращениями, имеет смысл искать подобные проблемы. В частности, трудно кодировать глобальные условия, такие как "видевшие некоторые узлы", в PCP (с полиномиальным количеством плиток), что противопоказывает проблемы с графами, проблемы с упаковкой потребовали бы, чтобы мы кодировали унарные числа в PCP (создавая экспоненциально большой экземпляр), и скоро. Поэтому можно ожидать, что строковая проблема только с локальными ограничениями будет работать лучше всего.
Рассмотрим вариант решения самой короткой общей проблемы суперпоследовательности :
Учитывая две строки с и и , решите, есть ли строка с такой, что и являются подпоследовательностями .| а | = n | б | = m k ∈ N c ∈ Σ + | с | ≤ k a b ca , b ∈ Σ+| а | =n| б | =мk ∈ Nc ∈ Σ+| с | ≤kaбс
Идея состоит в том, чтобы позволить PCP строить суперпоследовательности и слева направо, кодируя в перекрытиях плиток, в которых мы находимся в и соответственно. Он будет использовать одну плитку на символ в , так что соответствует границе BPCP: если мы можем решить этот PCP с помощью плиток, вы можете считать общую суперпоследовательность равной длины, и наоборот.b a b c k ≤ kaбaбсК≤ k
Построение плитки немного утомительно, но довольно понятно. Обратите внимание, что мы не будем создавать плитки, которые не пересылают или b ; такие никогда не могут быть частью кратчайшей общей суперпоследовательности, поэтому они излишни. Их можно легко добавить, не нарушая свойства восстановления.aб
ΣжурналМакс ( м , н )
- Начальные плитки: может начинаться с , или обоих, если они равны.1 б 1сa1б1
- Промежуточные тайлы: может перейти к следующему символу в , в или в обоих, если они равны.в бсaб
- Завершающие плитки: заканчивается последним символом (если последний из уже был просмотрен), аналогичным для или последним символом обоих.в б бсaбб
Это схемы плитки. Обратите внимание, что промежуточные тайлы должны быть созданы для всех пар . Как упомянуто выше, создавайте плитки без только если соответствующие символы в и совпадают.∗(i,j)∈[n]×[m]∗бaб
[ источник ]
Символ означает «все равно»; в реальных тайлах другой символ должен быть скопирован туда. Обратите внимание, что число плиток находится в и каждая плитка имеет длину , поэтому построенный экземпляр BPCP (по алфавиту плюс символы разделения) имеет полиномиальный размер. Кроме того, построение каждой плитки очевидно возможно за полиномиальное время. Таким образом, предлагаемое сокращение действительно является действительным полиномиальным преобразованием, которое сводит NP-полную задачу кратчайшей общей суперпоследовательности к BPCP.Θ ( m n ) 4 log max ( m , n ) + 1 Σ ∪ { 0 , 1 }*Θ ( м н )4 журналаМакс ( м , н ) + 1Σ ∪ { 0 , 1 }