Читайте также: |
|
Рассмотрим класс задач NP. Здесь можно говорить о сводимости языков. Формальное определения полиномиальной сводимости следующее.
Определение. Говорят, что язык L1ÍA* сводится к языку L2ÍB*, если существует такое отображение f: A*®B*, что выполняются два условия.
1. Функция f вычисляется за полиномиальное время. (Например, существует МТ, которая за полиномиальное число тактов вычисляет эту функцию.)
2. Для любого входа IÎA* соотношение IÎL1 выполняется тогда и только тогда, когда выполняется соотношение f(I)ÎL2.
Сводимость языков обозначается L1µL2.
Вначале приведем два простых примера.
Пример. Задача "гамильтонов цикл" сводится к задаче "коммивояжер".
Схема решения. Матрица весов ребер A задачи коммивояжер строится из матрицы инциденций графа G задачи гамильтонов цикл по правилам: наличие ребра в G соответствует единице в A, а его отсутствие соответствует двойке. Число B для задачи коммивояжер определяется равным числу вершин в G.
Определим задачу «3-КНФ» как частный случай задачи «КНФ-выпонимость», в котором каждая КНФ содержит не более трех литералов.
Теперь приведем два очевидных свойства соотношения "сводимость".
Лемма. Если L1µL2 и L2ÎP, то L2ÎP.
Доказательство. Смысл этого утверждения в том, что сведения некоторой новой задачи к известной полиномиально разрешимой позволяет утверждать, что эта новая также полиномиально разрешима.
Мы приводим доказательство этого утверждения, так как оно конструктивно и, по сути дела, описывает алгоритм решения новой задачи.
Пусть A и B алфавиты языков L1 и L2, а функция f: A*®B* осуществляет полиномиальную сводимость L1 к L2.
Так как L2ÎP, то существует МТ, которая за полиномиальное число тактов решает эту задачу. Обозначим эту машину через М2. Через Мf обозначим машину Тьюринга, которая за полиномиальное число тактов вычисляет эту функцию f. Верхние оценки сложности решения обозначим через p2(n) и pf(n), где p2 и pf - некоторые полиномы.
Построим теперь МТ, которая решает первую задачу (допускает язык L1). Пусть задан некоторый вход IÎL1 (условие индивидуальной задачи). Сначала с помощью Мf преобразуем его во вход f(I) второй задачи. Затем с помощью М2 выясняем справедливость соотношения f(I)ÎL2. Так как для любого входа IÎA* соотношение IÎL1 выполняется тогда и только тогда, когда выполняется соотношение f(I)ÎL2, то требуемый алгоритм построен. Время работы ограничено O(p2(pf(I)) + pf(I))), что является полиномом, от n.
Лемма доказана.
Мы видим, что в построенном алгоритме по одному разу работают обе машины Тьюринга. В случае программы на некотором современном языке программирования это аналогично ситуации, когда некоторая программа составляется путем последовательного однократного выполнения двух других программ.
Соотношение полиномиальной сводимости транзитивно, то есть справедливо следующее соотношение.
Лемма. Если L1µL2 и L2µL3, то L1µL3.
Доказательство этого утверждения очевидно.
Дата добавления: 2015-07-11; просмотров: 126 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Смысл сводимости | | | Сводимость по Тьюрингу |