Niềm tin sai lầm phổ biến trong khoa học máy tính lý thuyết


62

CHỈNH SỬA NGÀY 10/12/08:

Tôi sẽ cố gắng sửa đổi câu hỏi để nó có thể thu hút nhiều người hơn để chia sẻ ý kiến ​​của họ. Chúng tôi CẦN đóng góp của bạn!

Bài này được lấy cảm hứng từ một trong MO: Ví dụ về những niềm tin sai lầm phổ biến trong toán học . Danh sách lớn đôi khi tạo ra một số lượng lớn câu trả lời những phẩm chất khó kiểm soát, nhưng sau thành công của bài đăng liên quan trên MO, tôi tin rằng sẽ hữu ích khi liệt kê một loạt các niềm tin sai lầm phổ biến trong TCS.

Tuy nhiên, vì trang web được thiết kế để trả lời các câu hỏi ở cấp độ nghiên cứu, các ví dụ như là viết tắt của thời gian không đa thức nên không có trong danh sách. Trong khi đó, chúng tôi muốn một số ví dụ có thể không khó, nhưng không suy nghĩ chi tiết thì nó cũng có vẻ hợp lý. Chúng tôi muốn các ví dụ mang tính giáo dục và thường xuất hiện khi nghiên cứu chủ đề này lần đầu tiên.NP

Một số ví dụ (không tầm thường) về niềm tin sai lầm phổ biến trong khoa học máy tính lý thuyết, xuất hiện cho những người đang nghiên cứu trong lĩnh vực này là gì?

Nói chính xác, chúng tôi muốn các ví dụ khác với kết quả đáng ngạc nhiênkết quả trái ngược với TCS; những loại kết quả này làm cho mọi người khó tin, nhưng chúng là ĐÚNG. Ở đây chúng tôi đang yêu cầu các ví dụ đáng ngạc nhiên rằng mọi người có thể nghĩ rằng đó là sự thật ngay từ cái nhìn đầu tiên, nhưng sau khi suy nghĩ sâu hơn, lỗi bên trong bị phơi bày.


Như một ví dụ về các câu trả lời thích hợp trong danh sách, câu hỏi này xuất phát từ lĩnh vực thuật toán và lý thuyết đồ thị:

Đối với đồ thị nút , dấu tách -edge là tập con của các cạnh có kích thước , trong đó các nút của có thể được phân chia thành hai phần không liền kề, mỗi phần bao gồm tối nút . Chúng tôi có "bổ đề" sau:nk S k G S 3 n / 4GkSkGS3viết sai rồi/4

Một cây có dải phân cách 1 cạnh.

Đúng?


Bài đăng đã được gắn cờ để được yêu cầu như một CW.
Hsien-Chih Chang 張顯

Câu trả lời:


59

Đây là một điểm chung cho hình học tính toán, nhưng đặc hữu ở nơi khác: Thuật toán cho RAM thực có thể được chuyển sang RAM nguyên (đối với các hạn chế số nguyên của vấn đề) mà không làm giảm hiệu quả. Một ví dụ điển hình là yêu cầu loại bỏ Gaussian trong thời gian . Thực tế, các lệnh loại bỏ bất cẩn có thể tạo ra các số nguyên với nhiều bit theo cấp số nhân .O(n3)

Thậm chí tệ hơn, nhưng vẫn không may phổ biến: Các thuật toán cho RAM thực với chức năng sàn có thể được chuyển sang RAM nguyên mà không làm giảm hiệu quả. Trên thực tế, sàn RAM + thực có thể giải quyết bất kỳ vấn đề nào trong PSPACE hoặc #P theo số bước đa thức .


5
Quan niệm sai lầm loại bỏ Gaussian là rất phổ biến. Có lẽ một phần của vấn đề là chúng ta thường làm việc trên các lĩnh vực hữu hạn và vì không có vấn đề gì ở đó, chúng ta quên mất.
slimton

"Sau khi chúng tôi thực hiện loại bỏ Gaussian nguyên, chúng tôi biết cách tìm ra giải pháp."
Albert Hendriks

40

