P-Hoàn thành và Tính toán song song


23

Gần đây tôi đã đọc về các thuật toán để kiểm tra tính đơn giản và đọc rằng vấn đề đã hoàn thành . Hơn nữa, một hậu quả của điều này là vấn đề này, hoặc bất kỳ vấn đề hoàn chỉnh P nào, không có khả năng có một thuật toán song song hiệu quả.

Trực giác đằng sau tuyên bố cuối cùng này là gì?


Điều này liên quan đến NC (xem câu trả lời) mà imho là một cách khủng khiếp để chính thức hóa "song song hiệu quả".
Raphael

Câu trả lời:


17

Bất kỳ vấn đề -complete nào, không có khả năng có một thuật toán song song hiệu quả. Tại sao ?P

Sự tồn tại của vấn đề -complete là đầu mối quan trọng nhất mà . Câu hỏi sau đó là, tại sao phỏng đoán này có liên quan đến tính toán song song? Hãy bắt đầu với các tài nguyên được sử dụng trong một tính toán. Đối với điện toán tuần tự: thời gian và không gian; cho tính toán song song: thời gian và phần cứng (số lượng bộ xử lý). Có một mối quan hệ? Vâng! Không gian tuần tự time thời gian song song; Thời gian tuần tự hardware phần cứng song song. Sự tương ứng giữa không gian tuần tự và thời gian song song dường như độc lập với mô hình tính toán song song được thông qua; điều này dẫn đến những điều sau đây, vì vậy được gọi là luận án tính toán song song chưa được chứng minh.( P P O L Y L O G S P A C E ) PP(PPOLYLOGSPACE)P

(Chandra và Stockmeyer) Mọi tính toán của TM với độ phức tạp không gian có thể được mô phỏng theo mô hình tính toán song song theo thời gian và mọi tính toán của một mô hình tính toán song song với độ phức tạp thời gian có thể được mô phỏng bằng một TM có độ phức tạp không gian .S(n)T ( n ) S ( n ) = O ( T ( n ) O ( 1 ) )T(n)=O(S(n)O(1))T(n)S(n)=O(T(n)O(1))

Lớp các vấn đề có thể giải quyết tuần tự trong không gian đa thức là và tập hợp các vấn đề có thể giải quyết được trong thời gian đa thức là .Since được cho là một loại vấn đề lớn hơn nhiều so với , luận án định lượng sự cải thiện hiệu quả có thể thực hiện được bằng cách song song. Một kết quả của luận án này là một PRAM có thể giải quyết các vấn đề -complete trong thời gian đa thức. Thật không may, không! Luận án tính toán song song ngụ ý rằng chúng ta thực sự có thể giải quyết các vấn đề thuộc vềP P S P A C E P N P P S P A C EPSPACEPPSPACEPNPPSPACETuy nhiên, điều này đòi hỏi một số lượng lớn bộ xử lý! Một sự đánh đổi không gian thời gian đang hoạt động: Thời gian theo cấp số nhân của mô hình điện toán tuần tự được chuyển thành số lượng bộ xử lý theo mô hình số mũ, trong khi không gian đa thức trên mô hình điện toán tuần tự được chuyển đổi thành thời gian đa thức song song mô hình điện toán.

Đây trade-off là dễ hiểu nếu chúng ta cố gắng hạn chế cả về thời gian song song và phần cứng song song: nếu mô hình tính toán song song có một số đa thức của bộ vi xử lý, sau đó lớp của các vấn đề có thể giải quyết trong thời gian đa thức song song là . Nếu chúng ta giới hạn số lượng bộ xử lý thành một đa thức, chúng ta có thể cải thiện hiệu suất của một máy tuần tự, nhưng không nhiều hơn một yếu tố đa thức. Do đó, chúng ta có thể giảm mức độ của đa thức biểu thị độ phức tạp thời gian, nhưng chúng ta không thể sử dụng song song để giảm chi phí theo cấp số nhân cho chi phí đa thức.P

