Bằng chứng độ cứng NP: tìm kiếm một số vấn đề np-hard bị hạn chế tốt


8

Để hiển thị độ cứng NP của một vấn đề, người ta cần chọn một vấn đề NP-hard đã biết và tìm cách giảm đa thức từ vấn đề đã biết đến vấn đề của mình. Về mặt lý thuyết, bất kỳ vấn đề NP-hard nào cũng có thể được sử dụng để giảm, nhưng trong thực tế, một số vấn đề dễ dàng giảm hơn những vấn đề khác.

Chẳng hạn, 3-SAT thường là lựa chọn tốt hơn để xây dựng mức giảm so với SAT vì cái trước bị hạn chế hơn cái sau, phân vùng 3 thường là lựa chọn dễ dàng hơn so với đóng gói bin, ...

Một cách để tìm ra những vấn đề "tốt" như vậy đối với việc giảm là thực hiện phân tích thống kê về mức giảm hiện có. Ví dụ, người ta có thể định hình tất cả các cặp from -> togiảm của cuốn sách Máy tính và Độ hấp dẫn: Hướng dẫn về Lý thuyết hoàn thiện NP (hoặc các tài nguyên khác) và vẽ biểu đồ các vấn đề trong frombộ. Sau đó, chúng ta có thể tìm ra những vấn đề thường được sử dụng để giảm bớt.

Tôi tự hỏi nếu một phân tích thống kê như vậy có ý nghĩa gì cả. Một nghiên cứu như vậy đã được tiến hành hay chưa? Nếu không, dự đoán của bạn về các vấn đề thường được sử dụng nhất để giảm là gì.

Lý do tôi hỏi câu hỏi này là tôi đã thực hiện một vài bằng chứng về độ cứng NP, nhưng hầu hết tất cả đều dựa vào việc giảm từ cùng một vấn đề (3 phân vùng). Tôi đang tìm kiếm các lựa chọn khác để sử dụng trong bằng chứng của tôi.


1
Từ kinh nghiệm nhỏ bé của tôi, tôi nghĩ rằng nó phụ thuộc vào miền của vấn đề bạn đang gặp phải (số học, lý thuyết đồ thị, lập lịch, câu đố, ..); trước hết bạn nên tìm kiếm các vấn đề NPC tương tự hoặc có liên quan để xem liệu có vấn đề tốt nào để bắt đầu TỪ (ví dụ: lớp A1-A12 của G & J); sau đó nhìn vào bằng chứng NPC của họ để có gợi ý / hiểu biết về hướng bạn có thể đi theo; cuối cùng nếu không có gì xảy ra, hãy thử sử dụng các vấn đề NPC "cấp thấp" đơn giản không yêu cầu các cấu trúc phức tạp (3SAT, 1 trong 3 SAT, Planar SAT, Chính xác theo ba bộ, 3 màu, 3 phân vùng, chu trình Ham trong đồ thị phẳng hoặc lưới, ..)
Marzio De Biasi

@MarzioDeBiasi: Bạn nói đúng nhưng tôi nghĩ việc tìm kiếm trong số hàng ngàn vấn đề để tìm ra vấn đề phù hợp là một công việc mệt mỏi. Việc xếp hạng dựa trên số lượng giảm mà tôi đề xuất cung cấp cho chúng tôi manh mối về nơi bắt đầu tìm kiếm của chúng tôi. Trên thực tế, chúng ta thường không chọn một vấn đề chỉ là ngẫu nhiên. Chúng ta thường chọn vấn đề dựa trên sự giống nhau (đó có phải là một từ hay không?) Và dựa trên tần suất giảm mà chúng ta đã thấy từ vấn đề đó. Tôi chỉ muốn làm cho lựa chọn này chính thức hơn một chút hoặc ít nhất là nhận được một số lời khuyên từ các chuyên gia trong khu vực về các vấn đề yêu thích của họ.
Helium

@MarzioDeBiasi: nhân tiện, danh sách các vấn đề mà bạn đề cập trong bình luận của bạn cũng hữu ích cho tôi.
Helium

1
@MarzioDeBiasi, tôi nghĩ thật tuyệt nếu bạn chia sẻ kinh nghiệm của mình như một câu trả lời, bạn là một trong những người giỏi nhất về bằng chứng độ cứng trong cstheory.SE.
Saeed

1
lắng nghe MDB re G & J. họ tổ chức các loại vấn đề thành các phần. có thể có hàng ngàn NP biến thể vấn đề hoàn chỉnh nhưng chúng nằm trong các chủ đề / thể loại / phần cơ bản. một đồ thị lớn sẽ rất thú vị để xây dựng nhưng nó không thực sự thống kê. nó có thể thoát khỏi cấu trúc thế giới nhỏ nơi có các "trung tâm" quan trọng. Bản thân G & J liệt kê các trung tâm chính trong các chương / phần khác nhau.
vzn

Câu trả lời:


6

Tôi không biết có cách nào để thực hiện việc này không, nhưng kinh nghiệm cá nhân nhỏ bé của tôi hoạt động như sau.

Tôi cố gắng cung cấp một thuật toán thời gian đa thức cho một vấn đề. Trong những lần thử đó thường tôi có thể thấy có một số phiên bản giới hạn của vấn đề có thể giải quyết được thời gian đa thức. Tôi cũng sẽ hiểu phần nào trong thuật toán của tôi được xử lý cho vấn đề ban đầu. Tôi có thể so sánh hai trường hợp này (sự khác biệt giữa các phiên bản bị hạn chế và trường hợp chung cũng là một phần của thuật toán khó cải thiện). Bằng cách so sánh hai trường hợp đó thường có thể đoán được vấn đề tắc nghẽn trông như thế nào. Vì vậy, chúng ta có thể tìm thấy một vấn đề khó khăn liên quan. Thông thường việc cung cấp một thuật toán cho một vấn đề là công việc khó khăn và cần kiến ​​thức tốt về một vấn đề. Sau khi chúng tôi có được kiến ​​thức về vấn đề này, chúng tôi có thể có nhiều ý tưởng khác nhau để giải quyết vấn đề trong các tình huống khác nhau (không chỉ là kết quả độ cứng).

Tái bút: Nếu bằng chứng của bạn chuyển tiếp về một vấn đề cụ thể, tôi nghĩ đó là vì vấn đề đó rất gần với công việc của bạn, vì vậy đừng tự trách mình.


2
+1: Tôi đồng ý rằng tìm kiếm thuật toán đa thời gian là điểm khởi đầu tốt và tiết lộ bí mật về vấn đề
Helium
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.