Проблемы с решениями против «настоящих» проблем, которые не да или нет


36

Я читал во многих местах, что некоторые проблемы трудно приблизить ( NP-трудно приблизить их). Но аппроксимация не является проблемой решения: ответ - это действительное число, а не «Да» или «Нет». Также для каждого желаемого коэффициента аппроксимации существует много правильных ответов и много неправильных, и это изменяется с желаемым коэффициентом аппроксимации!

Так как же можно сказать, что эта проблема NP-трудная?

(навеяно вторым пунктом в разделе «Насколько сложно считать количество простых путей между двумя узлами в ориентированном графе?» )

Ответы:


27

Как вы сказали, решение не принимается, поэтому необходимы новые классы сложности и новые типы сокращений, чтобы прийти к подходящему определению NP-твердости для задач оптимизации .

Один из способов сделать это - иметь два новых класса NPO и PO, которые содержат задачи оптимизации, и они, конечно же, имитируют классы NP и P для решения проблем. Новые сокращения также необходимы. Затем мы можем воссоздать версию NP-твердости для задач оптимизации в том же духе, которая была успешной для решения проблем. Но сначала мы должны согласиться, что такое проблема оптимизации .

Определение: Пусть - задача оптимизации . X - это набор входов или экземпляров, подходящих для кодирования в виде строк. L - это функция, которая отображает каждый экземпляр x X на набор строк, возможные решения экземпляра x . Это набор, потому что есть много решений проблемы оптимизации. Таким образом, у нас есть целевая функция f, которая сообщает нам для каждой пары (O=(X,L,f,opt)XLxXx fy L ( x ) экземпляра и решение егостоимостьилизначение. o p t говорит нам, максимизируем мы или минимизируем.(x,y) yL(x)opt

Это позволяет нам определить, каково оптимальное решение : пусть - оптимальное решение экземпляра x X задачи оптимизации O = ( X , L , f , o p t ) с f ( x , y o p t ) = o p t { f ( x , yyoptL(x)xXO=(X,L,f,opt)Оптимальное решение часто обозначается через y .

f(x,yopt)=opt{f(x,y)yL(x)}.
y

Теперь мы можем определить класс NPO : пусть будет множеством всех оптимизационных задач O = ( X , L , f , o p t ) с помощью:NPOO=(X,L,f,opt)

  1. XP
  2. Существует многочлен с | у | p ( | x | ) для всех случаев x X и всех возможных решений y L ( x ) . Кроме того, существует детерминированный алгоритм, который решает за полиномиальное время, является ли y L ( x ) .p|y|p(|x|)xXyL(x)yL(x)
  3. можно оценить за полиномиальное время.f

За этим стоит интуиция:

  1. Мы можем эффективно проверить, является ли действительно допустимым примером нашей проблемы оптимизации.x
  2. Размер допустимых решений полиномиально ограничен по размеру входов, и мы можем эффективно проверить, является ли допустимым решением экземпляра x .yL(x)x
  3. Значение решения может быть эффективно определено.yL(x)

Это отражает то, как определяется , теперь для PO : пусть P O будет множеством всех задач из N P O, которые могут быть решены детерминированным алгоритмом за полиномиальное время.NPPONPO

Теперь мы можем определить то, что мы хотим назвать алгоритмом приближения : алгоритм приближения задачи оптимизации - это алгоритм, который вычисляет допустимое решение y L ( х ) для экземпляра х х .O=(X,L,f,opt)yL(x)xX

Примечание: то, что мы не просим об оптимальном решении, мы только о том, что иметь приемлемое решение .

Теперь у нас есть два типа ошибок: Абсолютная ошибка допустимого решения экземпляра x X задачи оптимизации O = ( X , L , f , o p t ) равна | f ( x , y ) - f ( x , y ) | ,yL(x)xXO=(X,L,f,opt)|f(x,y)f(x,y)|

Мы называем абсолютную ошибку алгоритма аппроксимации для задачи оптимизации O, ограниченной k, если алгоритм A вычисляет для каждого случая x X, допустимое решение с абсолютной ошибкой, ограниченной k .AOkAxXk

Пример: Согласно теореме Визинга хроматического индекса графа (количество цветов в крае окраски с наималейшим количеством цветов , используемым) либо или Δ + 1 , где Δ является степенью максимального узла. Из доказательства теоремы приблизительный-алгоритм может быть разработан , что вычисляет край окраски с & Dgr + 1 цветами. Соответственно, у нас есть алгоритм приближения для M i n i m u m - E d g e C o l o r i nΔΔ+1ΔΔ+1 -проблема, где абсолютная ошибка ограничена 1 .MinimumEdgeColoring1

Этот пример является исключением, небольшие абсолютные ошибки встречаются редко, поэтому мы определяем относительную ошибку аппроксимационного алгоритма A в экземпляре x задачи оптимизации O = ( X , L , f , o p t ) с F ( х , у ) > 0 для всех х X и у L ( х ) , чтобы бытьϵA(x)AxO=(X,L,f,opt)f(x,y)>0xXyL(x)

ϵA(x):={0f(x,A(x))=f(x,y)|f(x,A(x))f(x,y)|max{f(x,A(x)),f(x,y)}f(x,A(x))f(x,y)

где ( х ) = у L ( х ) является допустимым решением вычисляется с помощью аппроксимации-алгоритма A .A(x)=yL(x)A

Теперь мы можем определить алгоритм аппроксимации для задачи оптимизации O = ( X , L , f , o p t ) как алгоритм δ -аппроксимации для O, если относительная ошибка ϵ A ( x ) ограничена δ 0 для каждого экземпляра x X , поэтому ϵ A ( x ) δAO=(X,L,f,opt)δOϵA(x)δ0xX

ϵA(x)δxX.

Выбор в знаменателе определения относительной ошибки был выбран, чтобы сделать определение симметричным для максимизации и минимизации. Значение относительной погрешности ϵ A ( x ) [ 0 , 1 ] . В случае максимизирующей задачи значение решения никогда не бывает меньше ( 1 - ϵ A ( x )max{f(x,A(x)),f(x,y)}ϵA(x)[0,1] и никогда не больше 1 / ( 1 - ϵ A ( x ) ) f ( x , y ) для задачи минимизации.(1ϵA(x))f(x,y)1/(1ϵA(x))f(x,y)

Теперь мы можем назвать оптимизационную задачу -приближаемой, если существует δ -аппроксимативный алгоритм A для O, который выполняется за полиномиальное время.δδAO

Мы не хотим рассматривать ошибку для каждого экземпляра , мы рассматриваем только худший случай. Таким образом, мы определяем ϵ A ( n ) , максимальная относительная погрешность алгоритма аппроксимации A для задачи оптимизации O равна ϵ A ( n ) = sup { ϵ A ( x ) | х | n } .xϵA(n)AO

ϵA(n)=sup{ϵA(x)|x|n}.

Где должен быть размером экземпляра.|x|

Пример: максимальное совпадение в графе может быть преобразовано в минимальное покрытие узлов путем добавления всех инцидентных узлов из соответствия в покрытие вершин. Таким образом , +1 / 2 | C | края покрыты. В каждой вершине крышку , включая оптимальную должны иметь один из узлов каждого покрытым края, в противном случае она может быть улучшена, мы имеем 1 / +2 | C | f ( x , y ) . Отсюда следует, что | C | - f ( x , y C1/2|C|1/2|C|f(x,y) Таким образом, жадный алгоритм для согласования максимального является1/2-approximatio-алгоритмМяпятал-ВертехСоvег. СледовательноMIпятал-ВертехСоvегсоставляет1/2-approximable.

|C|f(x,y)|C|12
1/2MinimalVertexCoverMinimalVertexCover1/2

К сожалению, относительная ошибка не всегда является лучшим понятием качества для аппроксимации, как показано в следующем примере:

Пример: Простой жадный-алгоритм может аппроксимировать . Анализ показывает, что | C |MinimumSetCoverи, следовательно,Minimum-SetCoverбудетln(n)

|C||C|Hn1+ln(n)
MinimumSetCover -приближаемый.ln(n)1+ln(n)

Если относительная ошибка близка к следующее определение является предпочтительным.1

Пусть будет оптимизация-проблема с F ( х , у ) > 0 для всех х X и у L ( х ) и А приближение-алгоритма для вывода . Коэффициент аппроксимации r A ( x ) допустимого решения A ( x ) = yO=(X,L,f,opt)f(x,y)>0xXyL(x)AO rA(x) экземпляра x X есть r A ( x ) = { 1 f ( x , A ( x ) ) = f ( x , y ) max { f ( x , A ( x ) )A(x)=yL(x)xX

rA(x)={1f(x,A(x))=f(x,y)max{f(x,A(x))f(x,y),f(x,y)f(x,A(x))}f(x,A(x))f(x,y)

Как и прежде мы называем аппроксимацию-алгоритм в г -аппроксимацию-алгоритм для оптимизации задачи- O , если приближение-отношение г ( х ) ограничен г 1 для каждого входа х X . r A ( x ) r И еще раз, если у нас есть r -приближающий алгоритм A для задачи оптимизации O, то O называется r -аппроксимируемымArOrA(x)r1xX

rA(x)r
rAOOr, Опять же, мы заботимся только о наихудшем случае и определяем максимальное отношение аппроксимации как r A ( n ) = sup { r A ( x ) | х | n } . Соответственно, коэффициент аппроксимации больше 1 для субоптимальных решений. Таким образом, лучшие решения имеют меньшие отношения. Для М я п я т у м - С й т С оrA(n)
rA(n)=sup{rA(x)|x|n}.
1 теперь мы можем написатьчто ( 1 + LN ( п ) ) -approximable. А в случае М я п я т у т - V е т т е х С о v е г мы знаем из предыдущего примерачто 2 -approximable. Между относительной погрешностью и коэффициентом приближения мы имеем простые соотношения: r A ( x ) = 1MinimumSetCover(1+ln(n))MinimumVertexCover2
rA(x)=11ϵA(x)ϵA(x)=11rA(x).

ϵ<1/2r<2ϵ1/2r2

αα1α1α=1

ONPOrr1

Мы почти закончили. Мы хотели бы скопировать успешные идеи сокращений и полноты из теории сложности. Наблюдение состоит в том, что многие NP-сложные варианты решений задач оптимизации сводятся друг к другу, в то время как их варианты оптимизации имеют различные свойства в отношении их аппроксимируемости. Это связано с полиномиальным временем-карп-редукцией, используемым при сокращении NP-полноты, которое не сохраняет целевую функцию. И даже если целевые функции сохраняются, полиномиальное время-карп-редукция может изменить качество решения.

O1O2O2O1

O1=(X1,L1,f1,opt1)O2=(X2,L2,f2,opt2)NPOO1 APO2O1APO2ghc

  1. g(x1,r)X2x1X1r>1
  2. L2(g(x,r1))L1(x1)x1X1r>1
  3. h(x1,y2,r)L1(x1)x1X1r>1y2L2(g(x1,r))
  4. rgh
  5. f2(g(x1,r),y2)rf1(x1,h(x1,y2,r))1+c(r1)
    x1X1r>1y2L2(g(x1,r))

ghrg(x1)h(x1,y2)

O2APXO1APO2O1APX

CC

ONPOCNPOOCAPOC OAPO

CCAPC

NPOAPXNPOSATWeightedSatisfiabilityNPOMaximum3SATAPX


11
О, и, пожалуйста, примите мои извинения за это сравнительно длинное сообщение, но у меня не было времени написать более короткое.
Uli

1
Изюминкой, конечно, является то, что по теореме PCP вы можете связать MAX3SAT и SAT, что показывает, что NP-трудно приблизить MAX 3SAT лучше, чем некоторая константа. Это в некотором смысле эквивалент теоремы Кука-Левина.
Суреш

1
@Suresh Конечно, но этот результат, о котором вы упомянули, нуждается в сокращении пробелов, насколько я помню. И как вы уже написали о них в своем посте, я не хотел дублировать их здесь.
Uli

Отличный ответ, +1! Интересно, ваш ответ основан на каких-то ссылках?
Тим

@Tim Конечно, есть книги, я перечислил несколько в комментариях к другому ответу
uli

19

Обычно то, что показано, - это NP-твердость "проблемы" версии проблемы. Например, предположим, что вы хотите показать, что трудно приблизить SET COVER с точностью до 2.

Вы определяете следующий «обещанный» экземпляр SET COVER, который мы назовем 2-GAP-SET-COVER:

  • 2

Предположим, что мы показываем, что задача решения, в какой из двух случаев входит проблема, является NP-полной. Затем мы показали, что приближение SET COVER с точностью до 2 является NP-сложным, потому что мы могли бы использовать такой алгоритм для различения этих двух случаев.


4

Два существующих ответа очень информативны, но я не думаю, что кто-либо из них действительно отвечает на вопрос, а именно: «Как может проблема, которая даже не является проблемой решения, быть NP-трудной, когда NP является классом проблем решения ?»

LLL

Некоторые примеры.

  1. LLLL
  2. #SAT - это проблема вычисления количества удовлетворяющих присвоений формулам CNF. Это явно не в NP, потому что, как вы видите, NP - это класс проблем решения, а #SAT - не один из них. Однако, #SAT является NP-сложным при сокращениях Тьюринга за полиномиальное время, потому что мы можем уменьшить SAT до него. Для данного экземпляра SAT мы спрашиваем, сколько существует удовлетворяющих заданий: если есть хотя бы одно, мы говорим «выполнимо»; в противном случае «неудовлетворительно».
  3. φφφφ=φ(Z1Z10)Ziφφφφφ
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.