Tôi vừa nhận được một huyền thoại khác, được đóng góp bởi câu trả lời của @ XXYYXX cho bài đăng này :

  • Một vấn đề X là -hard nếu có giảm thời gian đa thức (hoặc, không gian log) từ tất cả các vấn đề thành X.N PNPNP
  • Giả sử giả thuyết thời gian theo hàm mũ, 3-SAT không có thuật toán thời gian theo cấp số nhân. Ngoài ra, 3-SAT nằm trong .NP
  • Vì vậy, không -các vấn đề X có thuật toán thời gian theo cấp số nhân. Mặt khác, thuật toán thời gian theo cấp số mũ cho X + giảm thời gian đa thức = thuật toán thời gian theo cấp số mũ cho 3-SAT.NP

Nhưng chúng tôi có thuật toán thời gian theo cấp số nhân cho một số vấn đề NP-hard.


Tôi đã có cùng một ấn tượng.
Mohammad Al-Turkistany 7/12/2016

Vậy điều này cho chúng ta biết gì về Giả thuyết Thời gian theo cấp số nhân? Hay tôi đã bỏ lỡ một số lỗ hổng trong dòng lý luận này?
Mikhail Glushenkov

2
Có một lỗi ở điểm 3. Đó chính xác là những gì tôi đã hiểu lầm trong một thời gian dài :)
Hsien-Chih Chang

Tôi không chắc chắn nếu tôi không thể tìm thấy lỗi. Có phải vì , mức giảm không nhất thiết phải là đa thức nhưng nó có thể theo cấp số nhân theo thời gian, vì cả hai vấn đề sẽ xảy ra trong EXPTIME (do ETH?)PVIẾT SAI RỒIP
chazisop

43
Giảm thời gian đa thức có thể thay đổi kích thước đầu vào bằng một lượng đa thức. Vì vậy, nếu bạn giảm một thể hiện của Q có kích thước n xuống một thể hiện của P có kích thước n bình phương, thuật toán 2 đến gốc n cho P chỉ cung cấp cho bạn thuật toán 2 đến n cho Q.
Russell Impagliazzo

29

Một niềm tin sai lầm đã được phổ biến trong năm nay và được nói nhiều lần khi người ta cố gắng giải thích toàn bộ vấn đề , vì P được giải thích là hiệu quả:PVIẾT SAI RỒIPP

"Nếu , thì chúng ta có thể giải quyết rất nhiều vấn đề một cách hiệu quả. Nếu không, chúng ta không thể"P= =VIẾT SAI RỒIP

Nếu có thể được giải quyết trong O ( n g o o g o l p l e x ) thì P = N P . Tôi không nghĩ ai sẽ nghĩ đến việc chạy thuật toán này.3SATO(ngoogolplex)P=NP

Nếu , chúng ta vẫn có thể có thuật toán cho T S P chạy trong n log ( log n ) , nhỏ hơn n 5 cho n 2 32 . Hầu hết mọi người sẽ rất hạnh phúc khi có thể giải quyết T S P cho 4 tỷ thành phố nhanh chóng.PNPTSPnlog(logn)n5n232TSP


5
Bài đăng trên blog của Lipton rất hay: rjlipton.wordpress.com/2009/07/03/is-pnp-an-ill-posed-probols
Hsien-Chih Chang 之

6
Đối với mọi thuật toán thời gian đa thức mà bạn có, có một thuật toán theo cấp số nhân mà tôi muốn chạy hơn - Alan Perlis, thông qua Thư bị mất của Gôdel và P = NP .
Pål GD

24

Đây thực sự là một niềm tin sai lầm về toán học, nhưng thường xuất hiện trong bối cảnh TCS: Nếu các biến ngẫu nhiên Y là độc lập, thì điều kiện trên Z chúng vẫn độc lập. (sai ngay cả khi Z độc lập với cả XY. )XYZZXY


2
Bạn có một ví dụ đơn giản yêu thích về điều này bạn muốn giới thiệu, để giúp mọi người nhanh chóng nhận ra lý do tại sao nó sai?
DW

21
Nói Y là các bit ngẫu nhiên độc lập và thống nhất và Z = X + Y (mod 2). Sau đó, Z độc lập với X và độc lập với Y , nhưng dựa trên Z , biết X tiết lộ Y và ngược lại. XYZ=X+YZXYZXY
MCH

