Примеры неразрешимых задач: проблема соответствий Поста

Материал из Викиконспекты
Версия от 00:07, 2 января 2015; Korolyov (обсуждение | вклад) (Неразрешимость языка ПСП)
Перейти к: навигация, поиск

Проблема соответствий Поста (англ. Post correspondence problem) — один из основных примеров неразрешимой задачи, использующийся для доказательства неразрешимости многих других задач.


Определение:
Даны два конечных списка A=(a1,,an) и B=(b1,,bn), где aiΣ и biΣ для всех i. Вопрос существования непустой последовательности индексов (i1,,ik), удовлетворяющей условию ai1aik=bi1bik, где 1ijn для всех j, называется проблемой соответствий Поста (ПСП). Такую последовательность индексов, в случае её существования, называют решением проблемы соответствий Поста.


Примеры решений проблем соответсвия Поста

1)

Номер элемента 1 2 3 4
A 01 1 101 11
B 0 11 10 111

Решение этой проблемы соответствий Поста будет являться последовательность индексов (1,4,3,2). Проверим это.

sA=01,11,101,1

sB=0,111,10,11

Получаем то, что строки sA и sB равны, а значит последовательность индексов (1,4,3,2) является решением этой проблемы соотвествий Поста.

2) Иногда возникает ситуация, когда решений конкретной проблемы соотвествия Поста нет.

Номер элемента 1 2 3
A 01 101 011
B 0 10 111

Заметим, что если бы решение существовало оно должно было начинаться с индекса 1 или 2. Но тогда строки получаемые из A всегда будут строго больше по длине, чем строки полученные из B, так как length(A[i])length(B[i]) для всех i.

Решения не существует.

Перечислимость языка ПСП

Теорема:
Язык пар последовательностей, для которых существует решение ПСП, перечислим.
Доказательство:

Для списков A и B размера n из условия ПСП построим программу-полуразрешитель p, проверяющую все возможные решения:

 for m=1..
   foreach (i1,i2,,im):1ijn
     if ai1aim=bi1bim
       return true
Таким образом, язык пар последовательностей, для которых существует решение ПСП, полуразрешим, а значит, перечислим.

Неразрешимость языка ПСП

Определение:
Проблема соответствий Поста, для которой фиксирован элемент последовательности индексов i1=1, называется модифицированной проблемой соответствий Поста (МПСП).


Докажем неразрешимость языка ПСП следующим образом. Докажем, что универсальный язык сводится к языку МПСП, который в свою очередь сводится к языку ПСП. При этом отметим, что для унарного алфавита ПСП разрешима.

Для начала покажем как свести МПСП к ПСП.

Пусть даны списки A и B из условия МПСП. Построим два новых списка C и D и рассмотрим ПСП для них. Для этого введем два новых символа, которые не используются в словах из цепочек A и B. Пусть для определенности это будут символы # и $.

Тогда сформируем два новых списка C,D по следующим правилам:

  • для всех i=1n возьмем ci равное слову ai с символом # после каждого его символа. Например, для ai=10zx положим ci=1#0#z#x#,
  • для всех i=1n возьмем di равное слову bi с символом # перед каждым его символом. Например, для bi=10zx положим di=#1#0#z#x,
  • c0=#c1,
  • d0=d1,
  • cn+1=$,
  • dn+1=#$.


Лемма:
МПСП для пары списков (A,B) сводится к ПСП для пары списков (C,D).
Доказательство:

Из определения m-сведения следует, что мы должны доказать равносильность наличия решения для построенных экземпляров МПСП и ПСП.

Пусть набор индексов (1,i2,,ik) — решение МПСП из условия леммы. То есть wA=wB, где

wA=a1ai2aik,

wB=b1bi2bik.

Рассмотрев цепочки wC и wD c аналогичными индексами, заметим, что мы имеем почти равные цепочки с той лишь разницей, что первой не хватает символа # в начале, а второй — в конце. Конкретно,

#c1ci2cik=d1di2dik#.

