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


36

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

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

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

Ответы:


27

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

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

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

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

f(x,yopt)=opt{f(x,y′)∣y′∈L(x)}.
y∗

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

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

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

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

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

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

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

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

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

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

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

ϵA(x)≤δ∀x∈X.

Выбор в знаменателе определения относительной ошибки был выбран, чтобы сделать определение симметричным для максимизации и минимизации. Значение относительной погрешности ϵ 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/2Minimal−VertexCoverMinimal−VertexCover1/2

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

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

|C||C∗|≤Hn≤1+ln⁡(n)
Minimum−SetCover -приближаемый.ln⁡(n)1+ln⁡(n)

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

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

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)r≥1x∈X

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 ) = 1Minimum−SetCover(1+ln⁡(n))Minimum−VertexCover2
rA(x)=11−ϵA(x)ϵA(x)=1−1rA(x).

ϵ<1/2r<2ϵ≥1/2r≥2

αα≤1α≥1α=1

ONPOrr≥1

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

O1O2O2O1

O1=(X1,L1,f1,opt1)O2=(X2,L2,f2,opt2)NPOO1 APO2O1≤APO2ghc

  1. g(x1,r)∈X2x1∈X1r>1
  2. L2(g(x,r1))≠∅L1(x1)≠∅x1∈X1r>1
  3. h(x1,y2,r)∈L1(x1)x1∈X1r>1y2∈L2(g(x1,r))
  4. rgh
  5. f2(g(x1,r),y2)≤r⇒f1(x1,h(x1,y2,r))≤1+c⋅(r−1)
    x1∈X1r>1y2∈L2(g(x1,r))

ghrg(x1)h(x1,y2)

O2∈APXO1≤APO2O1∈APX

CC

ONPOCNPOOC≤APO′∈C O′≤APO

CC≤APC

NPOAPXNPOSATWeighted−SatisfiabilityNPOMaximum−3SATAPX


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. φφφφ′=φ∧(Z1∨⋯∨Z10)Ziφ′φφ′φφ′
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.