Những vấn đề giải quyết song song với độ phức tạp thời gian đa thức là những vấn đề thuộc . Ràng buộc đa thức về số lượng bộ xử lý dẫn đến một mô hình tính toán song song tương đương với TM. Có hai cân nhắc thực tế quan trọng: số lượng bộ xử lý đa thức nào được chấp nhận / giá cả phải chăng? Trong thực tế, số lượng bộ xử lý đa thức có nghĩa là tuyến tính hoặc đóng. Thời gian đa thức nào có thể đạt được? Nó chỉ ra rằng hầu hết tất cả các vấn đề khả thi song song cao có thể đạt được thời gian song song polylogarithmic. Song song, độ phức tạp thời gian là logarit trong độ dài đầu vào biểu thị một tính toán song song hiệu quả. Một thuật toán song song được coi là hiệu quả nếu, với số lượng bộ xử lý đa thức, độ phức tạp thời gian của nó là polylogarithmic.P

Đưa ra một vấn đề trong đó và là các hằng số, luận án tính toán song song ngụ ý sự tồn tại của thuật toán song song cho với độ phức tạp thời gian trong đó là hằng số. Việc so sánh giữa thời gian tuần tự và song song cho phép phân loại là một vấn đề có tính song song cao (từ góc độ thời gian).k h R O ( ( l o g n ) k ) k RRTIME_SPACETM(nk,(logn)h)khRO((logn)k)kR

Từ luận điểm tính toán song song, theo đó là lớp các vấn đề có tính song song cao. không chứa các vấn đề hoàn chỉnh liên quan đến việc giảm không gian log; điều này có nghĩa . Có vẻ nhưP O L Y L O G S P Một C E P O L Y L O G S P Một C E PPOLYLOGSPACEPOLYLOGSPACEPOLYLOGSPACEP

  1. POLYLOGSPACEP
  2. PPOLYLOGSPACE

P P - ( P P O L Y L O G S P A C E )PPOLYLOGSPACE chứa các vấn đề có thể được giải quyết trong thời gian đa thức bằng cách sử dụng không gian đa bội. vấn đề của có lẽ thuộc về .PP(PPOLYLOGSPACE)

O ( ( l o g n ) k ) ) O ( f ( n ) ) f n N C ( P P O L Y L O G S P A C E )NC (Lớp của Nick - được gọi là vinh danh Nicholas Pippenger, người đầu tiên xác định và mô tả nó vào năm 1979) là lớp các vấn đề có thể được giải quyết trong thời gian đa thê (nghĩa là với độ phức tạp thời gian với số lượng bộ xử lý đa thức (Tức là giới hạn bởi cho một số hàm đa thức trong đó là kích thước bài toán) Luận án tính toán song song ngụ ý .O((logn)k))O(f(n))fnNC(PPOLYLOGSPACE)

Tuy nhiên, không may theo định nghĩa cũng bao gồm rất nhiều vấn đề không thể song song hiệu quả. Ví dụ khét tiếng nhất là tìm kiếm nhị phân song song . Vấn đề là vấn đề này có độ phức tạp thời gian đa bội ngay cả đối với = 1. Bất kỳ thuật toán tuần tự nào yêu cầu tại hầu hết thời gian logarit trong trường hợp xấu nhất là ở bất kể tính khả thi song song của nó!p N CNCpNC

Bây giờ, cuối cùng chúng ta có thể giải thích tại sao các vấn đề -complete là các vấn đề song song khó nhất. Với một vấn đề -complete , rất khó có thể tồn tại một thuật toán song song hiệu quả: nếu một thuật toán song song như vậy tồn tại với độ phức tạp thời gian , thì luận án tính toán song song sẽ ngụ ý sự tồn tại của một thuật toán tuần tự với độ phức tạp không gian cho cùng một vấn đề. Kể từ khi là một vấn đề -complete này sẽ lần lượt có nghĩa là mọi vấn đề trong có thể được giải quyết trong không gian poly-log: . Như bạn đã biết, thay vào đó chúng tôi tin rằngP Q O ( ( l o g n ) k ) O ( ( l o g n ) k ) Q P P ( P P O L Y L O G S P A C E ) = P ( P P O L Y L O G S P A C E )PPQO((logn)k)O((logn)k)QPP(PPOLYLOGSPACE)=P(PPOLYLOGSPACE)P , mặc dù chúng tôi chưa thể chứng minh điều này.

