M-сводимость — различия между версиями
(→Тьюринговый скачок) |
|||
Строка 44: | Строка 44: | ||
− | == Т-степени == | + | === Т-степени === |
Обозначим за \mathcal{D}_T множество классов эквивалентности языков по отношению \equiv_T, это множество будет множеством Т-степеней (тьюринговых степеней) | Обозначим за \mathcal{D}_T множество классов эквивалентности языков по отношению \equiv_T, это множество будет множеством Т-степеней (тьюринговых степеней) | ||
Строка 52: | Строка 52: | ||
На Т-степенях можно ввести частичный порядок: для d_1, d_2 \in \mathcal{D}_T, d_1 \le d_2, если для каких-то L \in d_1, M \in d_2: L \le_T M, определение корректно, так как порядок не будет зависеть от выбора представителя Т-степени. | На Т-степенях можно ввести частичный порядок: для d_1, d_2 \in \mathcal{D}_T, d_1 \le d_2, если для каких-то L \in d_1, M \in d_2: L \le_T M, определение корректно, так как порядок не будет зависеть от выбора представителя Т-степени. | ||
− | === Свойства === | + | ==== Свойства ==== |
* \mathrm{R} — минимальный элемент в частичном порядке на Т-степенях. Очевидно из того, что класс разрешимых языков замкнут по использованию разрешимого языка в качестве оракула. | * \mathrm{R} — минимальный элемент в частичном порядке на Т-степенях. Очевидно из того, что класс разрешимых языков замкнут по использованию разрешимого языка в качестве оракула. | ||
* Любая пара Т-степеней d_1, d_2 \in \mathcal{D}_T имеет наименьшую верхнюю границу d_1 \lor d_2 \in \mathcal{D}_T. | * Любая пара Т-степеней d_1, d_2 \in \mathcal{D}_T имеет наименьшую верхнюю границу d_1 \lor d_2 \in \mathcal{D}_T. | ||
− | === Тьюринговый скачок === | + | ==== Тьюринговый скачок ==== |
Обозначим за H язык программ, останавливающихся на пустом входе. Обозначим за H^f язык программ, использующих f в качестве оракула и останавливающихся на пустом входе. | Обозначим за H язык программ, останавливающихся на пустом входе. Обозначим за H^f язык программ, использующих f в качестве оракула и останавливающихся на пустом входе. | ||
Версия 19:56, 18 января 2014
Определение: |
Множество | m-сводится (является many-one reducible, m-reducible) ко множеству , если существует всюду определённая вычислимая функция , то есть и . Обозначение: .
Определение: |
m-эквивалентно (many-one equivalent, m-equivalent) , если и . Обозначение: . |
Содержание
Свойства
-
- Доказательство: .
.
- Если
- Доказательство: Пусть — программа-разрешитель для . Тогда для любого разрешитель должен вернуть значение .
и разрешимо, то разрешимо.
- Если
- Доказательство: Аналогично предыдущему свойству.
и перечислимо, то перечислимо.
- Если
- Доказательство: Если и , то m-сводящая функция выглядит так .
и , то .
Применение
Лемма: |
Если и неразрешимо, то неразрешимо. |
Доказательство: |
Следует из второго свойства. |
Приведённая лемма позволяет доказывать алгоритмическую неразрешимость некоторой задачи, сводя к ней (а не наоборот!) другую, неразрешимость которой уже доказана.
Например:
Сведение по Тьюрингу
Определение: |
Язык | сводится по Тьюрингу (является Turing reducible) к языку , если язык является разрешимым с использованием как оракула, обозначается как .
Определение: |
Язык | эквивалентен по Тьюрингу (Turing equivalent) языку , если и , обозначается как .
Свойства
- рефлексивность:
- транзитивность: из и следует
- Очевидно, что \equiv_T --- отношение эквивалентности
Т-степени
Обозначим за \mathcal{D}_T множество классов эквивалентности языков по отношению \equiv_T, это множество будет множеством Т-степеней (тьюринговых степеней)
Определение: Т-степенью языка L называется его класс эквивалентности по отношению \equiv_T, то есть \mathrm{deg}_T(L) = \{ M \mid L \equiv_T M \}.
На Т-степенях можно ввести частичный порядок: для d_1, d_2 \in \mathcal{D}_T, d_1 \le d_2, если для каких-то L \in d_1, M \in d_2: L \le_T M, определение корректно, так как порядок не будет зависеть от выбора представителя Т-степени.
Свойства
- \mathrm{R} — минимальный элемент в частичном порядке на Т-степенях. Очевидно из того, что класс разрешимых языков замкнут по использованию разрешимого языка в качестве оракула.
- Любая пара Т-степеней d_1, d_2 \in \mathcal{D}_T имеет наименьшую верхнюю границу d_1 \lor d_2 \in \mathcal{D}_T.
Тьюринговый скачок
Обозначим за H язык программ, останавливающихся на пустом входе. Обозначим за H^f язык программ, использующих f в качестве оракула и останавливающихся на пустом входе.
Можно показать, что:
- f <_T H^f
- Если f \le_T g, то H^f \le_T H^g
Тогда тьюринговым скачком Т-степени d называется Т-степень языка H^L, где L — произвольный язык в d. Заметим, что если L \equiv_T M, то H^L \equiv_T H^M, поэтому определение корректно. Оператор тьюрингова скачка обозначим как J : \mathcal{D}_T \to \mathcal{D}_T.
Литература
- Wikipedia — Many-one reduction
- Wikipedia — Turing reduction
- Верещагин Н., Шень А. — Вычислимые функции, 2-е изд. МЦНМО, 2002, стр. 64. ISBN 5-900916-36-7
- P. Odifreddi — Classical recursion theory. Elsivier, 1992. ISBN 0-444-87295-7