Dado n variáveis booleanas x1 1, ... ,xn cada um dos quais recebe um custo positivo c1,…,cn∈Z>0 e uma função booleana f nessas variáveis dadas na forma
f(x1,…,xn)=⋀i=1k⨁j=1lixrij
(
⊕ denotando XOR) com
k∈Z>0inteiros
1≤li≤n e
1≤ri1<⋯<rili≤n para todos
i=1,…,k,
j=1,…,li, o problema é encontrar uma atribuição de custo mínimo para
x1,…,xn isso satisfaz
f, se essa atribuição existir. O custo de uma tarefa é simplesmente dado por
∑i∈{1,…,n}xitrueci.
Esse problema é NP-difícil, ou seja, é o problema de decisão que o acompanha "Existe uma atribuição satisfatória de custo no máximo com algum valor
K"NP-difícil?
Agora, o problema XOR-SAT padrão está em P, pois mapeia diretamente a questão da solvabilidade de um sistema de equações lineares sobre F2(consulte, por exemplo, https://en.wikipedia.org/wiki/Boolean_satisfiability_problem#XOR-satisfiability ). O resultado desta solução (se existir) é um subespaço afim deFn2. O problema é assim reduzido para escolher o elemento correspondente com custo mínimo desse subespaço. Infelizmente, esse subespaço pode ser bastante grande e, de fato, reescreverf em binário k×n-matrix, com um 1 para cada xrij no i-a linha e o rij-th coluna, e zero caso contrário, temos um problema de minimização de custos sujeito a
Ax=1,
Onde
A é dito matriz,
x é o vetor da coluna que consiste no
x1,…,xn e
1é o vetor todo-1. Esta é uma instância de um problema de programação linear binária, conhecido como NP-hard em geral. Portanto, a questão é: também é NP-difícil neste caso específico?