Tại sao các vấn đề NP-đầy đủ khác nhau về sự gần đúng của chúng?


22

Tôi muốn bắt đầu câu hỏi bằng cách nói tôi là một lập trình viên và tôi không có nhiều nền tảng về lý thuyết phức tạp.

Một điều mà tôi nhận thấy là trong khi nhiều vấn đề đã hoàn thành NP, khi mở rộng sang các vấn đề tối ưu hóa, một số vấn đề khó khăn hơn rất nhiều so với các vấn đề khác.

Một ví dụ điển hình là TSP. Mặc dù tất cả các loại TSP đều là NP hoàn chỉnh, các vấn đề tối ưu hóa tương ứng trở nên dễ dàng và gần đúng hơn với các đơn giản hóa liên tiếp. Trường hợp chung là hoàn thành NPO, trường hợp số liệu là hoàn thành APX và trường hợp Euclide thực sự có PTAS.

Điều này có vẻ phản trực giác đối với tôi và tôi tự hỏi liệu có lý do cho việc này không.


2
Nếu bạn muốn đọc những điều cơ bản, hãy xem câu hỏi tham khảo của chúng tôi . Đối với câu hỏi của bạn, bạn đang quan sát sự khác biệt giữa các vấn đề hoàn thành NP yếumạnh .
Raphael

Câu trả lời:


14

Một lý do mà chúng ta thấy các độ phức tạp xấp xỉ khác nhau cho các vấn đề hoàn thành NP là các điều kiện cần thiết cho NP-đầy đủ tạo thành một thước đo chi tiết rất thô về độ phức tạp của vấn đề. Bạn có thể làm quen với những nét cơ bản của một vấn đề là NP-đầy đủ:Π

  1. trong NP vàΠ
  2. Đối với mọi vấn đề khác trong NP, chúng ta có thể biến một ví dụ x của Ξ vào một thể hiện y của Π trong thời gian đa thức như vậy mà y là một vâng sơ thẩm của Π khi và chỉ khi x là một vâng sơ thẩm của Ξ .ΞxΞyΠyΠxΞ

Hãy xem xét điều kiện 2: tất cả những gì được yêu cầu là chúng ta có thể lấy và biến nó thành một số y bảo tồn câu trả lời "một bit" có / không. Chẳng hạn, không có điều kiện nào về, ví dụ, kích thước tương đối của các nhân chứng là có hoặc không (nghĩa là kích thước của giải pháp trong bối cảnh tối ưu hóa). Vì vậy, biện pháp duy nhất được sử dụng là tổng kích thước của đầu vào, điều này chỉ đưa ra một điều kiện rất yếu về kích thước của giải pháp. Vì vậy, nó là khá "dễ dàng" để biến một ΞxyΞ thành một .Π

Chúng ta có thể thấy sự khác biệt trong các vấn đề hoàn thành NP khác nhau bằng cách xem xét độ phức tạp của một số thuật toán đơn giản. -Coloring có lực vũ phu O ( k n ) (trong đó n là kích thước đầu vào). Đối với Tập hợp k -Dominating, cách tiếp cận lực lượng vũ phu lấy O ( n k ) . Đây là, về bản chất các thuật toán chính xác tốt nhất chúng ta có. k -Vertex Cover tuy nhiên có O rất đơn giản ( 2 k n c )kO(kn)nkO(nk)kO(2knc)thuật toán (chọn một cạnh, nhánh trên đó bao gồm điểm cuối, đánh dấu tất cả được bảo hiểm, tiếp tục cho đến khi bạn không có cạnh nào không được đánh dấu hoặc bạn đạt ngân sách và bactrack). Theo các mức giảm nhiều lần một đa thức (giảm Karp, tức là những gì chúng ta đang làm trong điều kiện 2 ở trên), những vấn đề này là tương đương.k

Khi chúng ta bắt đầu tiếp cận sự phức tạp với các công cụ tinh tế hơn một chút (độ phức tạp xấp xỉ, độ phức tạp tham số hóa, bất kỳ loại nào khác tôi không thể nghĩ tới), các mức giảm mà chúng ta sử dụng trở nên nghiêm ngặt hơn, hay nói đúng hơn, nhạy cảm hơn với cấu trúc của giải pháp và sự khác biệt bắt đầu xuất hiện; -Vertex Cover (như Yuval đã đề cập) có xấp xỉ 2 xấp xỉ đơn giản (nhưng không có FPTAS trừ khi một số lớp phức tạp sụp đổ), k -Dominating Set có thuật toán ước lượng ( 1 + log n ) (nhưng không ( c log n ) -appro xấp xỉ cho một số c > 0kk(1+logn)(clogn)c>0) và gần đúng không thực sự có ý nghĩa đối với phiên bản chuyển tiếp thẳng của -Coloring.k


13

