Chính xác các lớp FP, FNP và TFNP là gì?


13

Trong cuốn sách Tính phức tạp tính toán của mình , Papadimitriou định nghĩa FNP như sau:

Giả sử rằng L là một ngôn ngữ trong NP . Bởi Dự 9.1, có một decidable thời gian đa thức, đa thức cân đối RL như vậy mà cho tất cả các chuỗi x : Có một chuỗi y với RL(x,y) khi và chỉ khi xL . Vấn đề chức năng liên quan đến L , ký hiệu là FL , là vấn đề tính toán sau:

Cho x , tìm một chuỗi y sao cho RL(x,y) nếu một chuỗi đó tồn tại; nếu không có chuỗi như vậy tồn tại, trả về "không".

Lớp của tất cả các vấn đề chức năng liên quan như trên với ngôn ngữ trong NP được gọi là FNP . FP là lớp con kết quả nếu chúng ta chỉ xem xét các vấn đề chức năng trong FNP có thể được giải quyết trong thời gian đa thức.

(...)

(...), Chúng tôi gọi một vấn đề trong tổng số FNP nếu với mỗi chuỗi x có ít nhất một y sao cho R ( x , y ) . Lớp con của FNP chứa tất cả các vấn đề về chức năng được ký hiệu là TFNP .R xyR(x,y)

Trong một sơ đồ Venn trong phần tổng quan chương, PAPADIMITRIOU ngụ ý rằng FP TFNP FNP .

Tôi có một thời gian khó hiểu tại sao chính xác rằng FP TFNP vì các vấn đề trong FP không phải là tổng cộng.

Để hiểu rõ hơn, tôi đã tìm hiểu văn học để tìm ra định nghĩa không thấm nước về FP , FNP và các loại, nhưng không thành công.

Theo ý kiến ​​rất (khiêm tốn) của tôi, tôi nghĩ rằng có rất ít (chính xác!) Tài liệu giáo khoa của các chủ đề này.

Đối với các vấn đề quyết định, các lớp là tập hợp các ngôn ngữ (tức là bộ chuỗi).

Chính xác các lớp cho các vấn đề chức năng là gì? Họ có thiết lập quan hệ, ngôn ngữ, ...? Một định nghĩa vững chắc là gì?


4
Các ký hiệu phổ biến là hơi cẩu thả. Thứ nhất, FP đã và đang sử dụng để biểu thị lớp poly-thời gian chức năng (do đó tổng số) bên ngoài bối cảnh của vấn đề tìm kiếm NP, nơi mà nó đã được định nghĩa lại. Thứ hai, mọi vấn đề tìm kiếm có thể giải quyết được trong thời gian đa thức đều có tổng khả năng mở rộng có thể giải quyết được trong thời gian đa thức, do đó, theo nghĩa đó, không có nhiều sự khác biệt thực sự giữa một định nghĩa tổng thể và không tổng thể của FP, vì vậy cả hai đều bị nhầm lẫn bởi lạm dụng ngôn ngữ.
Emil Jeřábek hỗ trợ Monica

Câu trả lời:


11

Nhận xét của Emil Jerabek là một bản tóm tắt hay, nhưng tôi muốn chỉ ra rằng có những lớp khác với định nghĩa rõ ràng hơn, nắm bắt ít nhiều cùng một khái niệm và để làm rõ mối quan hệ giữa tất cả những điều này.

[Cảnh báo: trong khi tôi tin rằng tôi đã hiểu đúng các định nghĩa, một số điều dưới đây phản ánh sở thích cá nhân của tôi - Tôi đã cố gắng rõ ràng về nơi đó.]

Trong thế giới xác định, một lớp chức năng chỉ là một tập hợp các chức năng (trong thông thường, nghĩa toán học của từ "chức năng", có nghĩa là, một bản đồ ). Đôi khi, chúng tôi muốn cho phép "các chức năng một phần", có đầu ra là "không xác định" cho các đầu vào nhất định. (Một cách tương đương, các chức năng được xác định trên một tập hợp con của Σ * chứ không phải là tất cả của nó.)ΣΣΣ

Thật không may, có hai định nghĩa khác nhau cho trôi nổi xung quanh, và theo như tôi có thể nói chúng không tương đương (mặc dù chúng tương đương "về mặt đạo đức").FP

  • (định nghĩa 1) là lớp các hàm có thể được tính theo thời gian đa thức. Bất cứ khi nào bạn nhìn thấy F P và nó không ở trong bối cảnh mà mọi người đang nói về F N P , T F N P , đây là định nghĩa tôi giả định.FPFPFNP,TFNP

