Các lớp phức tạp cho các trường hợp khác


10

Chúng ta có các lớp phức tạp đối với độ phức tạp của trường hợp trung bình không? Ví dụ, có một lớp phức tạp (được đặt tên) cho các vấn đề cần thời gian đa thức dự kiến ​​để quyết định không?

Một câu hỏi khác xem xét độ phức tạp của trường hợp tốt nhất , được minh họa dưới đây:

Có một lớp các vấn đề (tự nhiên) mà quyết định của bạn đòi hỏi ít nhất là thời gian theo cấp số nhân?

Để làm rõ, xem xét một số EXP ngôn ngữ -complete L . Rõ ràng, không phải tất cả các trường hợp của L yêu cầu thời gian theo cấp số nhân: Có những trường hợp có thể được quyết định ngay cả trong thời gian đa thức. Vì vậy, độ phức tạp trường hợp tốt nhất của L không phải là thời gian theo cấp số nhân.

EDIT: Vì một số sự mơ hồ nảy sinh, tôi muốn cố gắng làm rõ hơn nữa. Với độ phức tạp "trường hợp tốt nhất", ý tôi là một lớp phức tạp có độ phức tạp của các vấn đề bị giới hạn bởi một số hàm. Chẳng hạn, định nghĩa BestE là lớp ngôn ngữ không thể được quyết định theo thời gian ít hơn một số mũ tuyến tính. Về mặt biểu tượng, hãy để M biểu thị một máy Turing tùy ý và c , n0n là các số tự nhiên:

LBestE (c)(M)[(L(M)=L)(n0)(n>n0)(x{0,1}n)[T(M(x))2c|x|]]

Trong đó biểu thị số lần cần trước khi M dừng trên đầu vào x .T(M(x))Mx

Tôi chấp nhận rằng việc xác định loại vấn đề như vậy là rất kỳ lạ, vì chúng tôi yêu cầu rằng, mọi máy Turing , bất kể sức mạnh của nó, không thể quyết định ngôn ngữ theo thời gian ít hơn một số hàm mũ tuyến tính.M

Tuy nhiên, lưu ý rằng đối tác thời gian đa thức ( BestP ) là tự nhiên, vì mọi máy Turing đều yêu cầu thời gian để ít nhất đọc đầu vào của nó.|x|

PS: Có thể, thay vì định lượng là "cho tất cả máy Turing ", chúng tôi phải giới hạn nó ở một số loại máy Turing được chỉ định trước, chẳng hạn như máy Turing thời gian đa thức. Theo cách đó, chúng ta có thể định nghĩa các lớp như B e s t ( n 2 ) , đây là lớp ngôn ngữ cần ít nhất thời gian bậc hai để được quyết định trên các máy Turing thời gian đa thức.MBest(n2)

PS2: Người ta cũng có thể xem xét bản sao độ phức tạp của mạch, trong đó chúng tôi xem xét kích thước / độ sâu mạch nhỏ nhất để quyết định ngôn ngữ.


Chỉ vì có những trường hợp SAT dễ dàng, điều đó không có nghĩa là thời gian dự kiến ​​của nó là đa thức. Tôi không chắc là tôi hiểu câu hỏi của bạn ..
Lev Reyzin

@Lev Reyzin: Tôi không có nghĩa là SAT trong thời gian nhiều lần dự kiến. Ý tôi là vì SAT có những trường hợp dễ dàng, chúng ta không thể nói rằng sự phức tạp "trường hợp tốt nhất" của nó là khó.
MS Dousti

Ồ, tôi thấy, độ phức tạp trường hợp trung bình và độ phức tạp trường hợp tốt nhất là hai câu hỏi riêng biệt! Bằng cách nào đó tôi đã bỏ lỡ điều này trong lần đọc đầu tiên - sai lầm của tôi.
Lev Reyzin

Tôi không thể phân tích rõ định nghĩa của bạn về BestE. M và x đang ngồi ngoài định lượng của họ ... ngoài ra, bạn có muốn từ chối các đầu vào không có trong L không? ML
Ryan Williams

@Ryan: Cảm ơn bạn đã chỉ ra lỗ hổng. Tôi sửa nó rồi.
MS Dousti

Câu trả lời:


13

Mặc dù tôi không thể phân tích cú pháp định nghĩa của bạn, bạn nên biết rằng hệ thống phân cấp thời gian mạnh hơn nhiều, đặc biệt là hệ thống phân cấp thời gian "gần như ở mọi nơi".

Đây là tuyên bố chính thức: cứ mỗi lần ràng buộc , có một ngôn ngữ L T I M E [ T ( n ) ] với thuộc tính mà mọi thuật toán xác định nhận ra chính xác L phải chạy trong thời gian không có triệu chứng lớn hơn t ( n ) trên tất cả nhưng rất nhiều đầu vào, trong thời gian đủ nhỏ t ( n ) . T(n)LTIME[T(n)]Lt(n)t(n)

