ความเชื่อผิด ๆ ทั่วไปทางวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี


62

แก้ไข AT 10/12/08:

ฉันจะพยายามแก้ไขคำถามเพื่อให้ผู้คนสนใจแบ่งปันความคิดเห็นมากขึ้น เราต้องการความช่วยเหลือของคุณ!

โพสต์นี้เป็นแรงบันดาลใจโดยหนึ่งในโม: ตัวอย่างของความเชื่อผิด ๆ ที่พบบ่อยในวิชาคณิตศาสตร์ รายการใหญ่ ๆ บางครั้งสร้างคำตอบจำนวนมากซึ่งเป็นคุณสมบัติที่ควบคุมได้ยาก แต่หลังจากความสำเร็จของการโพสต์ที่เกี่ยวข้องใน MO ฉันเชื่อว่ามันจะเป็นประโยชน์ในการแสดงรายการความเชื่อที่ผิด ๆ ทั่วไปใน TCS

ถึงกระนั้นเนื่องจากเว็บไซต์ถูกออกแบบมาเพื่อตอบคำถามระดับการวิจัยตัวอย่างเช่นหมายถึงเวลาที่ไม่ใช่พหุนามไม่ควรอยู่ในรายการ ในขณะเดียวกันเราต้องการตัวอย่างที่อาจไม่ยาก แต่หากไม่มีรายละเอียดก็ดูสมเหตุสมผลเช่นกัน เราต้องการให้ตัวอย่างเป็นทางการศึกษาและมักจะปรากฏขึ้นเมื่อเรียนวิชานี้ในครั้งแรกNP

ตัวอย่างของความเชื่อที่ผิด ๆ ทั่วไปในวิชาวิทยาการคอมพิวเตอร์เชิงทฤษฎีมีอะไรบ้างที่ปรากฏแก่ผู้ที่กำลังศึกษาอยู่ในพื้นที่นี้

จะแม่นยำเราต้องการตัวอย่างแตกต่างจากผลที่น่าแปลกใจและผล counterintuitiveใน TCS; ผลลัพธ์ประเภทนี้ทำให้ผู้คนยากที่จะเชื่อ แต่เป็นจริง ที่นี่เรากำลังขอตัวอย่างที่น่าแปลกใจที่ผู้คนอาจคิดว่ามันเป็นความจริงในแวบแรก แต่หลังจากที่คิดลึกลงไปว่ามีความผิดเกิดขึ้นภายใน


เป็นตัวอย่างของคำตอบที่ถูกต้องในรายการสิ่งนี้มาจากเขตข้อมูลของอัลกอริธึมและทฤษฎีกราฟ:

สำหรับ -node กราฟเป็น -edge คั่นเป็นส่วนหนึ่งของขอบของขนาดที่โหนดของสามารถพาร์ทิชันออกเป็นสองส่วนที่ไม่ใช่ที่อยู่ติดกันแต่ละประกอบด้วยที่มากที่สุดโหนด . เรามี "บทแทรก" ดังต่อไปนี้:G k S k G S 3 n / 4nGkSkGS3n/4

ต้นไม้มีตัวคั่นแบบ 1 ขอบ

ขวา?


โพสต์ถูกตั้งค่าสถานะเพื่อขอเป็น CW
เซียน - จือช้าง張顯之

คำตอบ:


59

นี่เป็นเรื่องธรรมดาสำหรับเรขาคณิตการคำนวณ แต่มีถิ่นอื่น: อัลกอริธึมสำหรับแรมจริงสามารถถ่ายโอนไปยัง RAM จำนวนเต็ม (สำหรับการ จำกัด จำนวนเต็มของปัญหา) โดยไม่สูญเสียประสิทธิภาพ ตัวอย่างที่เป็นที่ยอมรับคือการอ้าง“กำจัดแบบเกาส์ทำงานในเวลา.” ในความเป็นจริงคำสั่งกำจัดประมาทสามารถผลิตจำนวนเต็มกับบิตหลายชี้แจงO(n3)

ยิ่งแย่ไปกว่านั้น แต่ยังเป็นเรื่องธรรมดาที่น่าเสียดาย: อัลกอริธึมสำหรับแรมจริงที่มีฟังก์ชั่นตั้งพื้นสามารถถ่ายโอนไปยัง RAM จำนวนเต็มได้โดยไม่สูญเสียประสิทธิภาพ ในความเป็นจริงพื้นจริง-RAM + สามารถแก้ปัญหาใด ๆ ใน PSPACE หรือ #P ในจำนวนพหุนามของขั้นตอน


