Дано 3CNF з пунктами про змінні . Припустимо, і і відображаються у формулі не більше, ніж разів відповідно.ϕ1,…,ϕkϕ1,…,ϕkx1,…,xnx1,…,xnxixi¯xixi¯¯¯¯¯kiki
Ми розробляємо кольоровий DAG , вершини якого складаються з трьох частин:GG
- Вершини "призначення" і , , . Колір з "кольором" , і з .vi(j)vi(j)ˉvi(j)v¯i(j)1≤i≤n1≤i≤n1≤j≤ki1≤j≤kivi(j)vi(j)xi(j)xi(j)ˉvi(j)v¯i(j)¯xi(j)xi¯¯¯¯¯(j)
- Вершини "пункту"wi′(j′)wi′(j′) , 1 ≤ i ′ ≤ k , j ′ = 1 , 2 , 3 . Колір w i ′ ( j ′ ) з кольором x i ( j ) (або ¯ x i ( j ) ), якщо ¯ x i (або x i , відповідно) є j ′ -ми буквами пункту ϕ i ′1≤i′≤kj′=1,2,3wi′(j′)xi(j)xi¯¯¯¯¯(j)xi¯¯¯¯¯xij′ϕi′, і це j -й пункт, що містить цей літерал.j
- "Вирізати" вершини s = s 0 , s 1 , ... , s n , s n + 1 , ... s n + k = t . Розфарбуйте їх різними кольорами, які відрізняються зверху.s=s0,s1,…,sn,sn+1,…sn+k=t
Краї включають:
- s i - 1 v i ( 1 ) , v i ( j ) v i ( j + 1 ) , v i ( k i ) s i ;si−1vi(1)vi(j)vi(j+1)vi(ki)si
- s i - 1 ˉ v i ( 1 ) , ˉ v i ( j ) ˉ v i ( j + 1 ) , ˉ v i ( k i ) s i ;si−1v¯i(1)v¯i(j)v¯i(j+1)v¯i(ki)si
- і s n + i ′ - 1 w i ′ ( j ′ ) , w i ′ ( j ′ ) s n + i ′ .sn+i′−1wi′(j′)wi′(j′)sn+i′
Наприклад, із 3CNF
( x 1 ∨ x 2 ∨ ¯ x 3 ) ∧ ( x 1 ∨ ¯ x 2 ∨ x 3 )
будується наступний графік (напрямки ребер - зліва направо).
(x1∨x2∨x3¯¯¯¯¯)∧(x1∨x2¯¯¯¯¯∨x3)
Тепер не важко побачити, що оригінальний 3CNF є задоволеним тоді і лише за наявності у G s - t шляху з різними кольорами вершин .stG
(До речі, це побічний продукт, що наявність s - t шляху з різними вершинними кольорами в кольорі DAG є важким NP . Я не знайшов багато літератур про цю проблему в обчислювальній перспективі. Якщо ви знаєте, будь ласка коментар!)stNP-hard
Отже, яке співвідношення між проблемою G та OP? Інтуїтивно те, що ми будемо робити, - це створити матрицю h , щоб кожен колір був відображений у рядок (який є особою), а краї відображалися у послідовних стовпцях (часові проміжки). Тому максимальний графік, який в основному йде зліва направо в матриці, відповідає s - t шляху.Ghst
Наша матриця h має 2 n + 1 + ∑ i 2 k i + k стовпців, індекси починаються з 0 . У наступному constrcution X Y два значення задовольняють 1 « X « Y . Співвідношення X / 1 , Y / X можуть бути великими потужностями k і n . Нехай K i = 2 i + 2 ∑ i jh2n+1+∑i2ki+k0XY1≪X≪YX/1,Y/Xkn= 1 кi.Ki=2i+2∑ij=1ki
- Для кожного s i , 0 ≤ i ≤ n , нехай h ( s i , K i ) = h ( s i , K i - k i - 1 ) = h ( s i , K i + k i + 1 + 1 ) = Y (якщо координата існує, те саме нижче).si0≤i≤nh(si,Ki)=h(si,Ki−ki−1)=h(si,Ki+ki+1+1)=Y
- Для кожного x i ( j ) , нехай h ( x i ( j ) , K i - 1 + j ) = X ; Для кожного ¯ х я ( J ) , нехай ч ( ¯ х я ( J ) , К я - 1 + K я + 1 + J ) = Х .xi(j)h(xi(j),Ki−1+j)=Xxi¯¯¯¯¯(j)h(xi¯¯¯¯¯(j),Ki−1+ki+1+j)=X
- Для кожного ϕ i ′ , 1 ≤ i ′ ≤ k та буквального x у пункті ϕ i ′ , нехай h ( x , K n + i ′ ) = 1 .ϕi′1≤i′≤kxϕi′h(x,Kn+i′)=1
- Усі інші записи - 0.
Наприклад, для наведеного вище прикладу графік є відповідною матрицею
Тепер ми стверджуємо: вихідний 3CNF задовольняється тоді і лише тоді, коли максимальне значення дорівнює ( 2 n + 1 ) Y + ∑ i k i X + k .(2n+1)Y+∑ikiX+k
Розглянемо планування досягнення максимального значення. Оскільки в h є точні ( 2 n + 1 ) стовпців, що містять Y , їх слід охопити. Для стовпця K i + k i + 1, який має два варіанти Y , припустимо, що планування призначає його s s i . Оскільки стовпець K i повинен бути призначений s i , то послідовністю ми повинні втратити стовпці K i + 1 до K i + k(2n+1)hYKi+ki+1YsiKisiKi+1i . Те ж саме відбувається, якщо планування призначить стовпчик K i + k i + 1 до s i + 1 .Ki+kiKi+ki+1si+1
Тому, щоб мати значення ∑ i k i X , ми повинні вибрати всі інші наявні X у матриці, що відповідає призначенню змінних. Тож значення решти k досягається тоді і лише тоді, коли призначення відповідає кожному пункту.∑ikiXXk
На закінчення, відступали максимальне значення юридичного планування в NP-важкою . Можливо, тому всі наші попередні спроби знайти алгоритм зазнали невдачі.NP-hard