M-сводимость — различия между версиями
(→Литература) |
|||
Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
− | |definition=Множество <tex>A</tex> '''m-сводится''' (является ''many-one reducible'', ''m-reducible'') ко множеству <tex>B</tex>, если существует всюду определённая вычислимая функция <tex>f : x\in A\Leftrightarrow f(x)\in B</tex>, то есть <tex>f(A) \subset B</tex> и <tex>f(\overline{A}) \subset \overline{B}</tex>. Обозначение: <tex>A\ | + | |definition=Множество <tex>A</tex> '''m-сводится''' (является ''many-one reducible'', ''m-reducible'') ко множеству <tex>B</tex>, если существует всюду определённая вычислимая функция <tex>f : x\in A\Leftrightarrow f(x)\in B</tex>, то есть <tex>f(A) \subset B</tex> и <tex>f(\overline{A}) \subset \overline{B}</tex>. Обозначение: <tex>A\leqslant_{m}B</tex>. |
}} | }} | ||
{{Определение | {{Определение | ||
− | |definition=<tex>A</tex> '''m-эквивалентно''' (''many-one equivalent'', ''m-equivalent'') <tex>B</tex>, если <tex>A\ | + | |definition=<tex>A</tex> '''m-эквивалентно''' (''many-one equivalent'', ''m-equivalent'') <tex>B</tex>, если <tex>A\leqslant_{m}B</tex> и <tex>B\leqslant_{m}A</tex>. Обозначение: <tex>A\equiv_{m}B</tex>. |
}} | }} | ||
== Свойства == | == Свойства == | ||
− | # <tex>A\ | + | # <tex>A\leqslant_{m}A</tex>. |
#*'''Доказательство:''' <tex>f(x)=x</tex>. | #*'''Доказательство:''' <tex>f(x)=x</tex>. | ||
− | # Если <tex>A\ | + | # Если <tex>A\leqslant_{m}B</tex> и <tex>B</tex> разрешимо, то <tex>A</tex> разрешимо. |
#*'''Доказательство:''' Пусть <tex>p</tex> — программа-разрешитель для <tex>B</tex>. Тогда для любого <tex>x\in A</tex> разрешитель должен вернуть значение <tex>p(f(x))</tex>. | #*'''Доказательство:''' Пусть <tex>p</tex> — программа-разрешитель для <tex>B</tex>. Тогда для любого <tex>x\in A</tex> разрешитель должен вернуть значение <tex>p(f(x))</tex>. | ||
− | # Если <tex>A\ | + | # Если <tex>A\leqslant_{m}B</tex> и <tex>B</tex> перечислимо, то <tex>A</tex> перечислимо. |
#*'''Доказательство:''' Аналогично предыдущему свойству. | #*'''Доказательство:''' Аналогично предыдущему свойству. | ||
− | # Если <tex>A\ | + | # Если <tex>A\leqslant_{m}B</tex> и <tex>B\leqslant_{m}C</tex>, то <tex>A\leqslant_{m}C</tex>. |
#*'''Доказательство:''' Если <tex>f:A\to B</tex> и <tex>g:B\to C</tex>, то m-сводящая функция <tex>h:A\to C</tex> выглядит так <tex>h(x) = g(f(x))</tex>. | #*'''Доказательство:''' Если <tex>f:A\to B</tex> и <tex>g:B\to C</tex>, то m-сводящая функция <tex>h:A\to C</tex> выглядит так <tex>h(x) = g(f(x))</tex>. | ||
Строка 18: | Строка 18: | ||
{{Лемма | {{Лемма | ||
|statement= | |statement= | ||
− | Если <tex>A\ | + | Если <tex>A\leqslant_{m}B</tex> и <tex>A</tex> неразрешимо, то <tex>B</tex> неразрешимо. |
|proof= | |proof= | ||
Следует из второго свойства. | Следует из второго свойства. | ||
Строка 31: | Строка 31: | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | Язык <tex>L</tex> '''сводится по Тьюрингу''' (является ''Turing reducible'') к языку <tex>M</tex>, если язык <tex>M</tex> является разрешимым с использованием <tex>L</tex> как оракула, обозначается как <tex>L \ | + | Язык <tex>L</tex> '''сводится по Тьюрингу''' (является ''Turing reducible'') к языку <tex>M</tex>, если язык <tex>M</tex> является разрешимым с использованием <tex>L</tex> как оракула, обозначается как <tex>L \leqslant_T M</tex>. |
}} | }} | ||
{{Определение | {{Определение | ||
− | |definition=Язык <tex>L</tex> '''эквивалентен по Тьюрингу''' (''Turing equivalent'') языку <tex>M</tex>, если <tex>L \ | + | |definition=Язык <tex>L</tex> '''эквивалентен по Тьюрингу''' (''Turing equivalent'') языку <tex>M</tex>, если <tex>L \leqslant_T M</tex> и <tex>M \leqslant_T L</tex>, обозначается как <tex>L \equiv_T M</tex>. |
}} | }} | ||
=== Свойства === | === Свойства === | ||
− | * рефлексивность: <tex> L \ | + | * рефлексивность: <tex> L \leqslant_T L </tex> |
− | * транзитивность: из <tex> L \ | + | * транзитивность: из <tex> L \leqslant_T M </tex> и <tex> M \leqslant_T N</tex> следует <tex> L \leqslant_T N </tex> |
* Очевидно, что <tex>\equiv_T</tex> — отношение эквивалентности | * Очевидно, что <tex>\equiv_T</tex> — отношение эквивалентности | ||
Строка 53: | Строка 53: | ||
}} | }} | ||
− | На Т-степенях можно ввести частичный порядок: для <tex>d_1, d_2 \in \mathcal{D}_T, d_1 \le d_2</tex>, если для каких-то <tex>L \in d_1, M \in d_2: L \ | + | На Т-степенях можно ввести частичный порядок: для <tex>d_1, d_2 \in \mathcal{D}_T, d_1 \le d_2</tex>, если для каких-то <tex>L \in d_1, M \in d_2: L \leqslant_T M</tex>, определение корректно, так как порядок не будет зависеть от выбора представителя Т-степени. |
==== Свойства ==== | ==== Свойства ==== |
Версия 22:33, 21 ноября 2016
Определение: |
Множество | m-сводится (является many-one reducible, m-reducible) ко множеству , если существует всюду определённая вычислимая функция , то есть и . Обозначение: .
Определение: |
m-эквивалентно (many-one equivalent, m-equivalent) , если и . Обозначение: . |
Содержание
Свойства
-
- Доказательство: .
.
- Если
- Доказательство: Пусть — программа-разрешитель для . Тогда для любого разрешитель должен вернуть значение .
и разрешимо, то разрешимо.
- Если
- Доказательство: Аналогично предыдущему свойству.
и перечислимо, то перечислимо.
- Если
- Доказательство: Если и , то m-сводящая функция выглядит так .
и , то .
Применение
Лемма: |
Если и неразрешимо, то неразрешимо. |
Доказательство: |
Следует из второго свойства. |
Приведённая лемма позволяет доказывать алгоритмическую неразрешимость некоторой задачи, сводя к ней (а не наоборот!) другую, неразрешимость которой уже доказана.
Например:
Сведение по Тьюрингу
Определение: |
Язык | сводится по Тьюрингу (является Turing reducible) к языку , если язык является разрешимым с использованием как оракула, обозначается как .
Определение: |
Язык | эквивалентен по Тьюрингу (Turing equivalent) языку , если и , обозначается как .
Свойства
- рефлексивность:
- транзитивность: из и следует
- Очевидно, что — отношение эквивалентности
Т-степени
Обозначим за
множество классов эквивалентности языков по отношению , это множество будет множеством Т-степеней (тьюринговых степеней).
Определение: |
Т-степенью языка | называется его класс эквивалентности по отношению , то есть .
На Т-степенях можно ввести частичный порядок: для , если для каких-то , определение корректно, так как порядок не будет зависеть от выбора представителя Т-степени.
Свойства
- — минимальный элемент в частичном порядке на Т-степенях. Очевидно из того, что класс разрешимых языков замкнут по использованию разрешимого языка в качестве оракула.
- Любая пара Т-степеней имеет наименьшую верхнюю границу .
Тьюринговый скачок
Обозначим за
язык программ, останавливающихся на пустом входе. Обозначим за язык программ, использующих в качестве оракула и останавливающихся на пустом входе.Можно показать, что:
- Если , то
Тогда тьюринговым скачком Т-степени
называется Т-степень языка , где — произвольный язык в . Заметим, что если , то , поэтому определение корректно. Оператор тьюрингова скачка обозначим как .Литература
- Wikipedia — Many-one reduction
- Wikipedia — Turing reduction
- Topics in Logic and Foundations
- Верещагин Н., Шень А. — Вычислимые функции, 2-е изд. МЦНМО, 2002, стр. 64. ISBN 5-900916-36-7
- P. Odifreddi — Classical recursion theory. Elsivier, 1992. ISBN 0-444-87295-7