M-сводимость — различия между версиями
Bloof (обсуждение | вклад) |
м (rollbackEdits.php mass rollback) |
||
(не показано 50 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
− | |definition=Множество | + | |definition=Множество <tex>A</tex> '''<tex>\textbf m</tex>-сводится''' (англ. ''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-эквивалентно''' <tex>B</tex>, если <tex>A\ | + | |definition=<tex>A</tex> '''<tex>\textbf m</tex>-эквивалентно''' (англ. ''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>. |
}} | }} | ||
== Свойства == | == Свойства == | ||
− | + | {{Утверждение | |
− | + | |about=рефлексивность | |
− | + | |statement= | |
− | + | <tex>A\leqslant_{m}A</tex>. | |
− | + | |proof=<tex>f(x)=x</tex>. | |
+ | }} | ||
+ | |||
+ | {{Утверждение | ||
+ | |about=разрешимость | ||
+ | |statement= | ||
+ | Если <tex>A\leqslant_{m}B</tex> и <tex>B</tex> разрешимо, то <tex>A</tex> разрешимо. | ||
+ | |proof=Пусть <tex>p</tex> — программа-разрешитель для <tex>B</tex>. Тогда для любого <tex>x\in A</tex> разрешитель должен вернуть значение <tex>p(f(x))</tex>. | ||
+ | }} | ||
+ | |||
+ | {{Утверждение | ||
+ | |about=перечислимость | ||
+ | |statement= | ||
+ | Если <tex>A\leqslant_{m}B</tex> и <tex>B</tex> перечислимо, то <tex>A</tex> перечислимо. | ||
+ | |proof=Аналогично предыдущему свойству. | ||
+ | }} | ||
+ | {{Утверждение | ||
+ | |about=транзитивность | ||
+ | |statement= | ||
+ | Если <tex>A\leqslant_{m}B</tex> и <tex>B\leqslant_{m}C</tex>, то <tex>A\leqslant_{m}C</tex>. | ||
+ | |proof=Если <tex>f:A\to B</tex> и <tex>g:B\to C</tex>, то <tex>m</tex>-сводящая функция <tex>h:A\to C</tex> выглядит так <tex>h(x) = g(f(x))</tex>. | ||
+ | }} | ||
− | {{ | + | == Применение == |
+ | {{Лемма | ||
|statement= | |statement= | ||
− | Если <tex>A\ | + | Если <tex>A\leqslant_{m}B</tex> и <tex>A</tex> неразрешимо, то <tex>B</tex> неразрешимо. |
|proof= | |proof= | ||
− | + | Следует из второго свойства. | |
+ | }} | ||
+ | |||
+ | Приведённая лемма позволяет доказывать алгоритмическую неразрешимость некоторой задачи, сводя к ней ''(а не наоборот!)'' другую, неразрешимость которой уже доказана. | ||
+ | |||
+ | ===Примеры применения=== | ||
+ | {{main|Примеры неразрешимых задач: проблема соответствий Поста|Примеры неразрешимых задач: задача о замощении}} | ||
+ | |||
+ | ==Сведение по Тьюрингу== | ||
+ | {{Определение | ||
+ | |definition= | ||
+ | Язык <tex>L</tex> '''сводится по Тьюрингу''' (англ. ''Turing reducible'') к языку <tex>M</tex>, если язык <tex>L</tex> является разрешимым с использованием <tex>M</tex> как оракула, обозначается как <tex>L \leqslant_T M</tex>. | ||
+ | }} | ||
− | + | {{Определение | |
+ | |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>\mathcal{D}_T</tex> множество классов эквивалентности языков по отношению <tex>\equiv_T</tex>, это множество будет множеством <tex>T</tex>-степеней (тьюринговых степеней). | ||
+ | |||
+ | {{Определение | ||
+ | |definition= | ||
+ | '''<tex>T</tex>-степенью языка <tex>L</tex>''' (англ. ''Turing degree'') называется его класс эквивалентности по отношению <tex>\equiv_T</tex>, то есть <tex>\mathrm{deg}_T(L) = \{ M \mid L \equiv_T M \}</tex>. | ||
+ | }} | ||
+ | |||
+ | На <tex>T</tex>-степенях можно ввести частичный порядок: для <tex>d_1, d_2 \in \mathcal{D}_T, d_1 \leqslant d_2</tex>, если для каких-то <tex>L \in d_1, M \in d_2: L \leqslant_T M</tex>, определение корректно, так как порядок не будет зависеть от выбора представителя <tex>T</tex>-степени. | ||
+ | |||
+ | ==== Свойства ==== | ||
+ | * <tex>\mathrm{R}</tex> — минимальный элемент в частичном порядке на <tex>T</tex>-степенях. Очевидно из того, что класс разрешимых языков замкнут по использованию разрешимого языка в качестве оракула. | ||
+ | * Любая пара <tex>T</tex>-степеней <tex>d_1, d_2 \in \mathcal{D}_T</tex> имеет наименьшую верхнюю границу <tex>d_1 \lor d_2 \in \mathcal{D}_T</tex>. | ||
+ | |||
+ | ==== Тьюринговый скачок ==== | ||
+ | Обозначим за <tex>H</tex> язык программ, останавливающихся на пустом входе. Обозначим за <tex>H^f</tex> язык программ, использующих <tex>f</tex> в качестве оракула и останавливающихся на пустом входе. | ||
+ | |||
+ | Можно показать, что: | ||
+ | |||
+ | * <tex>f <_T H^f</tex> | ||
+ | * Если <tex>f \leqslant_T g</tex>, то <tex>H^f \leqslant_T H^g</tex> | ||
+ | |||
+ | {{Определение | ||
+ | |definition= | ||
+ | '''Тьюринговым скачком <tex>T</tex>-степени <tex>d</tex>''' (англ. ''Turing jump'') называется <tex>T</tex>-степень языка <tex>H^L</tex>, где <tex>L</tex> — произвольный язык в <tex>d</tex>. | ||
+ | }} | ||
+ | |||
+ | Заметим, что если <tex>L \equiv_T M</tex>, то <tex>H^L \equiv_T H^M</tex>, поэтому определение корректно. Оператор тьюрингова скачка обозначим как <tex>J : \mathcal{D}_T \to \mathcal{D}_T</tex>. | ||
+ | |||
+ | == См. также == | ||
+ | * [[Примеры неразрешимых задач: задача о выводе в полусистеме Туэ| Задача о выводе в полусистеме Туэ]] | ||
+ | * [[Примеры неразрешимых задач: проблема соответствий Поста | Проблема соответствий Поста]] | ||
+ | * [[Примеры неразрешимых задач: задача о замощении | Задача о замощении]] | ||
+ | * [[Неразрешимость исчисления предикатов первого порядка]] | ||
+ | |||
+ | == Источники информации == | ||
+ | * [http://en.wikipedia.org/wiki/Many-one_reduction Wikipedia — Many-one reduction] | ||
+ | * [http://en.wikipedia.org/wiki/Turing_reduction Wikipedia — Turing reduction] | ||
+ | * [http://www.personal.psu.edu/t20/notes/topics-s05.pdf 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 | ||
{{Заголовок со строчной буквы}} | {{Заголовок со строчной буквы}} | ||
+ | |||
+ | [[Категория: Теория формальных языков]] | ||
+ | [[Категория: Теория вычислимости]] | ||
+ | [[Категория: Примеры неразрешимых задач]] |
Текущая версия на 19:15, 4 сентября 2022
Определение: |
Множество вычислимая функция , то есть и . Обозначение: . | -сводится (англ. many-one reducible, m-reducible) ко множеству , если существует всюду определённая
Определение: |
-эквивалентно (англ. many-one equivalent, m-equivalent) , если и . Обозначение: . |
Свойства
Утверждение (рефлексивность): |
. |
. |
Утверждение (разрешимость): |
Если и разрешимо, то разрешимо. |
Пусть | — программа-разрешитель для . Тогда для любого разрешитель должен вернуть значение .
Утверждение (перечислимость): |
Если и перечислимо, то перечислимо. |
Аналогично предыдущему свойству. |
Утверждение (транзитивность): |
Если и , то . |
Если | и , то -сводящая функция выглядит так .
Применение
Лемма: |
Если и неразрешимо, то неразрешимо. |
Доказательство: |
Следует из второго свойства. |
Приведённая лемма позволяет доказывать алгоритмическую неразрешимость некоторой задачи, сводя к ней (а не наоборот!) другую, неразрешимость которой уже доказана.
Примеры применения
Сведение по Тьюрингу
Определение: |
Язык | сводится по Тьюрингу (англ. Turing reducible) к языку , если язык является разрешимым с использованием как оракула, обозначается как .
Определение: |
Язык | эквивалентен по Тьюрингу (англ. Turing equivalent) языку , если и , обозначается как .
Т-степени
Обозначим за
множество классов эквивалентности языков по отношению , это множество будет множеством -степеней (тьюринговых степеней).
Определение: |
-степенью языка (англ. Turing degree) называется его класс эквивалентности по отношению , то есть . |
На -степенях можно ввести частичный порядок: для , если для каких-то , определение корректно, так как порядок не будет зависеть от выбора представителя -степени.
Свойства
- — минимальный элемент в частичном порядке на -степенях. Очевидно из того, что класс разрешимых языков замкнут по использованию разрешимого языка в качестве оракула.
- Любая пара -степеней имеет наименьшую верхнюю границу .
Тьюринговый скачок
Обозначим за
язык программ, останавливающихся на пустом входе. Обозначим за язык программ, использующих в качестве оракула и останавливающихся на пустом входе.Можно показать, что:
- Если , то
Определение: |
Тьюринговым скачком | -степени (англ. Turing jump) называется -степень языка , где — произвольный язык в .
Заметим, что если , то , поэтому определение корректно. Оператор тьюрингова скачка обозначим как .
См. также
Источники информации
- 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