5
ความเข้าใจผิดในการกำจัดแบบเกาส์เซียนนั้นกว้างมาก บางทีส่วนหนึ่งของปัญหาคือเรามักจะทำงานในฟิลด์ จำกัด และเนื่องจากไม่มีปัญหาเราจึงลืม
slimton

"หลังจากที่เราทำการกำจัด Gaussian จำนวนเต็มเราก็รู้วิธีหาทางออก"
Albert Hendriks

40

ฉันเพิ่งถูกจับตำนานอื่นซึ่งมีส่วนร่วมโดย @ XXYYXX คำตอบของการโพสต์นี้ :

  • ปัญหา X คือยากถ้ามีการลดเวลาพหุนาม (หรือ, logspace) จากปัญหาถึง XN PNPNP
  • สมมติว่าสมมติฐานเวลาเอ็กซ์โพเนนเชียล 3-SAT ไม่มีอัลกอริธึมเวลาเอ็กซ์โพเนนเชียลย่อย นอกจากนี้ 3 SAT อยู่ใน{}NP
  • ดังนั้นปัญหาเกี่ยวกับ X จึงมีอัลกอริธึมย่อยแบบเอ็กซ์โปเนนเชียล มิฉะนั้นอัลกอริธึมเวลาแบบเอ็กซ์โพเนนเชียลสำหรับ X + a การลดเวลาแบบพหุนาม = อัลกอริธึมเวลาแบบเอ็กซ์โปเนนเชียลย่อยสำหรับ 3-SATNP

แต่เรามีอัลกอริธึมย่อยแบบเอ็กซ์โปเนนเชียลสำหรับปัญหา NP-hard บางอย่าง


ฉันมีความประทับใจแบบเดียวกัน
Mohammad Al-Turkistany

แล้วสิ่งนี้บอกอะไรเราเกี่ยวกับสมมติฐานเวลาเอ็กซ์โพเนนเชียล หรือฉันพลาดข้อบกพร่องบางอย่างในสายการให้เหตุผลนี้หรือไม่?
Mikhail Glushenkov

2
มีข้อผิดพลาดในจุดที่ 3 นั่นคือสิ่งที่ฉันเข้าใจผิดมาเป็นเวลานาน :)
46975 Hsien-Chih Chang 張顯之

ฉันไม่แน่ใจว่าฉันหาข้อผิดพลาดไม่ได้หรือไม่ นั่นเป็นเพราะการลดลงนั้นไม่จำเป็นต้องเป็นพหุนาม แต่สามารถอธิบายได้ในเวลาเนื่องจากปัญหาทั้งสองจะอยู่ใน EXPTIME (เนื่องจาก ETH?)PNP
chazisop

43
การลดเวลาแบบพหุนามสามารถเปลี่ยนขนาดอินพุตได้ด้วยจำนวนพหุนาม ดังนั้นถ้าคุณลดอินสแตนซ์ของ Q ของขนาด n เป็นอินสแตนซ์ของ P ที่มีขนาด n กำลังสองอัลกอริทึมรูท n สำหรับ P จะให้อัลกอริทึม 2 ถึง n สำหรับ Q
Russell Impagliazzo

29

ความเชื่อผิด ๆ ที่ได้รับความนิยมในปีนี้และมีการบอกหลายครั้งเมื่อมีคนพยายามอธิบายปัญหาทั้งหมดของเนื่องจากได้รับการอธิบายอย่างมีประสิทธิภาพ:PPNPP

"ถ้าจากนั้นเราสามารถแก้ปัญหาได้อย่างมีประสิทธิภาพหากไม่เราไม่สามารถ"P=NP

หากจะสามารถแก้ไขได้ในแล้วPฉันไม่คิดว่าใครจะนึกถึงการใช้อัลกอริทึมนี้O ( n g o o g o l p l e x ) P = N P3SATO(ngoogolplex)P=NP

ถ้าเรายังสามารถมีอัลกอริทึมสำหรับที่ทำงานในซึ่งมีขนาดเล็กกว่าสำหรับ{32} คนส่วนใหญ่จะมีความสุขมากกว่าที่จะสามารถแก้ปัญหาสำหรับ 4 พันล้านเมืองที่รวดเร็วT S P n บันทึก( ล็อกn ) n 5 n 2 32 T S PPNPTSPnlog(logn)n5n232TSP


5
โพสต์บล็อกของลิปตันนั้นดี: rjlipton.wordpress.com/2009/07/03/is-pnp-an-ill-posed-problem
Hsien-Chih Chang 張顯之

