Được n biến boolean x1,…,xn mỗi trong số đó được chỉ định một chi phí tích cực c1,…,cn∈Z>0 và một hàm boolean f trên các biến được đưa ra trong mẫu
f(x1,…,xn)=⋀i=1k⨁j=1lixrij
(
⊕ biểu thị XOR) với
k∈Z>0, số nguyên
1≤li≤n và
1≤ri1<⋯<rili≤n cho tất cả
i=1,…,k,
j=1,…,li, vấn đề là tìm một sự phân công chi phí tối thiểu cho
x1,…,xn thỏa mãn
f, nếu một nhiệm vụ như vậy tồn tại. Chi phí của một bài tập được đưa ra đơn giản bởi
∑i∈{1,…,n}xitrueci.
Có phải vấn đề này NP-hard, có nghĩa là, là vấn đề quyết định đi kèm "Có sự phân công thỏa đáng về chi phí ở một số giá trị không
K"NP-cứng?
Bây giờ, bài toán XOR-SAT tiêu chuẩn nằm ở P, vì nó ánh xạ trực tiếp đến câu hỏi về khả năng thanh toán của một hệ phương trình tuyến tính trên F2(xem, ví dụ: https://en.wikipedia.org/wiki/Boolean_satisfabilities_probols#XOR-satisfisf ). Kết quả của giải pháp này (nếu nó tồn tại) là một không gian con affine củaFn2. Do đó, vấn đề được giảm để chọn phần tử tương ứng với chi phí tối thiểu từ không gian con đó. Than ôi, không gian con đó có thể khá lớn, và thực sự, viết lạif trong nhị phân k×nhình thức -matrix, với một 1 cho mỗi xrij tại ihàng thứ và rijcột thứ 0 và bằng không, chúng ta gặp vấn đề giảm thiểu chi phí theo
Ax=1,
Ở đâu
Một được nói là ma trận,
x là vectơ cột bao gồm
x1, ... ,xn và
1là vectơ tất cả 1. Đây là một ví dụ của một vấn đề lập trình tuyến tính nhị phân, được biết đến là NP-hard nói chung. Vì vậy, câu hỏi là, NP-hard trong trường hợp cụ thể này là tốt?