Для 3CNF с предложениями по переменным x 1 , … , x n . Предположим, что x i и ¯ x i появляются в формуле не более k i раз соответственно.φ1, … , ΦКИкс1, … , ХNИксяИкся¯¯¯¯¯Кя
Мы разрабатываем цветной DAG , вершины которого состоят из трех частей:г
- "Назначение" вершины и ˉ v я ( J ) , 1 ≤ я ≤ N , 1 ≤ J ≤ K I . Цвет v я ( J ) с "цветом" х I ( J ) , и ˉ v я ( J ) с ¯ х я ( J ) .vя( J )v¯я( J )1 ≤ i ≤ n1 ≤ j ≤ kяvя( J )Икся( J )v¯я( J )Икся¯¯¯¯¯( J )
- Вершины «пункта» , 1 ≤ i ′ ≤ k , j ′ = 1 , 2 , 3 . Цвет ж я ' ( J ' ) с цветом х I ( J ) (или ¯ х я ( J ) ) , если ¯ х я (или х I , соотв.) Является J 'wi′(j′)1≤i′≤kj′=1,2,3wi′(j′)xi(j)xi¯¯¯¯¯(j)xi¯¯¯¯¯xij′-ый литерал предложения , и это j-й оператор, содержащий этот литерал.ϕi′j
- «Вырезать» вершины . Раскрасьте их разными цветами, отличными от приведенных выше.s=s0,s1,…,sn,sn+1,…sn+k=t
Края включают в себя:
- , v i ( j ) v i ( j + 1 ) , v i ( k i ) s i ;si−1vi(1)vi(j)vi(j+1)vi(ki)si
- , ˉ v я ( J ) ˉ v я ( J + 1 ) , ˉ v я ( K I ) Š я ;si−1v¯i(1)v¯i(j)v¯i(j+1)v¯i(ki)si
- и , w i ′ ( j ′ ) s n + i ′ .sn+i′−1wi′(j′)wi′(j′)sn+i′
Так , например, из 3CNF
следующий график строится (Краевые направления слева направо).
(x1∨x2∨x3¯¯¯¯¯)∧(x1∨x2¯¯¯¯¯∨x3)
Теперь нетрудно видеть, что исходная 3CNF выполнима тогда и только тогда, когда в G существует путь - t с разными цветами вершин .stG
(Кстати, побочным продуктом является то, что существование - t пути с разными цветами вершин в цветном DAG является NP-трудным . Я не нашел много литературы по этой проблеме в вычислительной перспективе. Если вы знаете, пожалуйста, комментарий!)stNP-hard
Так, какова связь между и проблемой OP? Интуитивно понятно, что мы собираемся сделать, это спроектировать матрицу h , чтобы каждый цвет отображался в строке (которая является человеком), а края - в последовательные столбцы (временные интервалы). Следовательно, максимальное планирование, которое в основном происходит слева направо в матрице, соответствует s - t пути.Ghst
Наша матрица имеет 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.Ki=2i+2∑ij=1ki
- Для каждого , 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
- Для каждого пусть 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
- Для каждого , 1 ≤ i ′ ≤ k и литерала x в предложении ϕ i ′ , пусть h ( x , K n + i ′ ) = 1 .ϕi′1≤i′≤kxϕi′h(x,Kn+i′)=1
- Все остальные записи равны 0.
Например, для приведенного выше примера графика соответствующая матрица
Теперь мы утверждаем: исходное 3CNF выполнимо тогда и только тогда, когда максимальное значение равно .(2n+1)Y+∑ikiX+k
Рассмотрим планирование достижения максимального значения. Поскольку в h есть ровно столбцов, содержащих Y , все они должны быть покрыты. Для столбца K i + k i + 1, который имеет два варианта выбора Y , предположим, что планирование назначает его для s i . Поскольку столбец K i должен быть присвоен s i , по последовательности мы должны потерять столбцы K i + 1 до K i + k(2n+1)hYKi+ki+1YsiKisiKi+1 . То же самое происходит, если планирование назначает столбец K i + k i + 1 для s i + 1 .Ki+kiKi+ki+1si+1
Поэтому, чтобы иметь значение , мы должны выбрать все остальные доступные X в матрице, что соответствует назначению на переменные. Таким образом, остальное значение k достижимо тогда и только тогда, когда присваивание удовлетворяет каждому условию.∑ikiXXk
В заключение, решение о максимальной стоимости юридического планирования в . Может быть, поэтому все наши предыдущие попытки найти алгоритм потерпели неудачу.NP-hard