Một quan sát cuối cùng, về yêu cầu bộ xử lý đa thức. Vâng, đó là một tuyên bố lý thuyết. Trong thực tế: yêu cầu bộ xử lý tăng nhanh hơn kích thước sự cố có thể không thực sự hữu ích.


10

Bởi vì "song song hiệu quả" nằm trong (Lớp Nick của các vấn đề có thể giải quyết được trong thời gian đa bội với số lượng bộ xử lý đa thức), và người ta tin rằng . Vì vậy, mọi vấn đề đều không được tin là có thuật toán song song hiệu quả (vì điều đó có nghĩa là ).NCN CP P - c o m p l e t e P = N CNCPP-completeP=NC

Tất nhiên, tất cả những điều này tùy thuộc vào việc , như bạn biết đó là một vấn đề mở mà không ở cấp độ đầu tiên của , tức là chúng ta không biết nếu .P N C N C 1PNCPPNCNC1P

Thậm chí, chúng tôi thậm chí còn không biết liệu bạn có thể giải quyết các vấn đề trong trong , tức là độ sâu không đổi (= thời gian song song không đổi) với các cổng .A C 0 [ 6 ]PAC0[6]mod6

Để biết thêm thông tin, hãy xem cuốn sách sau:

Raymond Greenlaw, H. James Hoover, Walter L. Ruzzo, " Giới hạn tính toán song song: Lý thuyết hoàn thành P ", 1995.


NC cũng bao gồm rất nhiều vấn đề không hiệu quả song song. Xem câu trả lời của tôi để biết chi tiết.
Massimo Cafaro

Bạn có thể muốn nói một cách rõ ràng rằng "Nếu bất kỳ vấn đề nằm trong thì ". N C N C = PP-completeNCNC=P
Alex ten Brink

1
@unforgiven, có nhiều ý kiến ​​khác nhau về việc lớp nào nắm bắt chính xác thuật toán "song song hiệu quả", vì lý do đó tôi đã sử dụng một lớp được coi là lớp trên. Tôi nghĩ P so với NC là lý do điển hình khiến mọi người nghĩ rằng các vấn đề hoàn chỉnh của P không có thuật toán song song hiệu quả mặc dù có những chi tiết thú vị như đã nêu trong câu trả lời của bạn. Tôi đã thêm một tài liệu tham khảo cho câu trả lời của tôi.
Kaveh

1
@Kaveh, tôi đồng ý với bạn. Hầu hết mọi người nghĩ về điều này chính xác trong các điều khoản. Đó là lý do tại sao tôi muốn đưa ra một quan điểm hơi khác, dựa trên luận điểm tính toán song song. Các tài liệu tham khảo bạn cung cấp là tuyệt vời và đại diện, trên thực tế, điều trị tốt nhất của chủ đề tôi từng đọc.
Massimo Cafaro

6

Câu trả lời của Kaveh bao hàm định nghĩa thông thường về "song song", đó là NC. Câu hỏi liệu P NC có phải là một trong những câu hỏi khó hơn trong lý thuyết phức tạp (và trong một số cách cũng có liên quan như câu hỏi P NP).<<<

Trực giác đằng sau đó là một số vấn đề trong P, như lập trình tuyến tính hoặc thứ tự DFS cảm thấy như chúng có rất nhiều phụ thuộc buộc một "con đường quan trọng" dài không thể song song. Đây không phải là một bằng chứng nào hơn là chủ nghĩa không xác định dường như rất mạnh mẽ, nhưng đây là ý tưởng cơ bản.

