Упражнение 2.1.25 |
Алгоритмические проблемы
Основная цель этой лекции - дать определения понятий, необходимых для математически строгой формулировки результатов следующих двух лекций. Для более подробного ознакомления с вычислимостью, разрешимостью, перечислимостью и универсальными моделями вычислений следует обратиться к какому-либо вводному курсу по теории алгоритмов, например [30, с. 93-106, 109-121] или [5,с. 8-20, 112-123]. В разделе 14.1 фиксируется конкретная модель вычислений - машина Тьюринга и даются определения (недетерминированной) машины Тьюринга, детерминированной машины Тьюринга и вычислимой функции. В разделе 14.2 определяются разрешимые и перечислимые множества. В разделе 14.3 вводятся термины "массовая задача", "индивидуальная задача", "схема кодирования", "задача распознавания", "алгоритмическая проблема". В 14.4* формулируется теорема о соответствии машин Тьюринга грамматикам типа 0, а также теорема о нормальной форме для грамматик типа 0. В разделе 14.5 формулируется известная неразрешимая проблема - проблема соответствий Поста. На сведEнии именно к этой алгоритмической проблеме основываются все доказательства неразрешимости в "Алгоритмически неразрешимые проблемы" , где рассматриваются алгоритмические проблемы, связанные с контекстно-свободными грамматиками.
14.1. Машины Тьюринга
Определение 14.1.1. Машиной Тьюринга называется семерка
![M \peq \lalg Q , \Sigma , \Gamma , b_0 , \Delta , I , F \ralg ,](/sites/default/files/tex_cache/f6a006f809fe2747c719dc56964c8af0.png)
![\Gamma](/sites/default/files/tex_cache/162d4c413f99ae2763b1ced17ed1a14b.png)
![\Delta](/sites/default/files/tex_cache/659d23f0ed16cdb87b1d41c7b58b52f4.png)
![\Sigma \subset \Gamma](/sites/default/files/tex_cache/f76df8858f68253354f1a37088c294a3.png)
![b_0 \in \Gamma \sminus \Sigma](/sites/default/files/tex_cache/e2c2dc67f2d861f190de7c9d1afa8631.png)
![I \subseteq Q](/sites/default/files/tex_cache/ceb99036fe06b8986c41e12a611f7644.png)
![F \subseteq Q](/sites/default/files/tex_cache/6bd32507852f6c9146f76e7d7835716e.png)
![\Delta \subseteq (( Q \sminus F ) \times \Gamma )
\times ( Q \times \Gamma \times \{ -1 , 0 , 1 \} ) .](/sites/default/files/tex_cache/7f274f433f0ed3f1bc5a834e8b1e8a96.png)
![\Sigma](/sites/default/files/tex_cache/a643a0ef5974b64678111d03125054fc.png)
![\Gamma](/sites/default/files/tex_cache/162d4c413f99ae2763b1ced17ed1a14b.png)
![\Delta](/sites/default/files/tex_cache/659d23f0ed16cdb87b1d41c7b58b52f4.png)
Определение 14.1.2. Конфигурацией
машины Тьюринга называется любая четверка ,
где
,
,
,
.
Определение 14.1.3.
Определим на множестве всех конфигураций машины Тьюринга M
бинарное отношение
( такт работы )
следующим образом.
Если ,
то
![\lp x , p , a , y \rp \myunderset{ M }{\vdash} \lp x , q , c , y \rp](/sites/default/files/tex_cache/934aea0ad8ec211472183f75cc7754b6.png)
![x \in \Gamma ^*](/sites/default/files/tex_cache/d810f3f25c75c0da22d280a6d30a1706.png)
![y \in \Gamma ^*](/sites/default/files/tex_cache/c1f4693c4d02af06b58be1bcac9d01de.png)
Если ,
то
![\lp x , p , a , d y \rp \myunderset{ M }{\vdash} \lp x c , q , d , y \rp
\rusand
\lp x , p , a , \varepsilon \rp \myunderset{ M }{\vdash}
\lp x c , q , b_0 , \varepsilon \rp](/sites/default/files/tex_cache/74c669eec27e83ded08991e87d174c90.png)
![x \in \Gamma ^*](/sites/default/files/tex_cache/f32f623cc75ce0816ef88dd395bb72f7.png)
![y \in \Gamma ^*](/sites/default/files/tex_cache/db5f7127fe3bd9bd8541a018afa15448.png)
![d \in \Gamma](/sites/default/files/tex_cache/bccbd19a0c7dfa3d5d0b6949def469e4.png)
Если ,
то
![\lp x d , p , a , y \rp \myunderset{ M }{\vdash} \lp x , q , d , c y \rp
\rusand
\lp \varepsilon , p , a , y \rp \myunderset{ M }{\vdash}
\lp \varepsilon , q , b_0 , c y \rp](/sites/default/files/tex_cache/6e07f2c5e6bc30f7f5daa43dd4e3b823.png)
![x \in \Gamma ^*](/sites/default/files/tex_cache/f32f623cc75ce0816ef88dd395bb72f7.png)
![y \in \Gamma ^*](/sites/default/files/tex_cache/db5f7127fe3bd9bd8541a018afa15448.png)
![d \in \Gamma](/sites/default/files/tex_cache/bccbd19a0c7dfa3d5d0b6949def469e4.png)
Замечание 14.1.4.
Если из контекста ясно, о какой
машине Тьюринга идет речь,
вместо
будем писать просто
.
Определение 14.1.5.
Как и для МП-автомата, для машины Тьюринга
бинарное отношение
определяется как рефлексивное, транзитивное замыкание отношения
.
Замечание 14.1.6.
Если ,
то
для любых
и
найдутся такие
и
,
что
.
Замечание 14.1.7.
Конфигурацию
иногда изображают сокращенно
.
Замечание 14.1.8.
Машины Тьюринга можно изображать в виде диаграмм.
При этом каждое состояние обозначается кружком,
а переход - стрелкой.
Каждое начальное состояние распознается
по ведущей в него короткой стрелке.
Каждое заключительное состояние отмечается на диаграмме
двойным кружком.
Стрелка с пометкой a:ck,
ведущая из p в q,
показывает, что
является переходом данной машины Тьюринга.
Обычно на диаграммах вместо чисел -1, 0, 1
(обозначающих движение влево, стояние на месте, движение вправо)
используются буквы L, N, R
соответственно.
Пример 14.1.9. Рассмотрим машину Тьюринга
![M \peq \lalg Q , \Sigma , \Gamma , b_0 , \Delta , I , F \ralg ,](/sites/default/files/tex_cache/f6a006f809fe2747c719dc56964c8af0.png)
![Q \peq \{ 0 , 1 , 2 , 3 \}](/sites/default/files/tex_cache/1b4d9e984891e94638a45e2776c7134b.png)
![\Sigma \peq \{ a \}](/sites/default/files/tex_cache/d612ebab7fc32099a1a86cd44761b13d.png)
![\Gamma \peq \{ a , b \}](/sites/default/files/tex_cache/353b57fd9bb67cb19f903a243eafe023.png)
![b_0 \peq b](/sites/default/files/tex_cache/9b0a6d986dcf6dbfefefe5a5128cbf0c.png)
![I \peq \{ 0 \}](/sites/default/files/tex_cache/ebca227f0b18c29cd67a465190c6ddd4.png)
![F \peq \{ 3 \}](/sites/default/files/tex_cache/b8c47a184a1e4c2fe547ba9235070bf1.png)
![\Delta \peq \{
\lp \lp 0 , b \rp \sqzcm \lp 1 , b , 1 \rp \rp \sqzcm
\lp \lp 1 , a \rp \sqzcm \lp 2 , b , 1 \rp \rp \sqzcm
\lp \lp 2 , a \rp \sqzcm \lp 1 , b , 1 \rp \rp \sqzcm
\lp \lp 1 , b \rp \sqzcm \lp 3 , b , 0 \rp \rp
\} .](/sites/default/files/tex_cache/681c92c89e9a124a09aca46f0fb0472a.png)
![\objectwidth={5mm} \objectheight={5mm} \let\objectstyle=\scriptstyle
\xymatrix {
*=[o][F-]{0}
\ar @`{+/l16mm/} [] ^{}
\ar "1,2" ^{b:b\dr}
& *=[o][F-]{1}
\ar "2,2" <0.6mm> ^{a:b\dr}
\ar "1,3" ^{b:b\dn}
& *=[o][F=]{3}
\\
%
& *=[o][F-]{2}
\ar "1,2" <0.6mm> ^{a:b\dr}
&
}](/sites/default/files/tex_cache/f5844230c3c05fbf017c37fdb76ea4ae.png)
![k \in \mathbb{N}](/sites/default/files/tex_cache/c1ad5cfc740bbafc365761668589da82.png)
![\begin{align*}
& \underset{ 0 }{ b } a ^{k+1} \vdash
\underset{ 1 }{ a } a ^k ,\\
& \underset{ 1 }{ a } a ^{k+2} \overstar{\vdash}
\underset{ 1 }{ a } a ^k ,\\
& \underset{ 1 }{ a } a ^{2k+1} \overstar{\vdash}
\underset{ 3 }{ b } .
\end{align*}](/sites/default/files/tex_cache/251e5837f6fa8e1842593636fe9ae737.png)
Определение 14.1.10. Машина Тьюринга
![\lalg Q , \Sigma , \Gamma , b_0 , \Delta , I , F \ralg](/sites/default/files/tex_cache/a83da6a9d85053adb634fbafa46ee41a.png)
![\lp p , a \rp \in ( Q \sminus F ) \times \Gamma](/sites/default/files/tex_cache/c84d8eb05f3029faea79785d55d7ae9c.png)
![\lp q , c , k \rp \in Q \times \Gamma \times \{ -1 , 0 , 1 \}](/sites/default/files/tex_cache/630b27c9106d9c43deff5b4b14feb0bc.png)
![\lp \lp p , a \rp , \lp q , c , k \rp \rp \in \Delta](/sites/default/files/tex_cache/4c799c40dd0a91e384f5d9db0ac487e1.png)
Пример 14.1.11 Машина Тьюринга из примера 14.1.9 является детерминированной.