Phiên bản lớn của NC là gì?


21

O ( log c n ) O ( n k ) c k n c 2 n k kNC nắm bắt ý tưởng về khả năng song song hiệu quả và một cách giải thích về nó là các vấn đề có thể giải quyết được trong thời gian sử dụng bộ xử lý song song cho một số hằng số , . Câu hỏi của tôi là nếu có một lớp phức tạp tương tự trong đó thời gian là và số lượng bộ xử lý là . Như một câu hỏi điền vào chỗ trống:O(logcn)O(nk)cknc2nk

NC là vì _ _ làPEXP

Đặc biệt, tôi quan tâm đến một mô hình trong đó chúng tôi có số lượng máy tính được sắp xếp theo cấp số nhân trong một mạng với mức độ giới hạn đa thức (giả sử mạng không phụ thuộc vào đầu vào / vấn đề hoặc ít nhất là dễ xây dựng, hoặc bất kỳ giả định thống nhất hợp lý nào khác ). Tại mỗi bước thời gian:

  1. Mỗi máy tính đọc số đa thức của các thông điệp có kích thước đa thức mà nó nhận được trong bước thời gian trước đó.
  2. Mỗi máy tính chạy một số tính toán đa thời gian có thể phụ thuộc vào các tin nhắn này.
  3. Mỗi máy tính chuyển một tin nhắn (của polylength) cho mỗi hàng xóm của nó.

Tên của một lớp phức tạp tương ứng với các loại mô hình này là gì? Một nơi tốt để đọc về các lớp phức tạp như vậy là gì? Có bất kỳ vấn đề hoàn chỉnh cho một lớp như vậy?


Câu hỏi liên quan, tôi nghĩ: cstheory.stackexchange.com/q/2788/1037
Artem Kaznatcheev

Chúng tôi có , , , . Vì vậy, lớp tương ứng với có thể là một cái gì đó như và sau đó lớp tương ứng với sẽ là . Nó chỉ là một số thao tác đại số, tôi đã không kiểm tra xem nó có thỏa mãn yêu cầu của bạn không, nhưng tôi nghĩ nó sẽ thỏa mãn ba điều kiện nhưng sẽ không có nhiều máy tính theo cấp số nhân. Tôi nghĩ bạn nên bỏ yêu cầu đó nếu không (thêm)N C = A S p a c e T i m e ( O ( log n ) , ( log n) ) O ( 1 ) ) P = T iNCk=ASpaceTime(O(logn),(logn)k)NC=ASpaceTime(O(logn),(logn)O(1))E X P = T i m e ( 2 n O ( 1 ) ) N C k A S p a c e T i m e ( n O ( 1 ) , 2 O ( log n ) k ) N C A S p a c eP=Time(nO(1))EXP=Time(2nO(1))NCkASpaceTime(nO(1),2O(logn)k)NCASpaceTime(nO(1),2(logn)O(1))
Kaveh

lớp kết quả sẽ chứa và sự tương tự sẽ không giữ như . N C PEXPNCP
Kaveh

Tôi không hiểu nơi bạn có là độ phức tạp của không gian. Theo tôi biết cho phép đa thức nhiều cổng. Nếu chúng ta muốn đi theo dòng tương tự của bạn thì chúng ta nên xem là và sau đó lớp phức tạp mà tôi đang tìm kiếm là một cái gì đó giống như . Tuy nhiên, tôi đã hy vọng rằng có một đặc tính tốt hơn rằng điều này. N C N C P T / W K ( l o g c n , n k ) / p o l y P T / W K ( n c , 2 n k ) / p o l ylognNCNCPT/WK(logcn,nk)/polyPT/WK(nc,2nk)/poly
Artem Kaznatcheev

Đó là tiêu chuẩn (mặc dù nó không có trong Sở thú phức tạp), hãy kiểm tra, ví dụ Ruzzo, "Về độ phức tạp mạch đồng nhất", 1981. Ngoài ra tôi nghĩ bạn nên làm việc với các lớp thống nhất, mọi chức năng đều có sự thay đổi kích thước theo hàm mũ / độ sâu logic 2 (và điều này sẽ đáp ứng ba điều kiện nếu chúng ta sử dụng giới hạn quạt và độ sâu ). Và như tôi đã nói, nếu có nhiều nút theo cấp số nhân thì sự tương tự không giữ được. Ngoài ra một tính chất chính của tính toán song song là tiết kiệm thời gian, ví dụ: đó là thời gian đa log trong trường hợp . Tôi nghĩ rằng thời gian bán đa thức sẽ tương ứng với thời gian đa log. N ClognNC
Kaveh

Câu trả lời:


27

Tôi tin rằng lớp bạn đang tìm kiếm là . Giả sử bạn có bộ xử lý phù hợp với yêu cầu:e x p ( n k ) = 2 O ( n k )PSPACEexp(nk)=2O(nk)

  1. Mỗi máy tính đọc số đa thức của các thông điệp có kích thước đa thức mà nó nhận được trong bước thời gian trước đó.
  2. Mỗi máy tính chạy một số tính toán đa thời gian có thể phụ thuộc vào các tin nhắn này.
  3. Mỗi máy tính chuyển một tin nhắn (của polylength) cho mỗi hàng xóm của nó.