22

Điện toán phân tán = điện toán hiệu năng cao phân tán (cụm, lưới, đám mây, seti @ home, ...).

Thuật toán phân tán = thuật toán cho các hệ thống này.


Spoiler: Nếu điều này không giống với "niềm tin sai lầm", tôi khuyên bạn nên xem qua các hội nghị như PODC và DISC, và xem mọi người đang làm công việc gì khi họ nghiên cứu các khía cạnh lý thuyết của điện toán phân tán.

Một thiết lập vấn đề điển hình là như sau: Chúng ta có một chu kỳ với nút; các nút được gắn nhãn với các định danh duy nhất từ ​​bộ { 1 , 2 , . . . , poly ( n ) } ; các nút có tính xác định và chúng trao đổi thông điệp với nhau một cách đồng bộ. Cần bao nhiêu vòng giao tiếp đồng bộ (như một hàm của n ) để tìm một tập độc lập tối đa? Cần bao nhiêu vòng để tìm một tập độc lập với ít nhất n / 1000 nút? [Câu trả lời cho cả hai câu hỏi chính xác là Θ ( log *n{1,2,...,poly(n)}nn/1000 , được phát hiện vào năm 19862002008.]Θ(logn)

Đó là, mọi người thường nghiên cứu các vấn đề hoàn toàn tầm thường từ góc độ của các thuật toán tập trung và có rất ít điểm chung với bất kỳ loại siêu máy tính hoặc máy tính hiệu năng cao nào. Vấn đề chắc chắn là không tăng tốc tính toán tập trung bằng cách sử dụng nhiều bộ xử lý hơn hoặc bất cứ thứ gì tương tự.

Mục tiêu là xây dựng một lý thuyết phức tạp bằng cách phân loại các vấn đề đồ thị cơ bản theo độ phức tạp tính toán của chúng (ví dụ: cần bao nhiêu vòng đồng bộ; cần truyền bao nhiêu bit). Các vấn đề như tập hợp độc lập trong các chu kỳ có vẻ vô nghĩa, nhưng chúng đóng vai trò tương tự như 3-SAT trong điện toán tập trung: điểm khởi đầu rất hữu ích trong việc giảm. Đối với các ứng dụng trong thế giới thực cụ thể, sẽ có ý nghĩa hơn khi xem xét các thiết bị như bộ định tuyến và bộ chuyển mạch trong mạng truyền thông, thay vì máy tính trong lưới và cụm.

Niềm tin sai lầm này không hoàn toàn vô hại. Nó thực sự gây khó khăn cho việc bán các công việc liên quan đến lý thuyết về các thuật toán phân tán cho đối tượng TCS nói chung. Tôi đã nhận được báo cáo trọng tài vui nhộn từ các hội nghị TCS ...


1
Liên quan đến điện toán, tôi sẽ không nói đây không phải là một niềm tin sai lầm, mà là một thứ lỗi thời. Khác với bộ xử lý đa lõi, điện toán phân tán quy mô nhỏ là một trường hợp tầm thường của hiệu năng cao (từ những gì tôi biết ít nhất). Với lõi là "máy tính" nhưng trong một khoảng cách nhỏ như vậy, không có mạng giữa chúng, sẽ nảy sinh vấn đề mới. Tuy nhiên, tôi đồng ý rằng các thuật toán phân tán nên được sử dụng cho m> = 2 nút.
chazisop

Vì vậy, bạn chỉ nói rằng mọi người nhầm lẫn giữa tính toán song song với tính toán phân tán?
Sasho Nikolov

Tôi nghĩ rằng yêu cầu của bạn không áp dụng cho các nhà khoa học máy tính lý thuyết, mặc dù nó có thể áp dụng cho các nhà quảng cáo không có nền tảng lý thuyết. Như Sasho Nikolov đã chỉ ra, những người làm việc trong lĩnh vực này biết rất rõ sự khác biệt giữa điện toán song song và phân tán. Vấn đề phát sinh trong các cụm, lưới, đám mây, vv phụ thuộc hoàn toàn vào bối cảnh. Chẳng hạn, chúng tôi không giả định thất bại khi sử dụng cụm hoặc đám mây, nhưng chúng tôi làm cho lưới. Và như vậy.
Massimo Cafaro

Hơn nữa, đối với cộng đồng khoa học này, các thuật toán phân tán là thuật toán cho các vấn đề như những vấn đề thường thấy trong các cuốn sách của Nancy Lynch, Hagit Attiya và Jennifer Welch, và Gerard Tel để kể tên một số vấn đề. Và, như vậy, các thuật toán này được thiết kế cho một mô hình tính toán phân tán lý thuyết cụ thể và được phân tích theo yêu cầu về các tài nguyên được sử dụng (độ phức tạp thời gian, độ phức tạp của thông điệp, độ phức tạp của bit, số vòng, v.v.).
Massimo Cafaro

@MassimoCafaro: Tất nhiên những người làm việc trong lĩnh vực điện toán phân tán biết thế nào là điện toán phân tán. Tuy nhiên, kinh nghiệm của tôi là các nhà khoa học máy tính lý thuyết nói chung không biết máy tính phân tán là gì.
Jukka Suomela

20

Một sơ cấp, nhưng phổ biến khi chúng ta lần đầu tiên xử lý các ký hiệu tiệm cận. Xem xét "bằng chứng" sau đây cho mối quan hệ lặp lại T ( 1 ) = 1 :T(n)=2T(n/2)+O(nlogn)T(1)=1

Chúng tôi chứng minh bằng cảm ứng. Đối với trường hợp cơ sở, nó giữ cho . Giả sử mối quan hệ giữ cho tất cả các số nhỏ hơn n ,n=1n

T(n)=2T(n/2)+O(nlogn)=2O(n/2logn/2)+O(nlogn)=O(nlogn/2)+O(nlogn)=O(nlogn)

QED (phải không?)


16
Tôi đã thấy các sinh viên làm điều này. Đây là một trong những cạm bẫy của lạm dụng ký hiệu và viết chứ không phải là f ( x ) O ( g ( x ) ) . f(x)=O(g(x))f(x)O(g(x))
Aaron Roth

Tôi cũng đã thấy các nhà nghiên cứu về khoa học máy tính lý thuyết cũng thực hiện các biến thể của lỗi này;)
Jeremy