Изменив первый индекс с 1 на 0, решим проблему с символом # в начале. Добавив индекс n+1 к набору, решим проблему с символом # в конце.

c0ci2cikcn+1=d0di2dikdn+1.

Итого, если (1,i2,,ik) — решение исходной МПСП, то (0,i2,,ik,n+1) — решение построенной по правилам выше ПСП.

В любом существующем решении ПСП для списков C,D должны выполняться условия:

  • i1=0, так как только в паре (c1,d1) первые символы совпадают,
  • последний индекс равен n+1, так как только в паре (cn+1,dn+1) строки заканчиваются одинаковыми символами.

Пусть последовательность (0,i2,i3,,ik,n+1) является решением ПСП. Иными словами,

c0ci2cikcn+1=d0di2dikdn+1.

Если if — наименьший индекс, равный n+1, то c0ci2cif, d0di2dif — префиксы исходных конкатенаций до первого символа $, следовательно, равны между собой. Последовательность (0,i2,if) — также решение ПСП, причём первый индекс равен 0 и if=n+1. Остальные индексы не превосходят n, но и не равны 0, иначе в левой части равенства образуется подстрока из двух # подряд, а в правой её не может быть. Учитывая эти ограничения, перепишем получившееся равенство:

#c1ci2cif1$ = d1di2dif1#$.

Оставив из этих двух строк символы, стоящие на чётных позициях, и удалив с конца $, получим

a1ai2aif1=b1bi2bif1.

Итого, если (0,i2,,ik,n+1) — решение ПСП, то (1,i2,,ik) — решение исходной МПСП.


Теперь покажем как свести универсальный язык к МПСП.

Определение:
Назовём снимком состояния МТ строку вида c1c2ck#pck+1ct, где c1c2ct — строка на ленте, за исключением бесконечных последовательностей пробелов слева и справа, p — текущее состояние автомата МТ, головка расположена справа от #p.

Построим списки A и B таким образом, чтобы решение МПСП образовывало строку

$snap1$snap2$$snapn$snapn1$snapn2$$#yes$$,

где snapi — снимки последовательных состояний МТ от стартового до конечного, snapnt — последний снимок с t удалёнными символами, а $ — символ, не принадлежащий алфавиту ленты и алфавиту входных слов. Оговоримся, что отвергающего состояния no в автомате МТ не существует, а допуск происходит при попадании в состояние yes.

Сформируем списки A и B по МТ M и входной строке w. Будем добавлять пары цепочек в эти списки по следующим правилам:

1. a1=$#startw$, b1=$. По определению МПСП эта пара всегда будет первой в любом решении.
2. ai=c, bi=c для всех символов c алфавита ленты.
3. ai=$, bi=$.
4. ai=#qed, bi=e#pc для всех правил M вида δ(p,c)=q,d, и для всех символов алфавита e.
5. ai=d#q, bi=#pc для всех правил M вида δ(p,c)=q,d,.
6. ai=#qd, bi=#pc для всех правил M вида δ(p,c)=q,d,.

Заметим, что все элементы A и B, кроме первых, имеют одинаковую длину. Значит, строка, составленная из элементов A, всегда оказывается длиннее. Если представить процесс формирования решения МПСП как динамический, то строка из элементов B вынуждена постоянно "догонять" первую. Более того, можно заметить, что вторая строка всегда будет отставать ровно на один снимок. Действительно, первая пара из списков A и B задает это отставание. Затем при помощи элементов из правил 4, 5 и 6 мы имитируем переход машины Тьюринга, добавляя во вторую строку то состояние и положение головки, которые были до перехода, а в первую строку - то состояние, положение головки и новый ленточный символ, которые стали после перехода. Нетрудно заметить, что тем самым строка составленная из элементов списка B будет соответствовать строке из элементов списка A, но с отставанием на один переход. Далее с помощью элементов из правил 2 и 3 мы допишем в обе строки одинаковые суффиксы текущего снимка, разделитель $ и префикс нового снимка до следующего перехода машины Тьюринга. Таким образом если первая строка равна

$snap1$snap2$$snapn$,

то вторая будет равна