6
“ทุก ๆ ขั้นตอนวิธีการพหุนามเวลาที่คุณมีและมีขั้นตอนวิธีการชี้แจงว่าผมค่อนข้างจะทำงาน” - อลันปะลิสผ่านทางจดหมายที่หายไปของGödelและ P
Pål GD

24

นี่เป็นความเชื่อที่ผิดในคณิตศาสตร์ แต่เกิดขึ้นบ่อยครั้งในบริบทของ TCS: หากตัวแปรสุ่มและเป็นอิสระจากนั้นเงื่อนไขบนจะเป็นอิสระ (false แม้ว่าจะไม่ขึ้นกับทั้งและ )Y Z Z X YXYZZXY


2
คุณมีตัวอย่างง่ายๆที่คุณชื่นชอบเกี่ยวกับเรื่องนี้ที่คุณอยากจะแนะนำหรือไม่เพื่อช่วยให้ผู้คนรับรู้ได้อย่างรวดเร็วว่าทำไมมันถึงเป็นเท็จ?
DW

21
พูดว่าและเป็นบิตที่เป็นอิสระและสุ่มอย่างสม่ำเสมอและ (mod 2) จากนั้นเป็นอิสระจากและเป็นอิสระจากแต่เงื่อนไขในรู้เปิดเผยและในทางกลับกัน Y Z = X + Y Z X Y Z X YXYZ=X+YZXYZXY
MCH

22

การคำนวณแบบกระจาย = การคำนวณที่มีประสิทธิภาพสูงแบบกระจาย (กลุ่มกริด, เมฆ, seti @ home, ... )

อัลกอริทึมแบบกระจาย = อัลกอริทึมสำหรับระบบเหล่านี้


ผู้สปอยเลอร์:ถ้าสิ่งนี้ฟังดูไม่เหมือน "ความเชื่อที่ผิด" ฉันขอแนะนำให้คุณดูการประชุมเช่น PODC และ DISC และดูว่าคนงานประเภทใดกำลังทำจริง ๆ เมื่อพวกเขาศึกษาแง่มุมทางทฤษฎีของการคำนวณแบบกระจาย

การตั้งค่าปัญหาโดยทั่วไปมีดังต่อไปนี้: เรามีวงจรที่มี nodes; โหนดจะมีป้ายกำกับพร้อมตัวระบุที่ไม่ซ้ำกันจากชุด ; โหนดจะถูกกำหนดและพวกเขาแลกเปลี่ยนข้อความกับแต่ละอื่น ๆ ในลักษณะที่ซิงโคร ต้องการการสื่อสารแบบซิงโครนัสกี่รอบ (เป็นฟังก์ชันของ ) เพื่อค้นหาชุดอิสระสูงสุด จำเป็นต้องมีกี่รอบเพื่อค้นหาชุดอิสระที่มีอย่างน้อยโหนด [คำตอบของคำถามทั้งสองนี้คือค้นพบในปี 2529-2551]{ 1 , 2 , . . , โพลี( n ) } n n / 1000 Θ ( บันทึก n )n{1,2,...,poly(n)}nn/1000Θ(logn)

นั่นคือคนมักจะศึกษาปัญหาที่ไม่สำคัญจากมุมมองของอัลกอริธึมส่วนกลางและมีความเหมือนกันเล็กน้อยกับการประมวลผลแบบซูเปอร์คอมพิวเตอร์หรือประสิทธิภาพสูง ประเด็นก็คือไม่ได้เร่งการคำนวณแบบรวมศูนย์โดยการใช้โปรเซสเซอร์เพิ่มเติมหรืออะไรทำนองนั้น