12

Cho đến gần đây, tôi nghĩ rằng mọi máy Turing nhiều băng chạy trong thời gian T ( n ) có thể được mô phỏng bằng máy Turing machinne lãng quên hai băng M o trong thời gian O ( T ( n ) log T ( n ) ) sau đây giác quan:MT(n)MoO(T(n)logT(n))

  • chuyển động của đầu chỉ phụ thuộc vào độ dài đầu vàoMo
  • đối với tất cả các đầu vào có cùng độ dài, dừng cùng một lúc (đó là Θ ( T ( n ) log T ( n ) ) ).MoΘ(T(n)logT(n))

(xem bài này của rjlipton chẳng hạn)

Vâng, dòng thứ hai không giữ nói chung, nếu . Chúng ta cần một chức năng đầy đủ thời gian constructible trật tự Θ ( T ( n ) log T ( n ) ) (xem này câu hỏi cho định nghĩa của (các chức năng đầy đủ) thời gian constructible) hoặc chúng ta cần phải cho phép M o để chạy cho thời gian vô hạn (chúng tôi cho phép M o chạy sau khi đạt đến trạng thái chấp nhận trongEXPTIMENEXPTIMEΘ(T(n)logT(n))MoMo thời gian). Vấn đề là, rằng cho thời gian constructible chung T : NN chúng tôi không thể "đo" Θ ( T ( n ) log T ( n ) ) bước trong thời gian O ( T ( n ) log T ( n ) ) trừ khi E X P - T I M EO(T(n)logT(n))T:NNΘ(T(n)logT(n))O(T(n)logT(n)) .EXPTIME=NEXPTIME

Bằng chứng của tuyên bố này rất giống với bằng chứng trong câu trả lời của Q1 ở đây , do đó chúng tôi sẽ chỉ đưa ra các ý tưởng chính.