Chỉnh sửa: Để làm rõ các bình luận, quan điểm của câu trả lời này là cho biết tại sao (một số) mọi người không nghĩ rằng P và NC giống nhau. Cũng như với P và NP, không ai biết làm thế nào để chứng minh hai người có khác nhau hay không, nhưng có điều gì đó về những vấn đề khó khăn khiến (một số) các nhà khoa học máy tính nghĩ rằng họ là như vậy.

Một khía cạnh khác là NC là "thời gian polylog trên nhiều bộ xử lý", yêu cầu tăng tốc rất mạnh nhưng cung cấp rất nhiều bộ xử lý. Do đó, nó có thể không phù hợp với một khái niệm thực tế về song song.

Cụ thể, nếu bạn nghĩ rằng P NP, thì bạn sẽ bắt đầu xem xét các thuật toán heuristic và xấp xỉ ngay lập tức cho các vấn đề hoàn thành NP. Mặt khác, ngay cả khi bạn nghĩ rằng NC nhỏ hơn P, bạn có thể có được các tốc độ không tầm thường từ các loại song song có sẵn từ các máy tính ngày nay.<


Trực giác bạn đang đưa ra là không chính xác, thực tế là người ta không thể biến một thuật toán cụ thể thành một thuật toán song song hiệu quả không có nghĩa là vấn đề không thể được giải quyết trong thời gian song song hiệu quả. Người ta có thể nói điều gì đó tương tự như nói chủ yếu không có trong vì bạn phải kiểm tra rất nhiều số và có vẻ như hầu hết chúng không liên quan, nhưng đó là sai như chúng ta biết và tính nguyên thủy nằm trong . PPP
Kaveh

Nhưng quan điểm của Louis nên được xem là trực giác, và không hoàn toàn sai. Tuy nhiên, vấn đề là sự hoàn thiện P của DFS rất mong manh - bạn cần từ điển DFS và nó cũng có trong RNC, v.v.
Suresh

@Suresh: Vâng. Ý tôi là, tôi không biết làm thế nào để chứng minh lex đó. đặt hàng DFS không thể được mô phỏng một cách xác định theo cách tốt hơn nhiều so với việc thực hiện nó, nhưng mọi người không "cảm thấy" như có thể mà không có sự ngẫu nhiên. (Nếu có vấn đề, "tôn giáo" của tôi là rất nhiều sự ngẫu nhiên có sức mạnh nào đó.)
Louis

@Kaveh: "đường dẫn quan trọng" này (còn được gọi là "độ sâu công việc") không phải là một tính năng của thuật toán mà là của vấn đề; đó là lý do tại sao nó khó hiển thị Đây là chuỗi dài nhất của "công việc" đã được nghiên cứu theo trình tự (bằng bất kỳ thuật toán nào).
Raphael

@Raphael, được cung cấp một ngôn ngữ, không có lý do tại sao một thuật toán giải nó phải tuân theo một chuỗi các bước cụ thể, nếu bạn có thể chỉ ra rằng nó sẽ ám chỉ một ngôn ngữ thấp hơn mà chúng ta không có. Và đây là một trong những lý do tại sao việc chứng minh các mức thấp rất khó khăn, bạn không thể giả định bất cứ điều gì về cách tính toán của một thuật toán giải quyết vấn đề sẽ như thế nào. Đó là quan điểm của tôi.
Kaveh

3

Hãy rất chú ý đến việc ai dùng "thuật toán song song hiệu quả" để hiểu chính xác điều gì.

Các câu trả lời cũ hơn giải thích quan điểm của lý thuyết phức tạp. Ở đó, "hiệu quả" thường có nghĩa là một cái gì đó mơ hồ như "thời gian chạy trong thời gian với bộ xử lý ". Lưu ý rằng số lượng bộ xử lý có thể phụ thuộc vào kích thước đầu vào!O ( g ( n ) )O(f(n))O(g(n))

