Các kỹ thuật phổ biến để giảm các vấn đề với nhau là gì?


40

Trong lý thuyết tính toán và độ phức tạp (và có thể các lĩnh vực khác), việc cắt giảm có mặt khắp nơi. Có nhiều loại, nhưng nguyên tắc vẫn giống nhau: cho thấy một vấn đề ít nhất cũng khó như một số vấn đề khác L 2 bằng cách ánh xạ các trường hợp từ L 2 sang các vấn đề tương đương với giải pháp trong L 1 . Về cơ bản, chúng tôi cho thấy rằng bất kỳ bộ giải nào cho L 1 cũng có thể giải quyết L 2 nếu chúng tôi cho phép nó sử dụng hàm khử làm tiền xử lý.L1L2L2L1L1L2

Tôi đã thực hiện phần chia sẻ của mình trong những năm qua, và một cái gì đó tiếp tục làm tôi khó chịu. Trong khi mọi giảm mới yêu cầu xây dựng sáng tạo (ít nhiều), nhiệm vụ có thể cảm thấy lặp đi lặp lại. Có một nhóm các phương pháp kinh điển?

Các kỹ thuật, mô hình và thủ thuật mà người ta có thể thường xuyên sử dụng để xây dựng các hàm giảm là gì?

Điều này được cho là trở thành một câu hỏi tham khảo . Do đó, xin vui lòng lưu ý để đưa ra các câu trả lời chung chung, được trình bày một cách chính thức được minh họa bằng ít nhất một ví dụ nhưng dù sao cũng bao gồm nhiều tình huống. Cảm ơn!


Xem ở đây để biết một số suy nghĩ về việc tìm kiếm đối tác phù hợp và ý tưởng để giảm.
Raphael

Câu trả lời:


18

Trường hợp đặc biệt

Giả sử chúng ta muốn hiển thị liên quan đến một số khái niệm về giảm R . Nếu L 1trường hợp đặc biệt của L 2 , điều đó khá tầm thường: về cơ bản chúng ta có thể sử dụng chức năng nhận dạng. Trực giác đằng sau điều này rất rõ ràng: trường hợp chung ít nhất cũng khó như trường hợp đặc biệt.L1RL2RL1L2

Trong "thực hành", chúng tôi được cấp và bị mắc kẹt với vấn đề chọn đối tác khử tốt L 1 , tức là tìm trường hợp đặc biệt của L 2 đã được chứng minh là R -hard.L2L1L2R

Ví dụ đơn giản

Giả sử chúng tôi muốn chỉ ra rằng KNAPSACK là NP-hard. May mắn thay, chúng tôi biết rằng SUBSET-SUM là NP-hoàn chỉnh và đây thực sự là một trường hợp đặc biệt của KNAPSACK. Giảm

f(A,k)=(A,(1,,1),k,|A|)

đủ là trường hợp KNAPSACK hỏi liệu chúng ta có thể đạt được ít nhất giá trị v với các giá trị vật phẩm trong V để tổng trọng số tương ứng từ W vẫn nằm dưới tổng w không . Chúng tôi không cần các giới hạn trọng lượng để mô phỏng SUBSET-SUM, vì vậy chúng tôi chỉ đặt chúng thành các giá trị tautological.(V,W,v,w)vVWw

Bài tập đơn giản

Xét bài toán MAX-3SAT: được đưa ra một mệnh đề công thức và số nguyên k , quyết định xem có một cách giải thích của φ nhằm thoả mãn ít nhất k khoản. Cho thấy đó là NP-hard.φkφk

f(φ)=(φ,m)mφ

Thí dụ

Giả sử chúng tôi đang nghiên cứu vấn đề SUBSET-SUM và muốn chứng minh rằng đó là NP-hard.

Chúng tôi rất may mắn và biết rằng vấn đề THAM GIA là NP-đầy đủ. Chúng tôi xác nhận rằng đó thực sự là một trường hợp đặc biệt của SUBSET-SUM và xây dựng

