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 NPO và PO 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 NP và P 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)XLx∈Xx f(x,y) y∈L(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à .yopt∈L(x)O = ( X , L , f , o p t ) f ( x , y o p t ) = o p t { f ( x , y ' ) | y ' ∈ L ( x ) } . y *x∈XO=(X,L,f,opt)
f(x,yopt)=opt{f(x,y′)∣y′∈L(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)
- X∈P
- 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|)x∈Xy∈L(x)y∈L(x)
- f có thể được đánh giá trong thời gian đa thức.
Trực giác đằng sau nó là:
- 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
- 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 .xy∈L(x)x
- Giá trị của một giải pháp có thể được xác định một cách hiệu quả.y∈L(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)y∈L(x)x∈X
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 ∗ ) |y∈L(x)x∈XO=(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 kAOkAx∈Xk
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ΔΔ+1Minimum−EdgeColoring1
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)>0x∈Xy∈L(x)
ϵA(x):={0|f(x,A(x))−f(x,y∗)|max{f(x,A(x)),f(x,y∗)}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)=y∈L(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)δ≥0x∈X
ϵA(x)≤δ∀x∈X.
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/2Minimal−VertexCoverMinimal−VertexCover1/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ỉ.Minimum−SetCover
|C||C∗|≤Hn≤1+ln(n)
Minimum−SetCoverln(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)>0x∈Xy∈L(x)AO rA(x)A(x)=y∈L(x)x∈X
rA(x)={1max{f(x,A(x))f(x,y∗),f(x,y∗)f(x,A(x))}f(x,A(x))=f(x,y∗)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 đa là
ArOrA(x)r≥1x∈X
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:
1Minimum−SetCover(1+ln(n))Minimum−VertexCover2rA(x)=11−ϵA(x)ϵA(x)=1−1rA(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/2r≥2
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.ONPOrr≥1
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ảm và completness 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 APO2O1≤APO2ghc
- g(x1,r)∈X2 cho tất cả và hợp lýx1∈X1r>1
- L2(g(x,r1))≠∅ nếu cho tất cả và lýL1(x1)≠∅x1∈X1r>1
- h(x1,y2,r)∈L1(x1) cho tất cả và hợp lý và cho tất cảx1∈X1r>1y2∈L2(g(x1,r))
- Đố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
- Chúng tôi có cho tất cả và hợp lý và với mọi
f2(g(x1,r),y2)≤r⇒f1(x1,h(x1,y2,r))≤1+c⋅(r−1)
x1∈X1r>1y2∈L2(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 .O2∈APXO1≤APO2O1∈APX
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ữ.ONPOCNPOOC≤APO′∈C O′≤APO
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 .CC≤APC
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à .NPOAPXNPOSATWeighted−SatisfiabilityNPOMaximum−3SATAPX