$snap1$snap2$$snapn1$,

а через несколько шагов они изменятся на

$snap1$snap2$$snapn$snapn+1$

и

$snap1$snap2$$snapn1$snapn$,

соответственно.

Теперь стоит новая задача — получить равные строки, если состояние #yes достижимо. Для этого добавим в уже имеющиеся последовательности элементы по следующим правилам:

7. ai=#yes, bi=#yesc, для всех символов c алфавита ленты.
8. ai=#yes, bi=c#yes, для всех символов c алфавита ленты.
9. ai=$, bi=#yes$$.

Если состояние yes недостижимо, в первой строке никогда не будет символа #yes, и ни одним из новых элементов воспользоваться не удастся. Значит, строки всегда будут иметь различную длину.

Если же допускающее состояние встретится, то "съедая" по одному символу с помощью элементов правил 7 и 8 и копируя все остальные с помощью элементов из правил 2 и 3 можно будет привести строки к виду

$snap1$snap2$$snapn$snapn1$snapn2$$#yes$

и

$snap1$snap2$$snapn$snapn1$snapn2$$.

И наконец, с помощью элементов из правила 9 сравняем строки.

Пример

Пусть автомат МТ состоит из двух состояний start и yes, алфавит ленты содержит символы a и b. Переходы автомата устроены следующим образом:

δ(start,a)=start,b,;

δ(start,b)=yes,b,;

из yes переходов нет.

Списки A и B для строки ab будут сформированы следующим образом:

Номер элемента A B
1 $#startab$ $
2 a a
3 b b
4 $ $
5 b#start #starta
6 #yesb #startb
7 #yes a#yes
8 #yes b#yes
9 #yes #yesa
10 #yes #yesb
11 $ #yes$$

Решение МПСП будет иметь следующий вид:

Шаг Индекс элемента Первая строка Вторая строка
1 1 $#startab$ $
2 5 $#startab$b#start $#starta
3 3 $#startab$b#startb $#startab
4 4 $#startab$b#startb$ $#startab$
5 3 $#startab$b#startb$b $#startab$b
6 6 $#startab$b#startb$b#yesb $#startab$b#startb
7 4 $#startab$b#startb$b#yesb$ $#startab$b#startb$
8 8 $#startab$b#startb$b#yesb$#yes $#startab$b#startb$b#yes
9 3 $#startab$b#startb$b#yesb$#yesb $#startab$b#startb$b#yesb
10 4 $#startab$b#startb$b#yesb$#yesb$ $#startab$b#startb$b#yesb$
11 10 $#startab$b#startb$b#yesb$#yesb$#yes $#startab$b#startb$b#yesb$#yesb
12 4 $#startab$b#startb$b#yesb$#yesb$#yes$ $#startab$b#startb$b#yesb$#yesb$
13 11 $#startab$b#startb$b#yesb$#yesb$#yes$$ $#startab$b#startb$b#yesb$#yesb$#yes$$
Лемма:
Универсальный язык сводится к МПСП.
Доказательство:

Из определения m-сведения следует, что мы должны доказать, что машина Тьюринга M допускает w тогда и только тогда, когда построенный экземпляр МПСП имеет решение.

Если w допускается M, то можно проимитировать работу M со входом w и, как показано в примере выше, получить равные строки из элементов списков A и B. То есть найти решение МПСП.

Поскольку все решения МПСП должны начинаться с первой пары, то длина соответствующих строк будет различаться, и, как было сказано выше, если в первой строке никогда не будет символа #yes, то "сравнять" строки по длине не удастся. Значит, если МПСП имеет решение, то символ #yes рано или поздно появится. А значит и машина Тьюринга допустит w.
Теорема:
ПСП не разрешима.
Доказательство:
Скомбинировав обе леммы, мы сведем универсальный язык к языку ПСП, а так как универсальный язык неразрешим, то и ПСП — неразрешима.

См. также

Источники информации

  • Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — М.:Издательский дом «Вильямс», 2008. — С. 528. — ISBN 5-8459-1347-0
  • Wikipedia — Post correspondence problem