Сведение относительно класса функций. Сведение по Карпу. Трудные и полные задачи — различия между версиями
(→Определение сведения) |
(Мелкие фиксы) |
||
Строка 1: | Строка 1: | ||
− | == | + | == Определения == |
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | <tex>D</tex> — множество языков, <tex>\widetilde{D}</tex> | + | <tex>D</tex> — множество языков, <tex>\widetilde{D}</tex> — класс функций, соответствующих языкам из <tex>D</tex>. |
'''Язык <tex>L_1</tex> сводится к языку <tex>L_2</tex> относительно <tex>\widetilde{D}</tex> (<tex>L_1 \leq_{\widetilde{D}} L_2</tex>)''', если существует такая функция <tex>f(x)</tex> из <tex>\widetilde{D}</tex>, что <tex>x</tex> принадлежит <tex>L_1</tex> тогда и только тогда, когда <tex>f(x)</tex> принадлежит <tex>L_2</tex>:<br> | '''Язык <tex>L_1</tex> сводится к языку <tex>L_2</tex> относительно <tex>\widetilde{D}</tex> (<tex>L_1 \leq_{\widetilde{D}} L_2</tex>)''', если существует такая функция <tex>f(x)</tex> из <tex>\widetilde{D}</tex>, что <tex>x</tex> принадлежит <tex>L_1</tex> тогда и только тогда, когда <tex>f(x)</tex> принадлежит <tex>L_2</tex>:<br> | ||
<tex> (L_1 \leq_{\widetilde{D}} L_2) \overset{\underset{\mathrm{def}}{}}{\iff} ( \exists f \in \widetilde{D} : x \in L_1 \Leftrightarrow f(x) \in L_2 ) </tex>. | <tex> (L_1 \leq_{\widetilde{D}} L_2) \overset{\underset{\mathrm{def}}{}}{\iff} ( \exists f \in \widetilde{D} : x \in L_1 \Leftrightarrow f(x) \in L_2 ) </tex>. | ||
}} | }} | ||
− | |||
− | |||
− | |||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
Сведение относительно <tex>\widetilde{P}</tex> называется '''сведением по Карпу'''. | Сведение относительно <tex>\widetilde{P}</tex> называется '''сведением по Карпу'''. | ||
}} | }} | ||
+ | |||
+ | '''Замечание.''' Часто используется именно сведение по Карпу, поэтому слова «относительно сведения по Карпу» и индекс у символа сведения обычно опускаются. Например, [[Примеры NP-полных языков. Теорема Кука | NP-полные языки]]. | ||
== Банальный пример сведения по Карпу == | == Банальный пример сведения по Карпу == | ||
Строка 50: | Строка 49: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | <tex>C</tex> — сложностный класс, <tex>\widetilde{D}</tex> — сведение. Язык <tex>L</tex> называется '''<tex>C</tex>-трудным относительно | + | <tex>C</tex> — сложностный класс, <tex>\widetilde{D}</tex> — сведение. Язык <tex>L</tex> называется '''<tex>C</tex>-трудным относительно <tex>\widetilde{D}</tex>-сведения (<tex>C</tex>-hard)''', если любой язык <tex>M</tex> из <tex>C</tex> сводится к <tex>L</tex> относительно <tex>\widetilde{D}</tex>:<br> |
<tex> (L </tex> — <tex>C</tex>-hard <tex>) \overset{\underset{\mathrm{def}}{}}{\Leftrightarrow} ( \forall M \in C \Rightarrow M \leq_{f} L, f \in \widetilde{D} ) </tex>. | <tex> (L </tex> — <tex>C</tex>-hard <tex>) \overset{\underset{\mathrm{def}}{}}{\Leftrightarrow} ( \forall M \in C \Rightarrow M \leq_{f} L, f \in \widetilde{D} ) </tex>. | ||
}} | }} | ||
Строка 56: | Строка 55: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | <tex>C</tex> — сложностный класс, <tex>\widetilde{D}</tex> — сведение. Язык <tex>L</tex> называется '''<tex>C</tex>-полным относительно | + | <tex>C</tex> — сложностный класс, <tex>\widetilde{D}</tex> — сведение. Язык <tex>L</tex> называется '''<tex>C</tex>-полным относительно <tex>\widetilde{D}</tex>-сведения (<tex>C</tex>-complete)''', если <tex>L</tex> является <tex>C</tex>-трудным относительно <tex>\widetilde{D}</tex>-сведения и сам лежит в <tex>C</tex>. |
}} | }} | ||
− | |||
− |
Версия 09:40, 9 мая 2012
Содержание
Определения
Определение: |
Язык | — множество языков, — класс функций, соответствующих языкам из .
Определение: |
Сведение относительно | называется сведением по Карпу.
Замечание. Часто используется именно сведение по Карпу, поэтому слова «относительно сведения по Карпу» и индекс у символа сведения обычно опускаются. Например, NP-полные языки.
Банальный пример сведения по Карпу
Зададим следующие языки:
- независимое множество размера . — множество пар вида , где — граф, а — число, таких, что в есть
- клика размера . — множество пар вида , где — граф, а — число, такое, что в есть
Теорема: |
Доказательство: |
Рассмотрим функцию дополнение графа . вычислима за линейное время от длины входа, если граф представлен в видел матрицы смежности.
|
Замечание. Многие другие примеры сведения по Карпу могут быть найдены в статье про примеры NP-полных языков.
Свойства сведения
Теорема (о транзитивности): |
Сведение по Карпу транзитивно, то есть: . |
Доказательство: |
Пусть |
Лемма: |
Доказательство: |
По определению сведения существует такая функция |
Определения трудных и сложных задач
Определение: |
— -hard . | — сложностный класс, — сведение. Язык называется -трудным относительно -сведения ( -hard), если любой язык из сводится к относительно :
Определение: |
— сложностный класс, — сведение. Язык называется -полным относительно -сведения ( -complete), если является -трудным относительно -сведения и сам лежит в . |