Tại sao điều quan trọng là phải chứng minh rằng một vấn đề là NP-đầy đủ?


Câu trả lời:


26

Ali, câu hỏi hay.

Giả sử bạn muốn chỉ ra rằng một số vấn đề P khó tính toán. Bây giờ, bạn có thể phỏng đoán rằng P khó chỉ dựa trên thực tế là chúng ta chưa có bất kỳ thuật toán hiệu quả nào cho nó. Nhưng đây là bằng chứng khá mỏng manh, phải không? Có thể là chúng ta đã bỏ lỡ một số cách hay để xem P, điều này sẽ làm cho nó rất dễ giải quyết. Vì vậy, để phỏng đoán rằng P khó, chúng tôi muốn tích lũy thêm bằng chứng. Giảm cung cấp một công cụ để làm chính xác điều đó! Nếu chúng ta có thể giảm một số vấn đề tự nhiên khác từ Q xuống P, thì chúng ta đã chứng minh rằng P ít nhất cũng khó như Q. Nhưng Q có thể là một vấn đề từ một lĩnh vực toán học hoàn toàn khác, và mọi người có thể đã phải vật lộn trong nhiều thập kỷ để giải quyết Q . Do đó, chúng ta có thể xem việc chúng ta không tìm được thuật toán hiệu quả cho Q là bằng chứng cho thấy P khó. Nếu chúng ta có nhiều Q như vậy

Đây chính xác là những gì lý thuyết về tính đầy đủ của NP cung cấp. Nếu bạn chứng minh vấn đề của mình là NP hoàn chỉnh, thì bạn đã gắn độ cứng của nó với độ cứng của hàng trăm vấn đề khác, mỗi vấn đề đáng quan tâm đối với các cộng đồng khác nhau. Như vậy, về mặt đạo đức, bạn có thể yên tâm rằng vấn đề của bạn thực sự khó khăn.


Vì vậy, mục đích ban đầu là tìm một thuật toán hiệu quả cho P nhưng vì điều đó dường như không thể thực hiện được nên giả sử rằng P khó tính toán và sau đó câu trả lời của bạn giải thích phần còn lại?
Ali

Chúng tôi muốn chứng minh rằng vấn đề P của chúng tôi khó tính toán, nhưng chúng tôi không muốn cho rằng P khó chứng minh rằng P khó :) Thay vào đó, nếu bạn chứng minh P là NP hoàn chỉnh (hoặc thậm chí NP-hard nhưng hãy bỏ qua sự khác biệt ở đây), bạn đã chỉ ra rằng nếu bất kỳ một trong số hàng trăm vấn đề đã được xem xét kỹ lưỡng là khó, thì P cũng khó. Điều này là do nếu có một thuật toán hiệu quả cho P, thì cũng sẽ có các thuật toán hiệu quả cho mỗi hàng trăm vấn đề.
arnab

4
@Ali: Tôi thực sự khuyên bạn nên xem một cuốn sách giáo khoa lý thuyết phức tạp giới thiệu. Trang web này không thực sự là một diễn đàn cho những câu hỏi như vậy, mà nhiều hơn cho các câu hỏi ở cấp độ nghiên cứu.
arnab

5
@Ali: Tôi chắc chắn khuyên bạn nên đọc Garey và Johnson . Các phim hoạt hình nổi tiếng trong cuốn sách là phải xem!
Tsuyoshi Ito

9

Chứng minh một vấn đề NP-Complete là một thành công nghiên cứu vì nó giải phóng bạn khỏi việc tìm kiếm một giải pháp hiệu quả và chính xác cho vấn đề chung mà bạn đang nghiên cứu. Điều đó chứng tỏ rằng vấn đề của bạn là một thành viên của một nhóm các vấn đề khó đến nỗi không ai có thể tìm ra một thuật toán chính xác và hiệu quả cho bất kỳ vấn đề nào, và một giải pháp cho bất kỳ vấn đề nào sẽ ngụ ý một giải pháp cho tất cả các vấn đề các vấn đề.

Nó thường là một bước đệm, bởi vì vấn đề của bạn vẫn còn đó - bạn chỉ cần thư giãn các yêu cầu của bạn. Thông thường mọi người cố gắng và tìm ra cách thư giãn một hoặc nhiều "hiệu quả", "chính xác" hoặc "chung chung". Không hiệu quả và chính xác và chung chung là nỗ lực tìm kiếm các hằng số tốt hơn và tốt hơn theo cấp số nhân cho các thuật toán này. Hiệu quả và không chính xác và tổng quát là nghiên cứu các thuật toán gần đúng. Hiệu quả và chính xác nhưng không chung chung là nghiên cứu về khả năng biến đổi tham số cố định và tìm kiếm các lớp con của đầu vào mà thuật toán hiệu quả có thể được tìm thấy.


Điểm hay cho ba cách để thư giãn vấn đề! Tôi đoán các thuật toán ngẫu nhiên rơi vào loại "hiệu quả và không chính xác và chung chung".
Hsien-Chih Chang 張顯