Điều này có thể được mô hình hóa bằng cách có một mạch với các lớp , trong đó mỗi lớp có "gate" và mỗi "gate" thực hiện tính toán thời gian đa thức (thỏa mãn phần 2) với quạt đa thức (trong phần 2) với quạt đa thức (trong phần 2). đáp ứng phần 1) và có fan-out đa thức (thỏa mãn phần 3). e x p ( n k )poly(n)exp(nk)

Vì mỗi cổng tính toán một hàm thời gian đa thức, mỗi cổng có thể được thay thế bằng một mạch kích thước đa thức (với AND / OR / NOT) theo cách thông thường. Lưu ý rằng fan-in đa thức và fan-outs có thể được tạo thành 2, chỉ bằng cách tăng độ sâu theo hệ số . Những gì còn lại là một mạch đồng nhất độ sâu với các cổng AND / OR / NOT. Đây chính xác là thời gian đa thức xen kẽ, chính xác là .p o l y ( n )O(logn)poly(n)P S P A C Eexp(nk)PSPACE


Ryan, tôi không biết làm thế nào bạn đặt số lượng máy tính theo cấp số nhân trong nhiều lớp, có vẻ như độ sâu có thể theo cấp số nhân, bạn có thể giải thích thêm một chút về lý do tại sao điều này là có thể? Ngoài ra, đối với tôi, việc xây dựng mạch CNF tầm thường của một chức năng được cung cấp tùy ý như một mạch 2 quạt sẽ thỏa mãn các yêu cầu, tôi có thiếu điều gì không?
Kaveh

1
@Kaveh: Tôi không hiểu câu hỏi đầu tiên của bạn. Về phần thứ hai, mặc dù có mạch độ sâu-2 theo cấp số mũ cho bất kỳ chức năng nào, NC (poly) yêu cầu bạn có thể tạo các mạch đồng đều, do đó bạn không thể tạo ra các mạch tùy ý cho mỗi kích thước đầu vào.
Robin Kothari

@Robin, cảm ơn. Có lẽ tôi đang nhầm lẫn mọi thứ. (Tôi cảm thấy độ sâu của các mạch tương ứng với PSpace nên theo cấp số nhân, tôi cũng nghĩ rằng PSpace là EXP vì L là P nên nói điều tương tự khi L được thay thế bởi NC là lạ đối với tôi, tôi cảm thấy rằng lớp chúng ta là chăm sóc nên ở giữa PSpace và EXP.) Tôi phải suy nghĩ thêm một chút để hiểu những gì đang diễn ra ở đây.
Kaveh

@Kaveh, tôi đã chỉ định số lớp (nghĩa là độ sâu) là số mũ, do đó, độ sâu không thể theo cấp số nhân, theo định nghĩa. Có nhiều bộ xử lý theo cấp số nhân, vì vậy CNF của bạn sẽ cần người hâm mộ theo cấp số nhân, vi phạm một trong các điều kiện. Độ sâu của các mạch kích thước theo cấp số nhân tương ứng với PSPACE là đa thức. Lý do điều này là đúng và lý do cả hai tương tự là "hợp lệ" theo nghĩa nào đó ("PSPACE là EXP là L là P" và "PSPACE là EXP như NC là P") là vì PSPACE = Polynomial xen kẽ Thời gian. Chúng tôi không biết nếu L = Thời gian logarit xen kẽ (đây là NC1).
Ryan Williams

Tôi nghĩ rằng tôi hiểu tình hình hơn sau khi đọc bình luận của bạn và Robin, cảm ơn.
Kaveh

21

Như Ryan nói, lớp này là PSPACE. Lớp này thường được gọi là NC (poly) trong tài liệu. Đây là một trích dẫn trực tiếp từ giấy QIP = PSPACE :

Chúng tôi xem xét một biến thể mở rộng của NC, đó là lớp NC (poly) phức tạp bao gồm tất cả các chức năng được tính toán bởi các họ thống nhất không gian đa thức của các mạch Boolean có độ sâu đa thức. (Ký hiệu NC (2 poly ) trước đây cũng đã được sử dụng cho lớp này [11].) Đối với các vấn đề quyết định, được biết rằng NC (poly) = PSPACE [10].

[10] A. Borodin. Về thời gian và không gian liên quan đến kích thước và độ sâu. Tạp chí SIAM về máy tính, 6: 733 Kiểu 744, 1977.

[11] A. Borodin, S. Cook và N. Pippenger. Tính toán song song cho các vòng được trang bị tốt và các máy xác suất giới hạn không gian. Thông tin và kiểm soát, 58: 113 Hàng136, 1983.

Một cách để thấy điều này là chứng minh trực tiếp cả hai vùi. Để thấy rằng NC (poly) có trong PSPACE, lưu ý rằng chúng ta có thể tính toán đầu ra của cổng cuối cùng một cách đệ quy và chúng ta sẽ chỉ yêu cầu một ngăn có kích thước bằng độ sâu của mạch, là đa thức. Để chỉ ra rằng PSPACE nằm trong NC (poly), lưu ý rằng QBF, hoàn thành PSPACE, có thể được viết dưới dạng mạch độ sâu đa thức với nhiều cổng theo cách thông thường - bộ định lượng tồn tại là cổng OR, bộ định lượng forall là một cổng AND. Vì chỉ có nhiều định lượng đa thức, đây là mạch độ sâu đa thức.

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.