Сведение относительно класса функций. Сведение по Карпу. Трудные и полные задачи — различия между версиями
Leugenea (обсуждение | вклад) (Добавил доказательство леммы) |
Leugenea (обсуждение | вклад) м (→Определение сведения) |
||
| Строка 6: | Строка 6: | ||
<tex>D</tex> — множество языков, <tex>\widetilde{D}</tex> — '''сведение''' — класс функций, соответствующих языкам из <tex>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}}{}}{\ | + | <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>. |
}} | }} | ||
| Строка 14: | Строка 14: | ||
|definition = | |definition = | ||
'''Язык <tex>L_1</tex> сводится по Карпу к языку <tex>L_2</tex> (<tex>L_1 \leq L_2</tex>)''', если существует такая функция <tex>f(x)</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>L_1 \leq L_2</tex>)''', если существует такая функция <tex>f(x)</tex>, вычислимая за полиномиальное от длины входа время, что <tex>x</tex> принадлежит <tex>L_1</tex> тогда и только тогда, когда <tex>f(x)</tex> принадлежит <tex>L_2</tex>:<br> | ||
| − | <tex> (L_1 \leq L_2) \overset{\underset{\mathrm{def}}{}}{\ | + | <tex> (L_1 \leq L_2) \overset{\underset{\mathrm{def}}{}}{\iff} ( \exists f \in P : x \in L_1 \Leftrightarrow f(x) \in L_2 ) </tex>. |
}} | }} | ||
Версия 21:16, 8 мая 2012
Содержание
Определение сведения
| Определение: |
| — множество языков, — сведение — класс функций, соответствующих языкам из .
Язык сводится к языку относительно (), если существует такая функция из , что принадлежит тогда и только тогда, когда принадлежит : |
Теперь можно определить сведение по Карпу как частный случай сведения.
| Определение: |
| Язык сводится по Карпу к языку (), если существует такая функция , вычислимая за полиномиальное от длины входа время, что принадлежит тогда и только тогда, когда принадлежит : . |
Банальный пример сведения по Карпу
Зададим следующие языки:
- — множество пар вида , где — граф, а — число, таких, что в есть независимое множество размера .
- — множество пар вида , где — граф, а — число, такое, что в есть клика размера .
| Теорема: |
| Доказательство: |
|
Рассмотрим функцию , где — дополнение графа . вычислима за линейное время от длины входа, если граф представлен в видел матрицы смежности.
|
Замечание. Многие другие примеры сведения по Карпу могут быть найдены в статье про примеры NP-полных языков.
Свойства сведения
| Теорема (о транзитивности): |
Сведение по Карпу транзитивно, то есть: . |
| Доказательство: |
|
Пусть и — функции из определения сведения для и соответственно. Из определения следует: . |
| Лемма: |
| Доказательство: |
|
По определению сведения существует такая функция из класса , что . Для того, чтобы свести к будем использовать ту же функцию . |
Определения трудных и сложных задач
| Определение: |
| — сложностный класс, — сведение. Язык называется -трудным относительно сведения (-hard), если любой язык из сводится по к : — -hard . |
| Определение: |
| — сложностный класс, — сведение. Язык называется -полным относительно сведения (-complete), если является -трудным относительно сведения и сам лежит в . |
Замечание. Часто используется сведение по Карпу, поэтому слова «относительно сведения по Карпу» обычно опускаются. Например, NP-полные языки.