เป้าหมายคือการสร้างทฤษฎีความซับซ้อนโดยการจำแนกปัญหากราฟพื้นฐานตามความซับซ้อนในการคำนวณของพวกเขา (เช่นจำเป็นต้องใช้รอบการซิงโครนัสกี่รอบ; ปัญหาเช่นชุดอิสระในรอบอาจดูเหมือนไม่มีจุดหมาย แต่พวกเขาทำหน้าที่คล้ายกับ 3-SAT ในการคำนวณแบบรวมศูนย์: เป็นจุดเริ่มต้นที่มีประโยชน์มากในการลด สำหรับแอพพลิเคชั่นที่เป็นรูปธรรมในโลกแห่งความเป็นจริงมันสมเหตุสมผลมากกว่าที่จะดูอุปกรณ์เช่นเราเตอร์และสวิตช์ในเครือข่ายการสื่อสารแทนที่จะเป็นคอมพิวเตอร์ในระบบกริดและคลัสเตอร์

ความเชื่อที่ผิด ๆ นี้ไม่เป็นอันตรายอย่างสิ้นเชิง อันที่จริงแล้วมันค่อนข้างยากที่จะขายงานที่เกี่ยวข้องกับทฤษฎีของอัลกอริทึมแบบกระจายให้กับผู้ชม TCS ทั่วไป ฉันได้รับรายงานผู้ตัดสินเฮฮาจากการประชุม TCS ...


1
เกี่ยวกับคอมพิวเตอร์ฉันจะไม่พูดว่านี่ไม่ใช่ความเชื่อที่ผิด แต่เป็นสิ่งที่ล้าสมัย นอกเหนือจากตัวประมวลผลแบบมัลติคอร์การคำนวณแบบกระจายขนาดเล็กเป็นกรณีเล็กน้อยของประสิทธิภาพสูงหนึ่ง (จากสิ่งที่ฉันรู้อย่างน้อย) เมื่อแกนกลางเป็น "คอมพิวเตอร์" แต่ในระยะทางสั้น ๆ โดยไม่มีเครือข่ายระหว่างกันปัญหาใหม่ ๆ ก็จะเกิดขึ้น ฉันเห็นด้วยอย่างไรก็ตามควรใช้อัลกอริทึมแบบกระจายสำหรับโหนด m> = 2
chazisop

คุณแค่บอกว่าคนสับสนในการคำนวณแบบขนานกับการคำนวณแบบกระจาย?
Sasho Nikolov

ฉันคิดว่าการอ้างสิทธิ์ของคุณไม่ได้ใช้กับนักวิทยาศาสตร์คอมพิวเตอร์ทางทฤษฎีถึงแม้ว่ามันอาจนำไปใช้กับนัก pratictioners ที่ไม่มีพื้นฐานทางทฤษฎี ตามที่ Sasho Nikolov ชี้ให้เห็นผู้คนที่ทำงานในสาขานี้รู้ดีถึงความแตกต่างระหว่างการคำนวณแบบขนานและแบบกระจาย ปัญหาที่เกิดขึ้นในกลุ่มกริดเมฆ ฯลฯ ขึ้นอยู่กับบริบทอย่างเคร่งครัด ตัวอย่างเช่นเราไม่ถือว่าความล้มเหลวเมื่อใช้คลัสเตอร์หรือคลาวด์ แต่เราทำเพื่อกริด และอื่น ๆ
Massimo Cafaro

นอกจากนี้สำหรับชุมชนวิทยาศาสตร์นี้อัลกอริทึมแบบกระจายเป็นอัลกอริธึมสำหรับปัญหาเช่นที่พบบ่อยในหนังสือของ Nancy Lynch, Hagit Attiya และ Jennifer Welch และ Gerard Tel เพื่อชื่อไม่กี่ และเช่นนี้อัลกอริธึมเหล่านี้ได้รับการออกแบบสำหรับแบบจำลองการคำนวณเชิงทฤษฎีที่เฉพาะเจาะจงและวิเคราะห์ตามความต้องการในแง่ของทรัพยากรที่ใช้ (ความซับซ้อนของเวลาความซับซ้อนของข้อความความซับซ้อนของบิตจำนวนรอบ ฯลฯ )
Massimo Cafaro

@ MassimoCafaro: แน่นอนว่าคนที่ทำงานในสาขาการคำนวณแบบกระจายรู้ว่าการคำนวณแบบกระจายคืออะไร อย่างไรก็ตามประสบการณ์ของฉันคือนักวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎีโดยทั่วไปไม่ทราบว่าคอมพิวเตอร์แบบกระจายคืออะไร
Jukka Suomela

20

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

n=1n

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

QED (มันคืออะไร)


16
f(x)=O(g(x))f(x)O(g(x))

ฉันได้เห็นนักวิจัยในสาขาวิทยาการคอมพิวเตอร์เชิงทฤษฎีทำสิ่งที่แตกต่างของข้อผิดพลาดนี้ด้วยเช่นกัน)
Jeremy

12

MT(n)MoO(T(n)logT(n))

  • Mo
  • MoΘ(T(n)logT(n))

(ดูโพสต์ของ rjlipton นี้เป็นตัวอย่าง)

EXPTIMENEXPTIMEΘ(T(n)logT(n))MoMoO(T(n)logT(n))T:NNΘ(T(n)logT(n))O(T(n)logT(n))EXPTIME=NEXPTIME

