Các vấn đề quyết định so với các vấn đề thực tế của Real mà không có hoặc không


36

Tôi đã đọc ở nhiều nơi rằng một số vấn đề rất khó để ước tính (đó là NP-hard để ước tính chúng). Nhưng xấp xỉ không phải là vấn đề quyết định: câu trả lời là số thực chứ không phải Có hoặc Không. Ngoài ra, đối với mỗi yếu tố gần đúng mong muốn, có nhiều câu trả lời đúng và nhiều câu trả lời sai, và điều này thay đổi với hệ số gần đúng mong muốn!

Vậy làm thế nào người ta có thể nói rằng vấn đề này là NP-hard?

(lấy cảm hứng từ viên đạn thứ hai trong Làm thế nào khó đếm số lượng đường dẫn đơn giản giữa hai nút trong biểu đồ có hướng? )

Câu trả lời:


27

Như bạn đã nói, không có quyết định nào để đưa ra, vì vậy các lớp phức tạp mới và các loại giảm mới là cần thiết để đi đến một định nghĩa phù hợp về độ cứng NP cho các vấn đề tối ưu hóa .

Một cách để làm điều này là có hai lớp NPOPO mới có chứa các vấn đề tối ưu hóa và tất nhiên chúng bắt chước các lớp NPP cho các vấn đề quyết định. Giảm mới là cần thiết là tốt. Sau đó, chúng ta có thể tạo lại một phiên bản độ cứng NP cho các vấn đề tối ưu hóa dọc theo các dòng đã thành công cho các vấn đề quyết định. Nhưng trước tiên chúng ta phải đồng ý vấn đề tối ưu hóa là gì.

Định nghĩa: Đặt là một vấn đề tối ưu hóa . là tập hợp các đầu vào hoặc thể hiện phù hợp được mã hóa dưới dạng chuỗi. là một hàm ánh xạ từng thể hiện lên một tập hợp các chuỗi, các giải pháp khả thi của thể hiện . Đây là một tập hợp vì có nhiều giải pháp cho một vấn đề tối ưu hóa. Do đó, chúng ta có một hàm mục tiêu cho chúng ta biết mọi cặp của thể hiện và giải quyết chi phí hoặc giá trị của nó . X L x X x f ( x , y ) y L ( x ) o p tO=(X,L,f,opt)XLxXx f(x,y) yL(x)opt cho chúng tôi biết liệu chúng tôi đang tối đa hóa hoặc tối thiểu hóa.