Có thật không? Không phải tất cả các thuật toán ngẫu nhiên là không chính xác.
Jeffε

Và tất nhiên bạn đúng, JeffE. Ngoài ra, tôi hiểu bạn đang (hoặc đã) hướng dẫn một cựu sinh viên của tôi về các thuật toán! Theo quan điểm của Hsien-Chih, tôi không nghĩ các thuật toán ngẫu nhiên phù hợp với sơ đồ này. Chắc chắn một số thuật toán ngẫu nhiên (thuật toán di truyền và mạng lưới thần kinh xuất hiện) không chính xác nhưng hiệu quả và chung chung, nhưng một số thuật toán ngẫu nhiên khá chính xác - hãy xem xét thuật toán để xác minh một số là chính! Đó là một thuật toán ngẫu nhiên, nhưng tôi khá tự tin rằng không ai từng nhận được một phi chính trong bất kỳ triển khai hợp lý nào.
Peter Boothe

5

NPcomplete

NPcomplete, bạn có một số bằng chứng cho phỏng đoán này của bạn và bạn nên bắt đầu xem xét một phương pháp thay thế (ví dụ: thay đổi vấn đề để nó trở nên dễ dàng hơn).

NPcomplete

NPcomplete

P=NP3SAT

NPcompleteCLIQUE

Tóm tắt, mô tả một vấn đề cho phép bạn sử dụng các kỹ thuật phổ biến. Bằng cách nghiên cứu lớp học có liên quan đến, bạn có thể suy nghĩ ở mức độ trừu tượng, mà không bận tâm về các chi tiết cụ thể của vấn đề cụ thể này, điều phổ biến trong toán học và khoa học nói chung. Làm việc với các lớp thay vì các thành viên riêng lẻ cho phép bạn sử dụng các kỹ thuật đã biết và hơn nữa, áp dụng hiểu biết của bạn cho số lượng đối tượng lớn hơn, thay vì chỉ một.


2
Nhiều người giải quyết các vấn đề hoàn thành NP trong thực tế, ngay cả khi họ khó tính gần đúng với NP. Trong trường hợp trung bình, nhiều vấn đề trở nên dễ dàng hơn nhiều, mặc dù điều này có thể khó hiển thị; thậm chí còn khó hơn để chứng minh bất cứ điều gì về các thuật toán heuristic hoạt động tốt trong thực tế. Tôi đề nghị kiến ​​trúc sư phần mềm hỏi ai đó xem vấn đề có "thực sự" khó khăn trước khi từ bỏ và thay đổi thiết kế của cô ấy không.
Yuval Filmus

Tôi không nói rằng thiết kế cần phải thay đổi. Sử dụng thuật toán heuristic hoặc gần đúng với tôi (giả mạo?) Như thay đổi vấn đề ... vì biết rằng bạn đang yêu cầu các giải pháp ít chính xác hơn (chúng có thể chấp nhận được không? Nó phụ thuộc vào ứng dụng!).
chazisop

3

Mỗi vấn đề có một số kết nối với các vấn đề khác. Ngoài ra, có mối quan hệ giữa một vấn đề và các lớp phức tạp.

Do đó, việc phân loại một vấn đề là NPC thường giúp chúng ta hiểu rõ hơn về các vấn đề khác, cũng như các lớp phức tạp.

Ví dụ, lấy bài toán đẳng cấu đồ thị (GI). Trong bài báo sau:

Uwe Schöning, đẳng cấu đồ thị nằm trong hệ thống phân cấp thấp , Kỷ yếu của Hội nghị chuyên đề hàng năm lần thứ 4 về các khía cạnh lý thuyết của khoa học máy tính , 1987, 114 Từ24; cũng: Tạp chí Khoa học Máy tính và Hệ thống, tập. 37 (1988), 312 Từ323.

người ta đã chứng minh rằng nếu GI ∈ NPC, thì hệ thống phân cấp đa thức (PH) sụp đổ xuống cấp thứ hai; đó sẽ là một bước đột phá lớn trong lý thuyết phức tạp về cấu trúc.


3

pppp


1
Tôi đã nghe nói rằng đã có lúc bạn chứng minh một số vấn đề là NP-đầy đủ, bạn sẽ có luận án tiến sĩ. Điều đó có đúng không?
Hsien-Chih Chang 張顯

@ Hsien-ChihChang 張顯: Tôi không thể nhận xét về điều đó, nhưng những kết quả đó chắc chắn đã từng phổ biến hơn nhiều trong vài thập kỷ trước. Ngày nay dường như ngày càng khó để xuất bản một bài báo trong đó bạn "chỉ" chứng minh một kết quả độ cứng (ngoại trừ "các vấn đề nổi tiếng"), trong khi đó sẽ không phải là vấn đề trong những năm 70-80, đánh giá từ sự phong phú của loại giấy tờ này trong thời gian đó.
Anthony Labarre
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.