Dado um 3CNF com cláusulas nas variáveis x 1 , … , x n . Suponha que x i e ¯ x i apareçam na fórmula no máximo k i vezes, respectivamente.ϕ1 1, … , Φkx1 1, … , XnxEuxEu¯¯¯¯¯kEu
Projetamos um DAG colorido cujos vértices consistem em três partes:G
- Vértices de "atribuição" e ˉ v i ( j ) , 1 ≤ i ≤ n , 1 ≤ j ≤ k i . Cor v i ( j ) com a "cor" x i ( j ) e ˉ v i ( j ) com ¯ x i ( j ) .vEu( J )v¯Eu( J )1 ≤ i ≤ n1≤j≤kivi(j)xi(j)v¯i(j)xi¯¯¯¯¯( J )
- Vértices da "cláusula" , 1 ≤ i ′ ≤ k , j ′ = 1 , 2 , 3 . Cor w i ′ ( j ′ ) com a cor x i ( j ) (ou ¯ x i ( j ) ) se ¯ x i (ou x i , resp.) For j ′wi′(j′)1≤i′≤kj′=1,2,3wi′(j′)xi(j)xi¯¯¯¯¯(j)xi¯¯¯¯¯xij′-ésimo literal da cláusula , e é a j cláusula -ésimo contendo este literal.ϕi′j
- "Cortar" os vértices . Pinte-os com cores diferentes, diferentes de cima.s=s0,s1,…,sn,sn+1,…sn+k=t
As arestas incluem:
- , 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 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
- e , w i ' ( j ' ) s n + i ' .sn+i′−1wi′(j′)wi′(j′)sn+i′
Por exemplo, a partir do 3CNF
a seguinte gráfico é construído (As direcções de bordo são, da esquerda para a direita).
(x1∨x2∨x3¯¯¯¯¯)∧(x1∨x2¯¯¯¯¯∨x3)
Agora não é difícil ver que o 3CNF original está satisfeita se e somente se existe um - t caminho com diferentes cores de vértice em G .stG
(A propósito, é um subproduto que a existência de - t path com diferentes cores de vértices no DAG colorido é NP-difícil . Não encontrei muitas literaturas sobre esse problema na perspectiva computacional. Se você sabe, por favor Comente!)stNP-hard
Então, qual é a relação entre o problema de e OP? Intuitivamente, o que vamos fazer é projetar uma matriz h , para que cada cor seja mapeada para uma linha (que é uma pessoa) e as bordas sejam mapeadas para colunas consecutivas (intervalos de tempo). Portanto, um agendamento máximo, que basicamente passa da esquerda para a direita na matriz, corresponde a um caminho s - t .Ghst
Os nossos matriz ter 2 n + 1 + Σ i 2 k i + k colunas, com índices a partir de 0 . No seguinte constrcution X um Y são dois valores satisfazem um « X « Y . As razões X / 1 , Y / X podem ser grandes potências de k e n . Seja K i = 2 i + 2 ∑ i jh2n+1+∑i2ki+k0XY1≪X≪YX/1,Y/Xkn.Ki=2i+2∑ij=1ki
- Para cada , 0 ≤ i ≤ n , deixe h ( s i , K i ) = h ( s i , K i - k i - 1 ) = h ( s i , K i + k i + 1 + 1 ) = Y (se a coordenada existir, o mesmo abaixo).si0≤i≤nh(si,Ki)=h(si,Ki−ki−1)=h(si,Ki+ki+1+1)=Y
- Para cada , seja h ( x i ( j ) , K i - 1 + j ) = X ; Para cada ¯ x i ( j ) , deixá- h ( ¯ x i ( j ) , K i - 1 + k I + 1 + j ) = X .xi(j)h(xi(j),Ki−1+j)=Xxi¯¯¯¯¯(j)h(xi¯¯¯¯¯(j),Ki−1+ki+1+j)=X
- Para cada , 1 ≤ i ′ ≤ k e um x literal na cláusula ϕ i ' , seja h ( x , K n + i ' ) = 1 .ϕi′1≤i′≤kxϕi′h(x,Kn+i′)=1
- Todas as outras entradas são 0.
Por exemplo, para o gráfico de exemplo acima, a matriz correspondente é
Agora afirmamos: o 3CNF original é satisfatório se e somente se o valor máximo for .(2n+1)Y+∑ikiX+k
Considere a programação atingindo o valor máximo. Como existem exatamente colunas em h contendo Y , todas elas devem ser cobertas. Para a coluna K i + k i + 1, que tem duas opções de Y , suponha que o planejamento a atribua a s i . Como a coluna K i deve ser atribuída a s i , pela consecutividade, temos que perder as colunas K i + 1 para K i + k(2n+1)hYKi+ki+1YsiKisiKi+1 . O mesmo acontece se o planejamento atribuir a coluna K i + k i + 1 a s i + 1 .Ki+kiKi+ki+1si+1
Portanto, para obter o valor , devemos selecionar todos os demais X disponíveis na matriz, o que corresponde a uma atribuição nas variáveis. Portanto, o valor restante de k é possível se e somente se a atribuição atender a todas as cláusulas.∑ikiXXk
Como conclusão, decidir o valor máximo de uma programação legal é . Talvez seja por isso que todas as nossas tentativas anteriores de encontrar um algoritmo falharam.NP-hard