Trong thế giới không điều kiện, mọi thứ trở nên buồn cười. Ở đó, thật thuận tiện khi cho phép "các hàm một phần, đa giá trị". Nó sẽ là tự nhiên cũng phải gọi một điều như vậy một mối quan hệ nhị phân , nghĩa là một tập hợp con của . Nhưng từ quan điểm phức tạp, thường hữu ích về mặt triết học và tinh thần khi nghĩ về những điều này là "các chức năng không xác định". Tôi nghĩ rằng nhiều trong số các định nghĩa này được làm rõ bởi các lớp sau (có định nghĩa hoàn toàn được chuẩn hóa, nếu không được biết đến nhiều):Σ×Σ

  • : Lớp "các hàm một phần, đa giá trị" được tính toán bằng một máy không xác định trong thời gian đa thức. Điều này có nghĩa là có một máy không xác định đa thời gian, và trên đầu vào x , trên mỗi nhánh không xác định, nó có thể chọn chấp nhận và tạo một số đầu ra, hoặc từ chối và không tạo đầu ra. Đầu ra "đa giá trị" trên đầu vào x sau đó là tập hợp tất cả các đầu ra trên tất cả các nhánh không xác định khi được x làm đầu vào. Lưu ý rằng bộ này có thể trống, vì vậy "hàm đa giá trị" này chỉ có thể là một phần. Nếu chúng ta nghĩ về nó theo quan hệ nhị phân, thì điều này tương ứng với mối quan hệ { ( x , y ) : yNPMVxxx .{(x,y):y is output by some branch of the computation on input x}

  • : Tổng số "hàm" trong N P M V , nghĩa là, trên mỗi đầu vàox, ít nhất một nhánh chấp nhận (và do đó tạo ra một đầu ra, theo định nghĩa)NPMVtNPMVx

  • : Đơn giá trị (có khả năng một phần) chức năng trong N P M V . Tuy nhiên, có một sự linh hoạt ở đây, trong đó nhiều chi nhánh có thể chấp nhận, nhưng nếu bất kỳ chi nhánh nào chấp nhận, thì tất cả các chi nhánh chấp nhận phải được đảm bảo để tạo racùng mộtđầu ra (để nó thực sự có giá trị đơn). Tuy nhiên, nó vẫn còn có thể mà không có chi nhánh chấp nhận, vì vậy chức năng chỉ là một "chức năng một phần" (tức là không được định nghĩa trên tất cả các Σ * ).NPSVNPMVΣ

  • : Độc thân có giá trị tổng hàm trong N P S V . Đây thực sự là chức năng, theo nghĩa thông thường của từ này, Σ * Σ * . Nó là một bài tập không-quá-khó để thấy rằng N P S V t = F P N Pc o N P (sử dụng Def 1 cho FP ở trên).NPSVtNPSVΣΣNPSVt=FPNPcoNP

Khi chúng ta nói về các hàm đa giá trị tiềm năng, nói về việc ngăn chặn các lớp phức tạp thực sự không còn hữu ích nữa: vô điều kiện đơn giản vì N P S V không chứa bất kỳ hàm đa giá trị nào ", Nhưng N P M V thì có. Thay vào đó, chúng ta nói về "ngăn chặn c", ký hiệu là c . Hàm (có khả năng một phần, đa giá trị) f sẽ tinh chỉnh hàm (có khả năng đa giá trị một phần) g nếu: (1) cho mọi đầu vào xgNPMVNPSVNPSVNPMVcfgxgtạo ra một số đầu ra, do đó và (2) các đầu ra của f luôn là tập con của các đầu ra của g . Câu hỏi đúng là sau đó cho dù mỗi N P M V "chức năng" có một N P S V sàng lọc. Nếu vậy, chúng tôi viết N P M V c N P S V .ffgNPMVNPSVNPMVcNPSV

  • (ít tiêu chuẩn hơn một chút) là lớp các hàm (có khả năng một phần) có thể tính toán được trong thời gian đa. Đó là, một hàm f : D Σ * ( D Σ * ) là trong P F nếu có một poly-cỗ máy thời gian xác định như vậy mà, trên đầu vào x D đầu ra máy f ( x ) , và đầu vào x D máy không tạo đầu ra (/ từ chối / nói "không" / tuy nhiên bạn muốn cụm từ đó).PFf:DΣDΣPFxDf(x)xD

  • là một lớp "các vấn đề chức năng" (chứ không phải là một lớp các chức năng). Tôi cũng sẽ gọi F N P là "lớp quan hệ", nhưng thực sự bất cứ từ nào bạn sử dụng để mô tả nó, bạn cần phải làm rõ chính mình sau đó, đó là lý do tại sao tôi không đặc biệt một phần cho định nghĩa này. Để bất kỳ mối quan hệ nhị phân R Σ * × Σ * có một liên quan đến "chức năng vấn đề." Một vấn đề chức năng là gì? Tôi không có một định nghĩa toán học rõ ràng như cách tôi làm cho ngôn ngữ / chức năng / quan hệ; đúng hơn, nó được xác định bởi giải pháp hợp lệ là gì:FNPFNPRΣ×ΣRfsao cho nếu thì f xuất ra bất kỳ y nào , và nếu không thì f không có đầu ra. F N P là lớp các vấn đề chức năng liên quan đến quan hệ R sao cho R P (khi được coi là ngôn ngữ của các cặp) và được cân bằng p. Vì vậy, F N P không phải là một lớp chức năng, cũng không phải là một lớp ngôn ngữ, mà là một lớp "vấn đề chức năng", trong đó "vấn đề" ở đây được định nghĩa đại khái về ý nghĩa của việc giải quyết nó.(y)[R(x,y)]fyfFNPRRPFNP

  • sau đó là lớp các vấn đề chức năng trong F N P - được xác định bởi mối quan hệ R như trên - R là tổng, theo nghĩa là với mọi x tồn tại một y sao cho R ( x , y ) .TFNPFNPRRxyR(x,y)

Để không phải viết những thứ như "Nếu mọi bài toán hàm (resp., T F N P ) có một giải pháp trong P F (resp., F P theo định nghĩa trên), thì ..." trong bối cảnh này sử dụng Định nghĩa 2 của F P , đó là:FNPTFNPPFFPFP

  • (định nghĩa 2) là lớp các vấn đề chức năng trong F N P có giải pháp đa thời gian. Mọi người có thể giả sử rằng giải pháp (= function) ở đây là tổng bằng cách chọn một chuỗi đặc biệt y 0 không phải là y hợp lệcho bất kỳ x nàovà có đầu ra hàm y 0 khi không có y hợp lệ. (Nếu cần, chúng ta có thể sửa đổi mối quan hệ R bằng cách trả trước mỗi y bằng 1, và sau đó lấy y 0 thành chuỗi 0; điều này không thay đổi độ phức tạp của bất kỳ điều gì liên quan).FPFNPy0yxy0yRyy0

Đây là cách các định nghĩa khác nhau liên hệ với nhau, (định nghĩa 2, đó là những gì bạn nên giả định vì nó là trong một bối cảnh mà nó được so sánh với F N P ) tương đương với N P M V c P F . T F N PF P (def 2) tương đương với N P M V t c F P (def 1).FNPFPFNPNPMVcPFTFNPFPNPMVtcFP


Cảm ơn bạn đã trả lời rộng rãi của bạn. Tôi đang cố gắng tiêu hóa nó và nó đã rất hữu ích cho đến nay. Tôi giả định, tuy nhiên, bạn có nghĩa là FP FNPFP TFNP trong đoạn cuối cùng?
Auberon

1
@Auberon: No, the last paragraph is translating between various conjectures. It says that FNPFPNPMVcPF, etc.
Joshua Grochow

@JoshuaGrochow hoặc N P P U P có thể hoặc sụp đổ hệ thống phân cấp? Ngoài ra P U P trong P T F N P hay ngược lại giữ (có vẻ hợp lý vì dường như không có hàm ý nào cả)? NPPTFNPNPPUPPUPPTFNP
T ....

3

Ngoài câu trả lời mở rộng của Joshua, tôi muốn thêm các định nghĩa sau từ Elaine Ruch về tính tự động, tính toán và độ phức tạp của Elaine Ruch .

The Class FP: A binary relation Q is in FP iff there is a deterministic polynomial time algorithm that, given an arbitrary input x, can find some y such that (x,y)Q.

The Class FNP: A binary relation Q is in FNP iff there is a deterministic polynomial time verifier, given an arbitrary input pair (x,y), determines whether (x,y)Q. Equivalentely, Q is in FNP iff there is a nondeterministic polynomial time algorithm that, given an arbitrary input x, can find some y such that (x,y)Q

FPTFNPFNP. She also briefly talks about problems outside of FNP.

For me, this has been the most satisfying resource that consists out of one single page I've found since a long time.


After I have given these definition some thought, I suspect that the two 'equivalent' definitions of FNP aren't equivalent at all...
Auberon

I think to get equivalence one needs to assume the relation is p-bounded (that is, there is a polynomial p such that if y such that (x,y)Q, then there is such a y with |y|p(|x|)). Also, one has to specify what it means for a "nondeterministic algorithm to find a y" - that is, what does it mean for a nondeterministic algorithm to "make an output"? This is part of why I like the NPMV family of definitions...
Joshua Grochow
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.