Có nghĩa là "đủ nhỏ" .t(n)logt(n)o(T(n))

Giả sử chúng ta chọn cho một ví dụ, và có được một ngôn ngữ cứng L . Sau đó, bất kỳ thuật toán nào nhận dạng chính xác L phải mất ít nhất 2 n / n 2 lần trên tất cả các đầu vào vượt quá một độ dài nhất định. Đây dường như là những gì bạn đang tìm kiếm trong lớp BestE của bạn.T(n)=2nLL2n/n2

Tài liệu tham khảo:

John G. Geske, Dung T. Huynh, Joel I. Seifera: Một lưu ý về các bộ phức tạp gần như mọi nơi và tách biệt các lớp phức tạp xác định thời gian-phức tạp Inf. Tính toán. 92 (1): 97-104 (1991)


Rất tốt, cảm ơn. Tôi nghĩ bạn hiểu khá rõ câu hỏi của tôi và câu giới thiệu của bạn "Tôi không thể phân tích rõ các định nghĩa của bạn" chỉ là một dấu hiệu của sự khiêm tốn của bạn :)
MS Dousti

2
Với điều kiện tôi đã đoán đúng, định nghĩa của bạn phải là một cái gì đó như: "L \ in BestE \ iff (\ tồn tại c) (\ forall M) [(L (M) = L) \ Rightarrow (\ tồn tại n_0) (\ forall n > n_0) (\ forall x \ in \ {0,1 \} ^ n) [T (M (x))> 2 ^ {c | x |})]. "
Ryan Williams

Đúng, bạn đúng. Tôi đã chỉnh sửa định nghĩa trong phút cuối và đặt sai một số bộ định lượng. Tôi đã sửa câu hỏi dựa trên định nghĩa của bạn.
MS Dousti

12

Có một số lớp cố gắng giải quyết các khái niệm khác nhau về độ phức tạp của trường hợp trung bình. Trong Sở thú phức tạp, một số lớp bạn có thể quan tâm là:

AverageP

HeurP

DistNP

(NP, P-samplable)

Arora / Barak bao gồm nhiều lớp tương tự (trong Ch 18), xác định distP, distNP và sampNP.

Mối quan hệ chính xác giữa tất cả các lớp này được đặc trưng bởi Five Worlds của Impagliazzo, trước đây đã được hỏi về một câu hỏi khác .

Theo như câu hỏi phức tạp "trường hợp tốt nhất", tôi không chắc là tôi hiểu ý bạn nói gì. Bạn đang tìm kiếm EXP ?

Nếu bạn có nghĩa là các lớp phức tạp được xác định theo thời gian chạy trường hợp tốt nhất trong tất cả các trường hợp, thì đây không phải là một phép đo độ phức tạp rất tốt, vì bạn chỉ nhìn vào các trường hợp tầm thường của bất kỳ vấn đề nào.


Làm rất tốt Đó là những gì tôi cần cho phần phức tạp trong trường hợp trung bình của câu hỏi. Về phần "trường hợp tốt nhất", tôi nhận thấy rằng tuyên bố ban đầu của câu hỏi là mơ hồ. Lỗi của tôi! Tôi đã chỉnh sửa nó rất nhiều, vì vậy hãy xem xét việc đọc lại.
MS Dousti

5

[Mở rộng câu trả lời của Ryan Williams và thêm một số thuật ngữ tìm kiếm cho bạn] Khái niệm về độ phức tạp trong trường hợp tốt nhất của bạn đã có một tên: độ cứng gần như ở mọi nơi (ae) hoặc miễn nhiễm bi. (Ví dụ của Ryan là về -bi-miễn dịch). Nếu C là một lớp phức tạp, sau đó một ngôn ngữ LC -immune nếu không có tập con vô hạn L 'LL 'C . LC -bi-miễn dịch nếu cả hai L và bổ sung của nó ¯ LTIME[T(n)]CLCLLLCLCL C -immune. Ví dụ, không khó để chỉ ra rằng định nghĩa của bạn về B e s t E tương đương với nhóm cácbộ miễn dịch E -bi.L¯=ΣLCBestEE

(Về mặt lịch sử: khái niệm miễn dịch được Post phát triển lần đầu tiên vào năm 1944 trong lý thuyết tính toán, rất lâu trước khi P thậm chí được định nghĩa. Post thực sự coi là "tập đơn giản" - một tập hợp đơn giản nếu bổ sung của nó là miễn dịch. Từ "miễn dịch" thường có nghĩa là "miễn dịch với các bộ có thể tính toán được." Trong cài đặt đó, khả năng miễn dịch tương đương với "miễn dịch với bộ ce" vì mỗi bộ ce vô hạn đều chứa một bộ tính toán vô hạn. khái niệm giảm nhiều người, nhưng tôi không thể thề với điều đó.)


