Chúng ta có thể giảm bao nhiêu số mệnh đề bằng cách chuyển đổi từ


8

Nếu chúng tôi cho rằng chúng tôi bắt đầu bằng một thể hiện của k -SAT và thử chuyển đổi vấn đề sang một thể hiện của (k+m) -SAT, trong đó có (k+m) đen cho mỗi mệnh đề, chúng tôi có thể đảm bảo giảm bớt tổng số mệnh đề?

Tôi nhận ra sau khi đăng bài rằng chúng tôi không thể đảm bảo rằng số lượng mệnh đề có thể giảm. Tuy nhiên, tôi tự hỏi nếu chúng ta có n mệnh đề, chúng ta có thể nhận được một số thứ như n/k+O(1) mệnh đề bằng một số kỹ thuật "khử" không?

Nếu vậy, chúng ta có thể đảm bảo tổng số mệnh đề có thể giảm bao nhiêu? Chẳng hạn, nếu chúng ta bắt đầu với k -SAT với các mệnh đề nk , thì được bảo đảm nhỏ nhất là bao nhiêu nk+m, số mệnh đề mới, điều đó sẽ dẫn đến việc chúng ta chuyển đổi trường hợp này thành (k+m) -SAT?

Quan trọng hơn, làm thế nào để chúng tôi thực hiện chuyển đổi này?

Câu trả lời:


5

Một loại chuyển đổi đơn giản là đảo ngược của chuyển đổi k-sat-to-3-sat:

Nhớ lại, việc chuyển đổi k-sat thành "j" -sat, :j<k

(x1x2...xj...xk)(x1x2...xjd)(d¯xj+1xj+2...xk)

Ở đây, là một biến giả, có nghĩa là "Điều khoản này không đúng, nhưng một điều khoản khác tôi biết là". Mệnh đề khác là mệnh đề tiếp theo được tách ra khỏi bản gốc. Trên đây là một ví dụ trong đó 2 j k , nếu không nút chia 2 sẽ vẫn được lớn hơn j , và chúng ta phải chia một mà một lần nữa, trong cùng một cách.d2jkj

Đảo ngược chuyển đổi

sau đó bạn có thể kết hợp các điều khoản vào:(x1x2...xj)(x¯jxj+1...xk)

(x1x2...xj1xj+1xj+2...xk)

Lưu ý thiếu trong công thức mới này.xj

Tất nhiên, bạn không được đảm bảo tìm các mệnh đề như thế này trong một công thức tùy ý để được bảo đảm nhỏ nhất bằng n k .nk+mnk

Tuy nhiên, trên các công thức thông thường, một biến và phủ định của nó sẽ xuất hiện trong công thức; nếu không, bạn có thể thực hiện loại bỏ hoàn toàn theo nghĩa đen (mô tả ở đây ). Để đơn giản, cũng cho phép giả định rằng . Sau đó, chúng ta có thể kết hợp bất kỳ hai mệnh đề có chứa một nghĩa đen trong một và phủ định của nó trong một mệnh đề khác. Vì mỗi nghĩa đen nên có một mệnh đề khác có phủ định, người ta có thể đoán theo kinh nghiệm rằng bạn sẽ có thể giảm một nửa số mệnh đề (bạn có thể bị mắc kẹt với một số nghĩa đen và phủ định của chúng trong các mệnh đề đã tham gia, và do đó bạn sẽ bị mắc kẹt với một số mệnh đề không thể kết thúc ở cuối, các mệnh đề tham gia tối ưu như thế này có thể là một vấn đề thú vị khác).k+m2k2

BIÊN TẬP:

Sau khi phản ánh, tôi nhận ra rằng phải tự do và không được sử dụng ở nơi nào khác trong công thức để thu gọn hai mệnh đề mà nó thuộc về. Do đó, các mệnh đề loại này (một mệnh đề chứa một nghĩa đen và loại khác là phủ định của nó, với nghĩa đen này không được sử dụng ở nơi khác trong công thức) hiếm hơn nhiều so với tôi nghĩ ở trên. Vì vậy, câu trả lời thực sự là, không có gì đảm bảo chúng ta có thể giảm bao nhiêu số mệnh đề trong công thức.xj


Làm thế nào bạn có được công thức chuyển đổi đó? Dường như với tôi là không chính xác, và bạn có thể kiểm tra nó bằng bảng chân lý.
Matt Groff

Xin chào, tôi đã đọc nó từ lâu nhưng bạn có thể thấy nó ở đây . Tôi có thể đã nhầm lẫn nó, hoặc bằng cách nào đó đã làm cho một cái gì đó không rõ ràng trong chuyển đổi; nếu vậy, hãy thoải mái chỉ ra nó.
Realz Slaw

@MattGroff Tôi dường như không thể tìm thấy lỗi của mình, bạn có thể cung cấp một ví dụ phản biện không?
Realz Slaw

(AB)(Ad)(d¯B)d¯d

ABAB(Ad)(d¯B)0000|d={0,1}0111|d={1}1011|d={0}1111|d={1,0}
Realz Slaw
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.