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


62

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

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

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

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

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

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


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

สำหรับ -node กราฟเป็น -edge คั่นเป็นส่วนหนึ่งของขอบของขนาดที่โหนดของสามารถพาร์ทิชันออกเป็นสองส่วนที่ไม่ใช่ที่อยู่ติดกันแต่ละประกอบด้วยที่มากที่สุดโหนด . เรามี "บทแทรก" ดังต่อไปนี้:G k S k G ∖ S 3 n / 4nGkSkG∖S3n/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?)P≠NP
— chazisop

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

29

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

"ถ้าจากนั้นเราสามารถแก้ปัญหาได้อย่างมีประสิทธิภาพหากไม่เราไม่สามารถ"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 PP≠NPTSPnlog⁡(log⁡n)n5n≤232TSP


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Θ(log∗⁡n)

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

เป้าหมายคือการสร้างทฤษฎีความซับซ้อนโดยการจำแนกปัญหากราฟพื้นฐานตามความซับซ้อนในการคำนวณของพวกเขา (เช่นจำเป็นต้องใช้รอบการซิงโครนัสกี่รอบ; ปัญหาเช่นชุดอิสระในรอบอาจดูเหมือนไม่มีจุดหมาย แต่พวกเขาทำหน้าที่คล้ายกับ 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(nlog⁡n)T(1)=1

n=1n

T(n)=2⋅T(n/2)+O(nlog⁡n)=2⋅O(n/2log⁡n/2)+O(nlog⁡n)=O(nlog⁡n/2)+O(nlog⁡n)=O(nlog⁡n)

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


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

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

12

MT(n)MoO(T(n)log⁡T(n))

  • Mo
  • MoΘ(T(n)log⁡T(n))

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

EXP−TIME≠NEXP−TIMEΘ(T(n)log⁡T(n))MoMoO(T(n)log⁡T(n))T:N→NΘ(T(n)log⁡T(n))O(T(n)log⁡T(n))EXP−TIME=NEXP−TIME

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

L∈NEXP−TIMEL⊆{0,1}∗k∈NLM2nkM

f(n)={(8n+2)2if (first ⌊⌊log⁡n⌋+1k⌋ bits of bin(n))∈L8n+1else
f

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

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

  • บนอินพุต , ให้เป็นตัวเลขที่มีการแทนค่าฐานสอง (ศูนย์) มันตามที่ขวา)n x 00 … 0 | x | k - 1 x = (ตัวแรก  ⌊ k √xnx00…0|x|k−1x=(first ⌊⌊log⁡n⌋+1k⌋ bits of bin(n))
  • g(n)g(n)g(n)x∈Lx∉Lng

LL∈NEXP−TIMEEXP−TIME=NEXP−TIME



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))L∈NTIME((n+1)3)−NTIME((n+1)2){0,1}
L1={0x10x2…0xn;  x1x2…xn∈L}.

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


9

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

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


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

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

-2

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


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