Trên thực tế, định nghĩa của anh ta chỉ có chấp nhận đầu vào bằng L , không từ chối đầu vào không ở L ... miễn là bạn đặt điều kiện M ( x ) = 1 ở đúng vị trí. MLLM(x)=1
Ryan Williams

Cảm ơn Joshua rất nhiều. Câu trả lời của bạn bổ sung cho câu hỏi của Ryan. Chỉ cần một biên tập: Trong định nghĩa của C-miễn dịch, một trong những "thủ" là mất tích (nó nên đọc: không có tập con vô hạn như vậy mà L 'C .)LLC
MS Dousti

1
@Sadeq: đã sửa, cảm ơn. @Ryan: Đúng (hoặc cách đây vài giờ: anh ấy đã cập nhật định nghĩa). Sau đó, nó sẽ là miễn dịch thay vì miễn dịch bi. Dù bằng cách nào, chủ yếu tôi chỉ muốn chỉ ra từ khóa "miễn dịch".
Joshua Grochow

2

Các trường hợp khác nhau có ý nghĩa hơn khi nói về thuật toán, không phải vấn đề. Mặt khác, các lớp phức tạp là về các vấn đề, không phải các thuật toán. Do đó, lớp phức tạp luôn là trường hợp xấu nhất đối với bất kỳ thuật toán nào là do định nghĩa.

Để phức tạp, mục tiêu của bạn là biết số lượng tài nguyên cần thiết để giải quyết bất kỳ trường hợp nào của một vấn đề nhất định. Do đó, bạn biết rằng đối với bất kỳ trường hợp và thuật toán cụ thể nào, bạn sẽ cần những tài nguyên đó và không có gì hơn thế.

Trong phân tích thuật toán, mục tiêu của bạn là đảm bảo thuật toán của bạn có giới hạn trên đối với tài nguyên, trong mọi trường hợp của vấn đề. Một ràng buộc tầm thường là lớp phức tạp của vấn đề, vì không có thuật toán nào hữu ích (một bước thực hiện các bước không cần thiết) mất nhiều thời gian hơn thế. Tuy nhiên, bạn có thể cải thiện ràng buộc đó với các chi tiết cụ thể của thuật toán.

Θ

Đối với trường hợp tốt nhất, mọi vấn đề đều không đáng kể để tìm ra số lượng tài nguyên cần thiết ít nhất. Giả sử rằng đầu vào có độ dài O (n) và đầu ra có độ dài O (m). Sau đó, TM M sau luôn chạy trong O (n) + O (m) trong trường hợp tốt nhất:

M {Đầu vào, sơ thẩm, Giải pháp}

  1. So sánh thể hiện đã cho với thể hiện được mã hóa trong máy.
  2. Nếu chúng bằng nhau, trả lại giải pháp được mã hóa.
  3. Khác, làm một tìm kiếm vũ phu.

-1

O(1)


1
Tôi không nghĩ rằng đó là một thuật toán chính xác cho vấn đề. Tuy nhiên, thuật toán của bạn có thể được sửa đổi để trước tiên nó kiểm tra xem đầu vào có bằng với trường hợp cụ thể mà bạn đã xác định trước (trong thời gian O (1)) hay không. Nếu có, nó đưa ra câu trả lời được tính toán trước. Nếu không, bạn giải quyết trường hợp đã cho bằng bất kỳ phương tiện nào. Suy nghĩ về nó, bất kỳ thuật toán chính xác nào cũng chạy trong thời gian O (1) cho mọi trường hợp, nếu chúng ta có thể lấy các hằng số khác nhau đằng sau ký hiệu O cho các trường hợp khác nhau. Đó là lý do tại sao sự phức tạp trong trường hợp tốt nhất của người Viking theo nghĩa đen là không hữu ích.
Tsuyoshi Ito

Nếu bạn đang nói về tính toán xác định, không xác suất, sẽ mất thời gian tuyến tính (O (n)) để kiểm tra xem hai mã hóa của các trường hợp có tương đương hay không: quét n bit của mã hóa đầu vào và xác minh rằng nó có giống nhau không như mã hóa được lập trình, không?
Daniel Apon

2
@Daniel: Có, nhưng nếu một trong các trường hợp được cố định, thì chỉ mất thời gian không đổi, trong đó hằng số phụ thuộc vào độ dài của thể hiện cố định.
Tsuyoshi Ito
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.