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 P ∩ c o N P (sử dụng Def 1 cho FP ở trên).NPSVtNPSVΣ∗→Σ∗NPSVt=FPNP∩coNP
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 x mà gNPMV⊈NPSVNPSVNPMV⊆cfgxgtạ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 .ffgNPMVNPSVNPMV⊆cNPSV
- (í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⊆Σ∗PFx∈Df(x)x∉D
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)]fyfFNPRR∈PFNP
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 P ⊆ F P (def 2) tương đương với N P M V t ⊆ c F P (def 1).FNP⊆FPFNPNPMV⊆cPFTFNP⊆FPNPMVt⊆cFP