Tham dự một vấn đề tùy ý , L { 0 , 1 } * . Sau đó tồn tại một k N , st L có thể được giải quyết bằng NDTM M trong 2 n k bước. Chúng ta có thể giả sử rằng ở mỗi bước M đi vào tối đa hai trạng thái khác nhau để đơn giản. Tiếp theo xác định hàm f ( n ) = { ( 8 n + 2LNEXPTIMEL{0,1}kNLM2nkM Nó có thể được chứng minh rằngflà thời gian construcible.

f(n)={(8n+2)2if (first logn+1k bits of bin(n))L8n+1else
f

Bây giờ giả sử rằng một số máy Turing không biết gì chạy trong thời gian . Sau đó g hoàn toàn có thể xây dựng được.g(n)=Θ(f(n)logf(n))g

Bây giờ thuật toán sau giải quyết :L

  • trên đầu vào , hãy n là số với biểu diễn nhị phân x 00 ... 0 ( | x | k - 1 số không). Nó sau đó x = ( đầu tiên k xnx000|x|k1.x=(first logn+1k bits of bin(n))
  • tính trong thời gian g ( n ) . Nếu g ( n ) là đủ lớn, sau đó x L , khác x L . (điều này chỉ hoạt động cho n đủ lớn . Làm thế nào lớn phụ thuộc vào g .)g(n)g(n)g(n)xLxLng

Thuật toán này chạy trong thời gian mũ và giải quyết . Kể từ khi L N E X P - T Tôi M E là tùy ý, E X P - T Tôi M E = N E X P - T Tôi M E .LLNEXPTIMEEXPTIME=NEXPTIME


11

Đây là hai xu của tôi:

Lớp phức tạp , không gian log ngẫu nhiên , được định nghĩa là tương tự của R P , nghĩa là, các vấn đề quyết định có thể được giải quyết bằng máy logspace không xác định M , trong đóRLRPM

  • cho một trường hợp dương tính, chấp nhận với xác suất ít nhất 1 / 2 ;M1/2
  • đối với trường hợp phủ định, từ chối với xác suất 1 .M1

Hơn nữa, máy luôn dừng lại.

Là định nghĩa đúng? (Không)


9

Đặt g là các hàm có thể xây dựng hoàn toàn theo thời gian (nghĩa là tồn tại DTM mà trên đầu vào 1 n thực hiện chính xác các bước f ( n ) (resp. G ( n ) )) và cho f ( n + 1 ) = o ( g ( g ( n ) ) .fg1nf(n)g(n)f(n+1)=o(g(n))

NTIME(f(n))NTIME(g(n))

NTIME(g(n))NTIME(f(n))f(n)g(n)NTIME(f(n))NTIME(g(n))f,gf(n+1)=o(g(n))f(n)g(n)

NTIME(f(n))NTIME(g(n))f,gf(n+1)=o(g(n))

f(n)={n+1n odd(n+1)3else
g(n)=f(n+1)2fgf(n+1)=o(g(n))LNTIME((n+1)3)NTIME((n+1)2){0,1}
L1={0x10x20xn;  x1x2xnL}.

L1NTIME(f(n))L1NTIME(g(n))LNTIME((n+1)2)L1NTIME(f(n))NTIME(g(n))


9

VIẾT SAI RỒIPBạnPVIẾT SAI RỒIPRPBạnPNPRUPNP=UPNPRPPromiseUP

UPLxLUSUSUPcoNPUS


"tài sản ngữ nghĩa trên tất cả các trường hợp" nghĩa là gì?
T ....

1
@ 777: thuộc tính ngữ nghĩa có nghĩa là: không thể được xác minh trực tiếp từ cấu trúc (còn gọi là cú pháp) của chính thuật toán TM /. Cụm từ này có ý nghĩa hơn nếu bạn tiếp tục nó qua dấu phẩy, nghĩa là: thuộc tính: "trên tất cả các trường hợp có nhiều nhất một nhân chứng"
Joshua Grochow

-2

μX{X=μ}


9
Đây chắc chắn là một niềm tin sai lầm phổ biến trong số các sinh viên khoa học máy tính lý thuyết, nhưng nó không quá phổ biến trong các nhà nghiên cứu khoa học máy tính lý thuyết .
Jeffε
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.