Đặc biệt, lớp NC thường được đặt tên

tập hợp các vấn đề quyết định có thể quyết định trong thời gian đa bội trên một máy tính song song với số lượng bộ xử lý đa thức.

Điều này không liên quan gì đến việc liệu có các thuật toán song song cho các vấn đề này có hiệu quả theo các thuật ngữ thực tế hơn không:

  • Nếu bạn có thuật toán NC, bạn sẽ không nhận được thông tin về cách giải quyết vấn đề (hiệu quả) trên bất kỳ máy nào có số lượng bộ xử lý cố định.
  • Chỉ vì không có thuật toán NC cho một vấn đề không có nghĩa là không có thuật toán "thực"; chỉ vì chúng ta không thể phân tách vấn đề thành nhiều phần rất nhỏ không có nghĩa là chúng ta không thể chia nó thành nhiều phần nhỏ hơn đủ, khi phát triển.n

    Chẳng hạn, trên nhiều bộ xử lý có bộ nhớ dùng chung, phân tích cú pháp CYK có thể được thực hiện song song với việc tăng tốc tối ưu không có triệu chứng (xem luận án chính của tôi , mặc dù phân tích cú pháp không ngữ cảnh là hoàn thành P.

Mô tả hiệu quả trên các máy có nhiều bộ xử lý theo cách hữu ích đòi hỏi phải phân tích chính xác hơn vì việc tăng tốc được giới hạn bởi một hằng số hữu hạn, số lượng bộ xử lý². Bạn hiếm khi tìm thấy điều này trong lý thuyết phức tạp. Do đó, nếu bạn muốn tìm hiểu về các thuật toán song song được sử dụng trong thế giới thực, tôi khuyên bạn nên tìm ở nơi khác.O()


  1. Đặt hàm thời gian chạy của thuật toán song song. Bạn có thể muốn gọi một thuật toán là "hiệu quả" nếu hoặc nếu cho chức năng thời gian chạy của thuật toán tuần tự tốt. Tôi đề xuất điều này một cách nghiêm ngặt hơn trong luận án thạc sĩ của tôi , xây dựng từ văn học được trích dẫn trong đó. T 1 ( n ) / T p ( n ) p T 1 ( n ) T ( n ) TTp:NR0T1(n)/Tp(n)pT1(n)T(n)T

  2. Điêu nay không phải luc nao cung đung; phân cấp bộ nhớ và phần cứng có thể cho phép tăng tốc lớn hơn, ít nhất là đôi khi. Sẽ có một ràng buộc liên tục khác, mặc dù.


0

Giả sử ngày mai có người phát hiện ra một bằng chứng cho thấy P = NC. Hậu quả cho nghiên cứu khoa học máy tính và ứng dụng thực tế là gì trong trường hợp này?

Câu hỏi đó được đánh dấu là trùng lặp câu hỏi này, vì vậy tôi chỉ giả sử rằng nó thực sự là một bản sao và cung cấp một câu trả lời có thể.

Chúng ta biết rằng NC! = PSPACE, do đó một bằng chứng cho thấy P = NC cũng sẽ chứng minh P! = PSPACE. Điều đó có vẻ không phải là một vấn đề lớn, nhưng nó là một hệ quả cho nghiên cứu khoa học máy tính.

Tại sao chúng ta biết NC! = PSPACE? Chà, chúng ta biết NC k ⊆ DSPACE (O (log k )), vì vậy chúng ta chỉ có thể sử dụng định lý phân cấp không gian.


Về mặt ứng dụng thực tế, các ứng dụng xung quanh lập trình tuyến tính (và lồi) có thể quyến rũ đến mức các kiến ​​trúc song song tùy chỉnh cùng với các trình biên dịch để dịch các công thức lập trình tuyến tính hiệu quả sang phần cứng đó có thể được phát triển và bán.

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.