Một cách để xem xét sự khác biệt giữa phiên bản quyết định và phiên bản tối ưu hóa là bằng cách xem xét các phiên bản tối ưu hóa khác nhau của cùng một phiên bản quyết định. Lấy ví dụ về vấn đề MAX-CLIQUE, rất khó để tính gần đúng theo tham số thông thường - kích thước của cụm. Nếu chúng ta thay đổi tham số tối ưu hóa thành logarit kích thước của cụm, chúng ta sẽ gặp vấn đề với thuật toán xấp xỉ . Nếu chúng ta thay đổi các tham số tối ưu hóa để 1 / 2 + k / n , nơi k là kích thước của bè lũ, sau đó chúng ta có thể nhận được một O (O(logn)1/2+k/nkO(1) thuật toán gần đúng.

Những ví dụ này không hoàn toàn tạo nên. Các vấn đề của MAX-INDEPENDENT-SET (tương đương với MAX-CLIQUE) và MIN-VERTEX-COVER có liên quan chặt chẽ với nhau - phần bổ sung của một bộ độc lập là nắp đỉnh. Nhưng trong khi cái trước khó gần đúng, cái sau có xấp xỉ 2 đơn giản.

Việc giảm độ cứng cho thấy độ cứng NP của một vấn đề nhất định đôi khi có thể được sử dụng để thể hiện độ cứng của xấp xỉ, nhưng điều này không phải lúc nào cũng đúng - nó phụ thuộc vào mức giảm. Ví dụ, việc giảm từ MAX-INDEPENDENT-SET xuống MIN-VERTEX-COVER không bao hàm độ cứng gần đúng của vấn đề sau, dễ dàng hơn nhiều so với trước đây.

Tóm tắt, độ cứng NP chỉ là một khía cạnh của một vấn đề. Độ cứng của xấp xỉ là một khía cạnh khác nhau, và nó phụ thuộc mạnh mẽ vào khái niệm gần đúng.


Bạn có đồng ý với tuyên bố trực quan của Luke Mathieson rằng việc giảm karp vốn đã ít "tế nhị" hơn so với mức giảm được sử dụng cho các lớp phức tạp gần đúng không? Nếu không, bạn có ví dụ tốt (có thể trong các lớp phức tạp khác như EXP) chống lại ý tưởng này không?
GregRos

PNPP=NP

5

Là một cách tiếp cận trực quan, hãy xem xét rằng việc xử lý các vấn đề hoàn thành NP không phải lúc nào cũng khó như trường hợp chung. Độ bão hòa nhị phân (SAT) là NP-đầy đủ, nhưng việc tìm giải pháp cho A v B v C v D v ... Các thuật toán phức tạp chỉ ràng buộc trường hợp xấu nhất, không phải là trường hợp trung bình, hoặc thậm chí là 90% .

Cách dễ nhất để giảm một vấn đề hoàn thành NP thành một cái gì đó đơn giản hơn là chỉ cần loại trừ các phần cứng. Đó là gian lận, vâng. Nhưng thường thì các phần còn lại vẫn hữu ích để giải quyết các vấn đề trong thế giới thực. Trong một số trường hợp, ranh giới giữa "dễ" và "khó là dễ vẽ. Như bạn đã chỉ ra cho TSP, có một sự giảm bớt khó khăn khi bạn hạn chế vấn đề xung quanh các hướng" bình thường "mà người ta có thể nghĩ đến. , khó hơn để tìm ra những cách hữu ích trong cuộc sống thực để phân tách các phần dễ và khó.

Để hoàn toàn rời khỏi vương quốc của CS và toán học, hãy xem xét một chiếc xe cũ. Bạn của bạn muốn lái nó. Nếu bạn phải nói với anh ta, "này, chiếc xe hoạt động hoàn hảo. Chỉ cần không mang nó trên 95mph. Có một sự chao đảo khó chịu sẽ khiến bạn ngã ra đường", có lẽ đó không phải là vấn đề lớn. Bạn của bạn có lẽ chỉ muốn mang nó đi khắp thị trấn. Tuy nhiên, nếu bạn phải nói với anh ta, "bạn phải điều khiển bộ ly hợp vừa phải để đi từ thứ 1 đến thứ 2, hoặc động cơ sẽ bị đình trệ", bạn của bạn có thể sử dụng xe quanh thị trấn mà không cần đào tạo nhỏ.

Tương tự như vậy, nếu một vấn đề hoàn thành NP xảy ra chỉ gặp khó khăn trong các trường hợp kỳ lạ, nó sẽ giảm độ phức tạp khá nhanh khi bạn nhìn vào tên miền phụ. Tuy nhiên, nếu gặp khó khăn trong các trường hợp thường xảy ra, sẽ không có nhiều tên miền phụ hữu ích tránh được phần cứng.


P=NP
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.