Как вы сказали, решение не принимается, поэтому необходимы новые классы сложности и новые типы сокращений, чтобы прийти к подходящему определению 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)
- X∈P
- Существует многочлен с | у | ≤ p ( | x | ) для всех случаев x ∈ X и всех возможных решений y ∈ L ( x ) . Кроме того, существует детерминированный алгоритм, который решает за полиномиальное время, является ли y ∈ L ( x ) .p|y|≤p(|x|)x∈Xy∈L(x)y∈L(x)
- можно оценить за полиномиальное время.f
За этим стоит интуиция:
- Мы можем эффективно проверить, является ли действительно допустимым примером нашей проблемы оптимизации.Икс
- Размер допустимых решений полиномиально ограничен по размеру входов, и мы можем эффективно проверить, является ли допустимым решением экземпляра x .Y∈ L ( x )Икс
- Значение решения может быть эффективно определено.Y∈ L ( x )
Это отражает то, как определяется , теперь для PO : пусть P O будет множеством всех задач из N P O, которые могут быть решены детерминированным алгоритмом за полиномиальное время.NппОNпО
Теперь мы можем определить то, что мы хотим назвать алгоритмом приближения : алгоритм приближения задачи оптимизации - это алгоритм, который вычисляет допустимое решение y ∈ L ( х ) для экземпляра х ∈ х .O = ( X, L , F, о п т )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, о п т )| е( х , у) - ф( х , у*) |
Мы называем абсолютную ошибку алгоритма аппроксимации для задачи оптимизации O, ограниченной k, если алгоритм A вычисляет для каждого случая x ∈ X, допустимое решение с абсолютной ошибкой, ограниченной k .AОКAx ∈ XК
Пример: Согласно теореме Визинга хроматического индекса графа (количество цветов в крае окраски с наималейшим количеством цветов , используемым) либо или Δ + 1 , где Δ является степенью максимального узла. Из доказательства теоремы приблизительный-алгоритм может быть разработан , что вычисляет край окраски с & Dgr + 1 цветами. Соответственно, у нас есть алгоритм приближения для M i n i m u m - E d g e C o l o r i nΔΔ + 1ΔΔ + 1 -проблема, где абсолютная ошибка ограничена 1 .М я п я м у м - Е д г е С о л о г I п г1
Этот пример является исключением, небольшие абсолютные ошибки встречаются редко, поэтому мы определяем относительную ошибку аппроксимационного алгоритма A в экземпляре x задачи оптимизации O = ( X , L , f , o p t ) с F ( х , у ) > 0 для всех х ∈ X и у ∈ L ( х ) , чтобы бытьεA( х )AИксO = ( X, L , F, о п т )е( х , у) > 0x ∈ XY∈ L ( x )
εA( х ) : = { 0| е(x,A(x))−f(x,y∗)|max{f(x,A(x)),f(x,y∗)}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)={1max{f(x,A(x))f(x,y∗), ф( х , у*)е( х , А ( х ) )}е( х , А ( х ) ) = f( х , у*)е( х , А ( х ) ) ≠ f( х , у*)
Как и прежде мы называем аппроксимацию-алгоритм в г -аппроксимацию-алгоритм для оптимизации задачи- O , если приближение-отношение г ( х ) ограничен г ≥ 1 для каждого входа х ∈ X .
r A ( x ) ≤ r
И еще раз, если у нас есть r -приближающий алгоритм A для задачи оптимизации O, то O называется r -аппроксимируемымAрОрA( х )r ≥ 1x ∈ X
рA( х ) ≤ г
рAООр, Опять же, мы заботимся только о наихудшем случае и определяем
максимальное отношение аппроксимации как
r A ( n ) = sup { r A ( x ) ∣ | х | ≤ n } .
Соответственно, коэффициент аппроксимации больше
1 для субоптимальных решений. Таким образом, лучшие решения имеют меньшие отношения. Для
М я п я т у м - С й т С орA( н )рA( n ) = sup { rA( х ) ∣ | х | ≤ n } .
1 теперь мы можем написатьчто
( 1 + LN ( п ) ) -approximable. А в случае
М я п я т у т - V е т т е х С о v е г мы знаем из предыдущего примерачто
2 -approximable. Между относительной погрешностью и коэффициентом приближения мы имеем простые соотношения:
r A ( x ) = 1М я п я м у м - S е т С о v е г( 1 + Ин( н ) )М я п я м у м - В е р т е х С о v е г2рA( х ) = 11 - ϵA( х )εA( х ) = 1 - 1рA( х ),
ε < 1 / 2р < 2& epsi ; ≥ 1 / 2r ≥ 2
αα ≤ 1α ≥ 1α = 1
ОNпОрr ≥ 1
Мы почти закончили. Мы хотели бы скопировать успешные идеи сокращений и полноты из теории сложности. Наблюдение состоит в том, что многие NP-сложные варианты решений задач оптимизации сводятся друг к другу, в то время как их варианты оптимизации имеют различные свойства в отношении их аппроксимируемости. Это связано с полиномиальным временем-карп-редукцией, используемым при сокращении NP-полноты, которое не сохраняет целевую функцию. И даже если целевые функции сохраняются, полиномиальное время-карп-редукция может изменить качество решения.
О1О2О2О1
О1= ( X1, Л1, ф1, о п т1)О2= ( X2, Л2, ф2, о п т2)NпОО1 A PО2О1≤A PО2гчасс
- г( х1, r ) ∈ X2Икс1∈ X1r > 1
- L2( г( х , г1) ) ≠ ∅L1( х1) ≠ ∅Икс1∈ X1r > 1
- ч ( х1, у2, r ) ∈ L1( х1)Икс1∈ X1r > 1Y2∈ L2( г( х1, Г ) )
- ргчас
е2(г( х1, г ) , у2) ≤ r ⇒ f1( х1, ч ( х1, у2, r ) ) ≤ 1 + c ⋅ ( r - 1 )
Икс1∈ X1r > 1Y2∈ L2(г( х1, Г ) )
гчасрг( х1)ч ( х1, у2)
О2∈ A PИксО1≤A PО2О1∈ A PИкс
СС
ОNпОСNпООС≤A PО'∈ C О'≤A PО
СС≤A PС
NпОA PИксNпОS A TW e i g h t e d - S a t i s fя б я л я т уNпОМ а х я м у м - 3 S ТA PИкс