Điều này cho phép chúng ta xác định giải pháp tối ưu là gì: Đặt là giải pháp tối ưu của một thể hiện của một vấn đề tối ưu hóa vớiGiải pháp tối ưu thường được ký hiệu là .yoptL(x)O = ( X , L , f , o p t ) f ( x , y o p t ) = o p t { f ( x , y ' ) | y 'L ( x ) } . y *xXO=(X,L,f,opt)

f(x,yopt)=opt{f(x,y)yL(x)}.
y

Bây giờ chúng ta có thể định nghĩa NPO lớp : Đặt là tập hợp của tất cả các vấn đề tối ưu hóa với:O = ( X , L , f , o p t )NPOO=(X,L,f,opt)

  1. XP
  2. Có một đa thức với cho tất cả các trường hợp và tất cả các giải pháp khả thi . Hơn nữa, có một thuật toán xác định quyết định trong thời gian đa thức cho dù .| y | p ( | x | ) x X y L ( x ) y L ( x )p|y|p(|x|)xXyL(x)yL(x)
  3. f có thể được đánh giá trong thời gian đa thức.

Trực giác đằng sau nó là:

  1. Chúng tôi có thể xác minh hiệu quả nếu thực sự là một trường hợp hợp lệ của vấn đề tối ưu hóa của chúng tôi.x
  2. Kích thước của các giải pháp khả thi được giới hạn đa thức theo kích thước của các yếu tố đầu vào, và chúng tôi có thể xác minh hiệu quả nếu là một giải pháp khả thi của thể hiện .xyL(x)x
  3. Giá trị của một giải pháp có thể được xác định một cách hiệu quả.yL(x)

Điều này phản ánh cách được định nghĩa, bây giờ cho PO : Gọi là tập hợp tất cả các vấn đề từ có thể được giải quyết bằng thuật toán xác định trong thời gian đa thức.P O N P ONPPONPO

Bây giờ chúng ta có thể định nghĩa cái mà chúng ta muốn gọi là thuật toán xấp xỉ : Thuật toán xấp xỉ của bài toán tối ưu hóa là một thuật toán tính toán một giải pháp khả thi cho một ví dụ .y L ( x ) x XO=(X,L,f,opt)yL(x)xX

Lưu ý: Rằng chúng tôi không yêu cầu một giải pháp tối ưu, chúng tôi chỉ những gì để có một giải pháp khả thi .

Bây giờ chúng ta có hai loại lỗi: Lỗi tuyệt đối của một giải pháp khả thi của một thể hiện của vấn đề tối ưu hóa là.x X O = ( X , L , f , o p t ) | f ( x , y ) - f ( x , y ) |yL(x)xXO=(X,L,f,opt)|f(x,y)f(x,y)|

Chúng tôi gọi lỗi tuyệt đối của thuật toán xấp xỉ cho bài toán tối ưu hóa giới hạn bởi nếu thuật toán tính toán cho mọi trường hợp là một giải pháp khả thi với sai số tuyệt đối giới hạn bởi .O k A x X kAOkAxXk

Ví dụ: Theo Định lý Vizing chỉ số màu của đồ thị (số màu trong màu tô màu với số lượng màu ít nhất được sử dụng) là hoặc , trong đó là mức độ nút tối đa. Từ chứng minh của định lý, một thuật toán gần đúng có thể được tạo ra để tính toán một màu cạnh với màu. Theo đó, chúng tôi có một thuật toán gần đúng cho thuật toán trong đó lỗi tuyệt đối được giới hạn bởi .Δ + 1 Δ Δ + 1 M i n i m u m - E d g e C o l o r i n g 1ΔΔ+1ΔΔ+1MinimumEdgeColoring1

Ví dụ này là một ngoại lệ, các lỗi tuyệt đối nhỏ rất hiếm, do đó chúng tôi xác định lỗi tương đối của thuật toán xấp xỉ trên ví dụ của bài toán tối ưu hóa với với mọi và làA x O = ( X , L , f , o p t ) f ( x , y ) > 0 x X y L ( x )ϵA(x)AxO=(X,L,f,opt)f(x,y)>0xXyL(x)

ϵA(x):={0f(x,A(x))=f(x,y)|f(x,A(x))f(x,y)|max{f(x,A(x)),f(x,y)}f(x,A(x))f(x,y)

nơi là giải pháp khả thi tính bằng cách xấp xỉ-thuật toán .AA(x)=yL(x)A

Bây giờ chúng ta có thể định nghĩa thuật toán xấp xỉ cho bài toán tối ưu hóa là thuật toán -appro xấp xỉ cho nếu lỗi tương đối bị ràng buộc bởi cho mọi phiên bản , do đó O = ( X , L , f , o p t ) δ O ε Một ( x ) δ 0 x X ε Một ( x ) δAO=(X,L,f,opt)δOϵA(x)δ0xX

ϵA(x)δxX.

Lựa chọn trong mẫu số của định nghĩa về lỗi tương đối đã được chọn để làm cho định nghĩa đối xứng để tối đa hóa và tối thiểu hóa. Giá trị của lỗi tương đối . Trong trường hợp có vấn đề tối đa hóa, giá trị của giải pháp không bao giờ nhỏ hơn và không bao giờ lớn hơn cho một vấn đề giảm thiểu.max{f(x,A(x)),f(x,y)}( 1 - ε Một ( x ) ) f ( x , y * ) 1 / ( 1 - ε Một ( x ) ) fϵA(x)[0,1](1ϵA(x))f(x,y)1/(1ϵA(x))f(x,y)

Bây giờ chúng ta có thể gọi một vấn đề tối ưu hóa -appro xấp xỉ nếu có thuật toán -appro xấp xỉ-thuật toán cho chạy trong thời gian đa thức.delta Một OδδAO

Chúng tôi không muốn xem xét lỗi cho mọi trường hợp , chúng tôi chỉ xem xét trường hợp xấu nhất. Do đó, chúng tôi xác định , lỗi tương đối tối đa của thuật toán xấp xỉ cho bài toán tối ưu hóa là ε Một ( n ) Một O ε Một ( n ) = sup { ε Một ( x ) | | x | n } .xϵA(n)AO

ϵA(n)=sup{ϵA(x)|x|n}.

Ở đâunên là kích thước của thể hiện.|x|

Ví dụ: Một kết hợp tối đa trong biểu đồ có thể được chuyển đổi thành một nút tối thiểu bằng cách thêm tất cả các nút sự cố từ khớp vào đỉnh bìa. Do đócác cạnh được bảo hiểm. Vì mỗi đỉnh bao gồm một đỉnh tối ưu phải có một trong các nút của mỗi cạnh được che, nếu không nó có thể được cải thiện, chúng ta có . Theo sau đó, Do đó, thuật toán tham lam cho kết hợp tối đa là -approimumatio- thuật toán cho . Do đó là -appro xấp xỉ.1C1 / 2 | C | f ( x , y ) | C | - f ( x , y * )1/2|C|1/2|C|f(x,y) 1/2MinTôimmộtl

|C|f(x,y)|C|12
1/2MinimalVertexCoverMinimalVertexCover1/2

Thật không may, lỗi tương đối không phải lúc nào cũng là khái niệm tốt nhất về chất lượng cho một xấp xỉ như ví dụ sau đây chứng minh:

Ví dụ: Một thuật toán tham lam đơn giản có thể xấp xỉ . Một phân tích cho thấy và do đó sẽ là -appro xấp xỉ.MinimumSetCover

|C||C|Hn1+ln(n)
MinimumSetCoverln(n)1+ln(n)

Nếu sai số tương đối gần bằng thì định nghĩa sau là thuận lợi.1

Hãy là một tối ưu hóa-vấn đề với cho tất cả và và xấp xỉ-thuật toán cho . Các xấp xỉ tỷ lệ- của khả thi giải pháp của instance là O=(X,L,f,opt)f(x,y)>0xXyL(x)AO rA(x)A(x)=yL(x)xX

rA(x)={1f(x,A(x))=f(x,y)max{f(x,A(x))f(x,y),f(x,y)f(x,A(x))}f(x,A(x))f(x,y)

Như trước đây chúng ta gọi là một xấp xỉ-thuật toán một -approximation-thuật toán cho việc tối ưu hóa-vấn đề nếu xấp xỉ tỷ lệ- được bao bọc bởi cho mỗi đầu vào . Và một lần nữa nếu chúng ta có thuật toán -appro xấp xỉ cho bài toán tối ưu hóa thì được gọi là -appro xấp xỉ . Một lần nữa, chúng tôi chỉ quan tâm đến trường hợp xấu nhất và xác định tỷ lệ xấp xỉ tối đaArOrA(x)r1xX

rA(x)r
rAOOr rA(n)
rA(n)=sup{rA(x)|x|n}.
Theo đó, tỷ lệ gần đúng lớn hơn đối với các giải pháp tối ưu. Do đó, giải pháp tốt hơn có tỷ lệ nhỏ hơn. Đối với bây giờ chúng ta có thể viết rằng nó là -appro xấp xỉ. Và trong trường hợp chúng ta biết từ ví dụ trước đó là -appro xấp xỉ. Giữa sai số tương đối và tỷ lệ xấp xỉ, chúng ta có các mối quan hệ đơn giản: 1MinimumSetCover(1+ln(n))MinimumVertexCover2
rA(x)=11ϵA(x)ϵA(x)=11rA(x).

Đối với độ lệch nhỏ so với tối ưu và , sai số tương đối là thuận lợi so với tỷ lệ gần đúng, cho thấy điểm mạnh của nó đối với độ lệch lớn và .ϵ<1/2r<2ϵ1/2r2

Hai phiên bản của -appro xấp xỉ không trùng nhau vì một phiên bản luôn có và phiên bản kia . Trường hợp không có vấn đề gì vì điều này chỉ đạt được bởi các thuật toán tạo ra một giải pháp chính xác và do đó không cần phải được coi là thuật toán gần đúng.αα1α1α=1

Một lớp khác thường xuất hiện APX . Nó được định nghĩa là tập hợp tất cả các vấn đề tối ưu hóa từ có thuật toán -appro xấp xỉ với chạy trong thời gian đa thức.ONPOrr1

Chúng tôi gần như thông qua. Chúng tôi muốn sao chép những ý tưởng thành công của giảmcompletness từ lý thuyết phức tạp. Quan sát là nhiều biến thể quyết định tối ưu của NP-vấn đề tối ưu hóa có thể giảm bớt lẫn nhau trong khi các biến thể tối ưu hóa của chúng có các thuộc tính khác nhau về tính gần đúng của chúng. Điều này là do giảm đa thức thời gian Karp được sử dụng trong giảm NP hoàn thành, không bảo toàn hàm mục tiêu. Và ngay cả khi các hàm mục tiêu được bảo toàn thì đa thức - Karp - giảm có thể thay đổi chất lượng của giải pháp.

Những gì chúng ta cần là một phiên bản giảm mạnh hơn, nó không chỉ ánh xạ các trường hợp từ vấn đề tối ưu hóa sang các trường hợp của , mà cả các giải pháp tốt từ trở lại các giải pháp tốt từ .O1O2O2O1

Do đó, chúng tôi xác định mức giảm xấp xỉ bảo toàn cho hai vấn đề tối ưu hóa và từ . Chúng tôi gọi -reducible thành , được viết là , nếu có hai hàm và và hằng số với:O1=(X1,L1,f1,opt1)O2=(X2,L2,f2,opt2)NPOO1 APO2O1APO2ghc

  1. g(x1,r)X2 cho tất cả và hợp lýx1X1r>1
  2. L2(g(x,r1)) nếu cho tất cả và lýL1(x1)x1X1r>1
  3. h(x1,y2,r)L1(x1) cho tất cả và hợp lý và cho tất cảx1X1r>1y2L2(g(x1,r))
  4. Đối với cố định, cả hai hàm và có thể được tính bằng hai thuật toán trong thời gian đa thức theo độ dài của đầu vào của chúng.rgh
  5. Chúng tôi có cho tất cả và hợp lý và với mọi
    f2(g(x1,r),y2)rf1(x1,h(x1,y2,r))1+c(r1)
    x1X1r>1y2L2(g(x1,r))

Trong định nghĩa này và phụ thuộc vào chất lượng của giải pháp . Do đó, đối với các phẩm chất khác nhau, các chức năng có thể khác nhau. Tính tổng quát này không phải lúc nào cũng cần thiết và chúng tôi chỉ làm việc với và .ghrg(x1)h(x1,y2)

Bây giờ chúng ta có một khái niệm về việc giảm tối ưu hóa - các vấn đề cuối cùng chúng ta có thể chuyển nhiều thứ chúng ta biết từ lý thuyết phức tạp. Ví dụ: nếu chúng ta biết rằng và chúng tôi cho thấy thì nó cũng theo .O2APXO1APO2O1APX

Cuối cùng, chúng ta có thể định nghĩa những gì chúng ta muốn nói bởi -hard và -complete cho các vấn đề tối ưu hóa:CC

Hãy là một tối ưu hóa-vấn đề từ và một lớp học tối ưu hóa-vấn đề từ sau đó được gọi là -Hard đối với nếu cho tất cả giữ.ONPOCNPOOCAPOC OAPO

Do đó, một lần nữa chúng ta có một khái niệm về một vấn đề khó khăn nhất trong lớp. Không ngạc nhiên một -Hard vấn đề được gọi là -complete đối với nếu nó là một phần tử của .CCAPC

Vì vậy, bây giờ chúng ta có thể nói về -completness và -completness, v.v. Và tất nhiên bây giờ chúng ta được yêu cầu thể hiện một vấn đề hoàn chỉnh đầu tiên đảm nhận vai trò của . Nó xuất hiện gần như một cách tự nhiên, rằng có thể được hiển thị là -complete. Với sự trợ giúp của Định lý PCP, người ta thậm chí có thể chỉ ra rằng là .NPOAPXNPOSATWeightedSatisfiabilityNPOMaximum3SATAPX


11
Ồ và xin vui lòng chấp nhận lời xin lỗi của tôi cho bài đăng tương đối dài này, nhưng tôi không có thời gian để viết một bài ngắn hơn.
uli

1
Tất nhiên, điểm mạnh là theo định lý PCP, bạn có thể liên kết MAX3SAT và SAT, do đó cho thấy NP-hard khó xấp xỉ MAX 3SAT để tốt hơn một số hằng số. Điều đó tương đương với định lý Cook-Levin, theo một nghĩa nào đó.
Suresh

1
@Suresh Tất nhiên, nhưng kết quả này bạn đề cập cần giảm khoảng cách bảo tồn theo như tôi nhớ. Và như bạn đã viết về họ trong bài viết của mình, tôi không muốn sao chép chúng ở đây.
uli

Câu trả lời tuyệt vời, +1! Tôi tự hỏi nếu câu trả lời của bạn dựa trên một số tài liệu tham khảo?
Tim

@Tim Tất nhiên là có sách, tôi đã liệt kê một vài trong các bình luận của một câu trả lời
uli

19

Thông thường những gì hiển thị là độ cứng NP của phiên bản "Khoảng cách" của vấn đề. Ví dụ: giả sử rằng bạn muốn chứng minh rằng thật khó để xấp xỉ SET COVER trong phạm vi 2.

Bạn xác định trường hợp "lời hứa" sau đây của SET COVER mà chúng tôi sẽ gọi 2-GAP-SET-COVER:

Sửa một số số . 2-GAP-SET-COVER bao gồm tất cả các phiên bản của nắp bộ trong đó kích thước của nắp bộ tối ưu là:

  • nhiều nhất là
  • ít nhất2

Giả sử chúng tôi chỉ ra rằng vấn đề quyết định vấn đề nào trong hai trường hợp xảy ra là NP-đầy đủ. Sau đó, chúng tôi đã chỉ ra rằng xấp xỉ SET COVER trong phạm vi 2 là NP-hard, bởi vì chúng tôi có thể sử dụng thuật toán như vậy để phân biệt hai trường hợp này.


4

Hai câu trả lời hiện có rất nhiều thông tin nhưng tôi không nghĩ ai trong số họ thực sự trả lời được câu hỏi, đó là: "Làm thế nào một vấn đề thậm chí không phải là vấn đề quyết định là NP-hard, khi NP là một loại vấn đề quyết định ? "

Câu trả lời là hãy nhớ NP-hard nghĩa là gì. Một vấn đề  là NP-hard dưới một số loại giảm nếu mọi vấn đề trong NP có thể được giảm xuống còn  . (Và  hoàn thành NP nếu là NP-hard và trong NP.) Một cách không chính thức, NP-hard có nghĩa là "Nếu tôi có thể giải quyết vấn đề này, tôi có thể giải quyết mọi thứ trong NP", ngay cả khi vấn đề bạn đang nói đến không phải là ' t trong NP. NP-độ cứng không yêu cầu thành viên của NP, nhưng nó cần khái niệm đúng về giảm.LLL

Vài ví dụ.

  1. Bất kỳ vấn đề hoàn thành NEXPTIME  cũng là NP-hard theo các mức giảm nhiều lần một đa thức. Bất kỳ vấn đề nào trong NP đều nằm trong NEXPTIME, do đó, có thể giảm xuống  theo định nghĩa. Theo định lý phân cấp thời gian,  không thể ở trong NP, do đó   không hoàn thành NP.LLLL
  2. #SAT là vấn đề tính toán số lượng bài tập thỏa mãn cho các công thức CNF. Rõ ràng không có trong NP bởi vì, như bạn quan sát, NP là một nhóm các vấn đề quyết định và #SAT không phải là một trong số đó. Tuy nhiên, #SAT là NP-hard theo các mức giảm Turing theo thời gian đa thức vì chúng ta có thể giảm SAT theo nó. Đưa ra một ví dụ SAT, chúng tôi hỏi có bao nhiêu bài tập thỏa mãn: nếu có ít nhất một bài, chúng tôi nói "thỏa đáng"; mặt khác, "không thỏa mãn".
  3. Đặt APPROXSAT là vấn đề của việc tính toán một số nằm trong hệ số mười của số lượng bài tập thỏa mãn cho công thức CNF  . Để gây phiền nhiễu, giả sử bạn được phép làm tròn xuống, vì vậy, nếu  có ba nhiệm vụ thỏa mãn, thuật toán được phép nghĩ "0,3" và làm tròn số đó xuống 0. Đây là NP-hard theo các mức giảm Turing theo thời gian đa thức vì chúng ta vẫn có thể giảm SAT theo nó. Đưa ra công thức CNF  , hãy hỏi số lượng bài tập thỏa mãn cho , trong đó  là các biến mới.  là thỏa đáng nếu và chỉ khi,  là, nhưngφ φ φ ' = φ ( Z 1Z 10 ) Z i φ ' φ φ ' φ φ 'φφφφ=φ(Z1Z10)Ziφφφ  được đảm bảo có hơn 1.000 bài tập thỏa mãn, nếu có. Vì vậy,  là thỏa đáng nếu và chỉ khi, thuật toán APPROXSAT nói rằng  có ít nhất 100 bài tập thỏa mãn.φφ
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.