หลักฐานการอ้างสิทธิ์นี้คล้ายคลึงกับหลักฐานในคำตอบของไตรมาสที่ 1 ที่นี่ดังนั้นเราจะให้ความคิดหลักเท่านั้น

LNEXPTIMEL{0,1}kNLM2nkM

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

ตอนนี้สมมติว่าบางเครื่องทัวริงลบเลือนทำงานในเวลา(n)) จากนั้นสามารถสร้างเวลาได้อย่างสมบูรณ์gg(n)=Θ(f(n)logf(n))g

ตอนนี้อัลกอริทึมต่อไปนี้แก้ :L

  • บนอินพุต , ให้เป็นตัวเลขที่มีการแทนค่าฐานสอง (ศูนย์) มันตามที่ขวา)n x 00 0 | x | k - 1 x = (ตัวแรก k xnx000|x|k1x=(first logn+1k bits of bin(n))
  • g(n)g(n)g(n)xLxLng

LLNEXPTIMEEXPTIME=NEXPTIME



9

fg1nf(n)g(n)f(n+1)=o(g(n))

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

ดีลำดับชั้นจริงให้เพียงntime เราจะต้องเช่นสำหรับ(n)) สำหรับฟังก์ชั่นเช่นนั้น ,เป็นเรื่องธรรมดามาก แต่การพูดอย่างเคร่งครัดลำดับชั้นของเวลา nondeterministic มีการกล่าวถึงหลายครั้งอย่างเผินๆ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)

หากต้องการแสดงให้เห็นว่าไม่ได้ถือครองไว้สำหรับเต็มเวลาที่สร้างได้ทั้งหมด st , กำหนด และ 2 มันเป็นเรื่องง่ายที่จะเห็นว่าและอย่างเต็มที่เวลา constructible และ(n)) จากลำดับชั้นเวลา nondeterministic เรารู้ว่ามีบางภาษามากกว่า\} กำหนด 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}.

มันตามที่(n)) มันง่ายที่จะเห็นว่าจากตามหลังซึ่งไม่เป็นความจริง ดังนั้น(n))L1NTIME(f(n))L1NTIME(g(n))LNTIME((n+1)2)L1NTIME(f(n))NTIME(g(n))


9

ผมเคยได้ยินบ่อยระบุว่าองอาจ-Vazirani กล่าวว่าสุ่มลดหรือว่า , หรือว่า{UP} โดยเฉพาะอย่างยิ่งนี้จะบ่งบอกว่าถ้าองอาจ-Vazirani อาจจะ derandomized แล้ว{UP} แต่ในความเป็นจริงองอาจ-Vazirani กล่าวว่า{PromiseUP}}NPUPNPRPUPNPRUPNP=UPNPRPPromiseUP

ความเชื่อที่ผิดที่เกี่ยวข้องอย่างใกล้ชิด:เป็นคลาสของภาษามีตัวตรวจสอบเวลาแบบโพลี nondeterministic เช่นนั้น iff มีพยานพิเศษ การแก้ไขคือผู้ตรวจสอบจะต้องตอบสนองความหมายของคุณสมบัติความหมายว่าในทุกกรณีมีพยานอย่างน้อยหนึ่งคน คำนิยามดังกล่าวข้างต้นโดยไม่มีการแก้ไขที่เป็นความหมายของ{สหรัฐฯ} แต่เป็นมากแตกต่างจาก : ยกตัวอย่างเช่น{สหรัฐฯ}UPLxLUSUSUPcoNPUS


'คุณสมบัติเชิงความหมายในทุกกรณี' หมายถึงอะไร
T ....

1
@ 777: คุณสมบัติความหมายหมายถึง: ไม่สามารถตรวจสอบได้โดยตรงจากโครงสร้าง (aka ไวยากรณ์) ของ TM / อัลกอริทึมเอง วลีนี้เหมาะสมกว่าหากคุณดำเนินการต่อผ่านเครื่องหมายจุลภาคเช่น: คุณสมบัติที่: "ในทุกกรณีที่มีพยานไม่เกินหนึ่งคน"
Joshua Grochow

-2

หากเป็นค่าที่คาดหวังของเราคาดหวังว่าจะเกิดขึ้นจริงμ{ X = μ }X{X=μ}


9
นี้แน่นอนเป็นความเชื่อที่ผิดร่วมกันระหว่างนักศึกษาของวิชาวิทยาการคอมพิวเตอร์ แต่ก็ไม่ธรรมดาในหมู่วิชาวิทยาการคอมพิวเตอร์นักวิจัย
Jeffε
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.