f(A)={(A,12aAa),aAamod2=0(A,1+aA|a|),else

Trong đó là tập hợp đầu vào của PHẦN THAM GIA và là một thể hiện cho SUBSET-SUM hỏi sau một tập hợp con của tổng hợp thành . Ở đây, chúng ta phải quan tâm đến trường hợp không có phù hợp ; trong trường hợp đó, chúng tôi đưa ra một ví dụ không khả thi tùy ý.A(A,k)Akk

Bài tập thể dục

Hãy xem xét vấn đề LONGEST-PATH: đưa ra một đồ thị có hướng , các nút của và số nguyên , quyết định xem có một đường dẫn đơn giản từ đến trong có độ dài ít nhất .Gs,tGkstGk

Cho thấy rằng LONGEST-PATH là NP-hard.

HAMILTON-CYCLE là một vấn đề NP-đầy đủ nổi tiếng và một trường hợp đặc biệt của LONGEST-PATH; cho nút tùy ý trong đủ. Đặc biệt lưu ý cách giảm từ HAMILTON-PATH đòi hỏi nhiều công việc hơn.f(G)=(G,v,v,n)vG


2
Dưới đây là một ví dụ được gọi là vấn đề người mua đi du lịch (TPP) có nhiều vấn đề khó khăn như trường hợp đặc biệt của nó.
Juho

Một ví dụ khác từ khả năng tính toán là vấn đề tạm dừng đặc biệt (thường được chứng minh trực tiếp là không thể giải quyết được), một trường hợp đặc biệt của vấn đề tạm dừng chung.
Raphael

KNAPSACK có thực sự là một giảm chính xác từ SUBSET-SUM? KNAPSACK yêu cầu giá trị và SUBSET-SUM yêu cầu giá trị chính xác, phải không? Ví dụ: một ví dụ SUBSET-SUM sẽ là một ví dụ 'không' (tôi không thể lấy chính xác 4 từ chỉ một mục có giá trị 5), nhưng việc giảm KNAPSACK của bạn sẽ giảm điều đó xuống và , vì vậy đó sẽ là một ví dụ 'có' ở đó ... Hay tôi đang thiếu thứ gì đó? >=v{5},4{5},{1},4,15>4
johnny

15

Tận dụng một vấn đề gần đó

Khi phải đối mặt với một vấn đề cảm thấy khó khăn, thường là một ý tưởng tốt để cố gắng tìm kiếm một vấn đề tương tự đã được chứng minh là khó khăn. Hoặc, có lẽ bạn có thể thấy ngay rằng một vấn đề rất giống với một vấn đề đã biết.

Vấn đề mẫu

Xem xét một vấn đề

DOUBLE-SAT={φφ is a boolean formula with at least 2 satisfying assignments }

chúng tôi muốn hiển thị là . Chúng tôi nhanh chóng lưu ý rằng nó rất gần với một vấn đề mà chúng tôi đã biết là khó, cụ thể là vấn đề thỏa mãn (SAT) .NP

Tư cách thành viên của rất đơn giản để hiển thị. Giấy chứng nhận là hai bài tập. Rõ ràng, nó có thể được kiểm tra trong thời gian đa thức cho dù các bài tập đáp ứng một công thức.NP

NP trễ xuất phát từ việc giảm từ . Đưa ra một công thức , chúng tôi sửa đổi nó bằng cách giới thiệu một biến mới . Chúng tôi thêm một mệnh đề mới vào công thức. Bây giờ, nếu là thỏa đáng, nó sẽ thỏa đáng với cả và . Do đó, có ít nhất 2 bài tập thỏa mãn. Mặt khác, nếu không thỏa đáng, nó chắc chắn sẽ không trở nên thỏa đáng bất kể giá trị của .SATφv(v¬v)φv=⊥v=φφv

Theo sau là , đó là những gì chúng tôi muốn thể hiện.DOUBLE-SATNP

Tìm kiếm các vấn đề gần đó

Giảm các vấn đề là một loại nghệ thuật, và kinh nghiệm và sự khéo léo thường là cần thiết. May mắn thay, nhiều vấn đề khó khăn đã được biết đến . Máy tính và tính hấp dẫn của Garey và Johnson: Hướng dẫn về Lý thuyết hoàn thiện NP là một phương pháp cổ điển với phần phụ lục liệt kê nhiều vấn đề. Google Scholar cũng là một người bạn.


6

Trong khả năng tính toán, chúng tôi thường điều tra các bộ máy Turing. Đó là, các đối tượng của chúng ta là các hàm và chúng ta có quyền truy cập vào một số Gôdel . Điều đó thật tuyệt vì chúng ta có thể thực hiện khá nhiều thứ chúng ta muốn với hàm đầu vào, miễn là chúng ta vẫn có thể tính toán được.

Giả sử chúng tôi muốn chứng minh rằng không thể quyết định. Mục tiêu của chúng tôi là đạt được sự tương đương của số phậnL

MKfML

với vấn đề tạm dừng (hoặc bất kỳ vấn đề / ngôn ngữ không thể giải quyết nào khác).K={MM(M) halts}

Vì vậy, chúng ta cần đưa ra một ánh xạ có thể tính toán để luôn có thể tính toán được. Đây là một hành động sáng tạo được thông báo bởi sự tương đương của cam chịu. Xem một số ví dụ để có ý tưởng về cách thức hoạt động của nó:f MMfMfM

Điều tương tự cũng cho thấy không phải là bán có thể quyết định bằng cách chọn các ngôn ngữ không bán được có thể quyết định làm đối tác rút , ví dụ :¯ KLK¯


  1. Đây là nơi mà việc đánh số Gôdel xuất hiện: chúng tôi có thể tính toán được ánh xạ này (thường) miễn phí.

-2

nó phụ thuộc vào các lớp phức tạp có liên quan và liệu người ta muốn giảm từ cho thành chưa biết hay chưa biết thành cho . kịch bản phổ biến là chứng minh sự cố NP Hard hoặc NP Complete. một kỹ thuật phổ biến là xây dựng "tiện ích" trong một miền hoạt động theo một cách nhất định, bắt chước hành vi của một miền khác. ví dụ: để chuyển đổi SAT thành bìa đỉnh, một cấu trúc "tiện ích" trong nắp đỉnh hoạt động tương tự như các mệnh đề của SAT, ví dụ như trong trình chiếu slide sau: NP Giảm hoàn toàn bởi KRnamoorthy (cũng với một ví dụ cho đường dẫn Hamilton).B B AABBA

một chiến lược hữu ích là làm việc từ các tập hợp lớn các vấn đề từ lớp phức tạp đang được đề cập và tìm ra "các vấn đề gần nhất rõ ràng" cho vấn đề đang được nghiên cứu. một tài liệu tham khảo tuyệt vời dọc theo các dòng này là Máy tính và Tính hấp dẫn, một hướng dẫn về lý thuyết về tính hoàn chỉnh của NP, Garey và Johnson được tổ chức bởi các loại vấn đề khác nhau.


2
Tôi tự hỏi nếu bạn nhận thấy chú thích trong câu hỏi. Tôi nghĩ rằng các câu trả lời nên rất cụ thể hơn và giới thiệu cách áp dụng một phương pháp cụ thể. Điều này có vẻ khá mơ hồ và chung chung. Là một cải tiến, làm thế nào về bạn cho thấy các tiện ích có thể được xây dựng và sử dụng như thế nào?
Juho

2
Ngoài ra: bạn có thể giải thích tại sao một cái gì đó phụ thuộc vào các lớp phức tạp liên quan và làm thế nào. Ngoài ra, nếu tôi muốn đi từ đến hoặc đến , thì tôi phải làm gì sau đó? Thế còn "vấn đề gần nhất" - bạn có thể cho một ví dụ về một cặp vấn đề không? B B AABBA
Juho

powerpoint hiển thị hai ví dụ về các tiện ích đang được sử dụng. một ví dụ về một vấn đề gần nhất: giả sử người ta có một vấn đề liên quan đến lý thuyết số. có một phần của G & J liên quan đến lý thuyết số. vân vân. đối với các lớp phức tạp khác ngoài NP, có rất nhiều, nhưng danh sách các vấn đề không được thấu đáo hoặc sẵn sàng thu được. Vì vậy, nói cách khác để thu hẹp câu hỏi ban đầu, có lẽ nên giới hạn ở mức giảm hoàn toàn NP ...?
vzn

2
Tôi khuyên bạn nên thêm tất cả thông tin vào câu trả lời, vì các bình luận có thể bị xóa bất cứ lúc nào. Liên kết đến các slide cũng có thể bị hỏng vào ngày mai. Những gì tôi đã gặp phải với vấn đề gần đó: tôi phải làm gì một cách chính xác khi tôi tìm thấy một vấn đề tương tự (giả sử tôi là người mới bắt đầu)?
Juho
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.