คำถามติดแท็ก time-complexity

ความซับซ้อนของเวลาของปัญหาการตัดสินใจหรือความสัมพันธ์ระหว่างคลาสความซับซ้อนที่ จำกัด เวลา (ใช้แท็ก [การวิเคราะห์อัลกอริธึม] สำหรับเวลาที่ใช้โดยอัลกอริทึมเฉพาะ)

10
หนึ่งกองสองคิว
พื้นหลัง หลายปีที่ผ่านมาเมื่อฉันเป็นนักศึกษาระดับปริญญาตรีเราได้รับการบ้านเกี่ยวกับการวิเคราะห์ค่าตัดจำหน่าย ฉันไม่สามารถแก้ไขปัญหาข้อใดข้อหนึ่งได้ ฉันถามมันด้วยทฤษฎีแต่ไม่มีผลลัพธ์ที่น่าพอใจ ฉันจำหลักสูตรที่ TA ยืนยันในสิ่งที่เขาไม่สามารถพิสูจน์ได้และบอกว่าเขาลืมหลักฐานและ ... [คุณรู้ว่า] วันนี้ฉันจำปัญหาได้ ฉันยังอยากรู้ดังนั้นที่นี่มัน ... คำถาม เป็นไปได้หรือไม่ที่จะนำสแต็กมาใช้โดยใช้สองคิวเพื่อให้การดำเนินการทั้งPUSH และPOPทำงานในเวลาที่ตัดจำหน่าย O (1) ? ถ้าใช่คุณจะบอกฉันได้อย่างไร หมายเหตุ: สถานการณ์นั้นค่อนข้างง่ายหากเราต้องการใช้คิวที่มีสองกอง (พร้อมการดำเนินการที่เกี่ยวข้องENQUEUE & DEQUEUE ) โปรดสังเกตความแตกต่าง PS: ปัญหาข้างต้นไม่ใช่การบ้าน การบ้านไม่ต้องการขอบเขตที่ต่ำกว่า เพียงการดำเนินการและการวิเคราะห์เวลาทำงาน

7
การใช้แลมบ์ดาแคลคูลัสเพื่อหาเวลาที่ซับซ้อน?
มีประโยชน์ใด ๆ ในการคำนวณความซับซ้อนของเวลาของอัลกอริทึมโดยใช้แลมบ์ดาแคลคูลัสหรือไม่? หรือมีระบบอื่นที่ออกแบบมาเพื่อการนี้? การอ้างอิงใด ๆ จะได้รับการชื่นชม

6
ความซับซ้อนของการหา Eigendecomposition ของเมทริกซ์
คำถามของฉันง่าย: ที่เลวร้ายที่สุดกรณีที่เวลาการทำงานของอัลกอริทึมที่รู้จักกันดีที่สุดสำหรับการคำนวณคืออะไรeigendecompositionของn×nn×nn \times nเมทริกซ์? eigendecomposition ลดการคูณเมทริกซ์หรือเป็นอัลกอริทึมที่รู้จักกันดีO(n3)O(n3)O(n^3) (ผ่านSVD ) ในกรณีที่เลวร้ายที่สุด? โปรดทราบว่าฉันขอการวิเคราะห์กรณีที่เลวร้ายที่สุด (เฉพาะในแง่ของnnn ) ไม่ใช่ขอบเขตที่มีค่าคงที่ที่ขึ้นกับปัญหาเช่นหมายเลขเงื่อนไข แก้ไข : ให้บางส่วนของคำตอบดังต่อไปนี้ให้ฉันปรับคำถาม: ฉันมีความสุขกับ -approximation การประมาณนั้นอาจเป็นแบบหลายแบบเพิ่มแบบเข้าทางหรือแบบใดก็ตามที่คุณต้องการ ฉันสนใจถ้ามีอัลกอริธึมที่รู้จักซึ่งพึ่งพาnได้ดีกว่าO ( p o l y ( 1 / ϵ ) n 3 ) ?ϵϵ\epsilonnnnO(poly(1/ϵ)n3)O(poly(1/ϵ)n3)O(\mathrm{poly}(1/\epsilon)n^3) แก้ไข 2 : ดูคำถามที่เกี่ยวข้องนี้บนเมทริกซ์สมมาตร

2
อัลกอริทึมสามารถทำนายความซับซ้อนของเวลาในระดับใดที่โปรแกรมอินพุตโดยพลการ
ลังเลปัญหากล่าวว่ามันเป็นไปไม่ได้ที่จะเขียนโปรแกรมที่สามารถตรวจสอบว่าหยุดโปรแกรมอื่นสำหรับโปรแกรมการป้อนข้อมูลเป็นไปได้ทั้งหมด อย่างไรก็ตามฉันสามารถเขียนโปรแกรมที่สามารถคำนวณเวลาทำงานของโปรแกรมที่ชอบได้อย่างแน่นอน for(i=0; i<N; i++) { x = 1; } และคืนค่าความซับซ้อนของเวลาเป็นโดยไม่ต้องเรียกใช้NNN สำหรับโปรแกรมอินพุตอื่น ๆ ทั้งหมดมันจะคืนค่าสถานะที่ระบุว่าไม่สามารถระบุเวลาที่ซับซ้อนได้ คำถามของฉันคือ: ต้องมีเงื่อนไขอะไรเช่นนี้เราสามารถกำหนดขั้นตอนวิธีความซับซ้อนของเวลาของโปรแกรมที่กำหนดได้ * หากมีการอ้างอิงที่เป็นที่ยอมรับหรือตรวจสอบบทความนี้ฉันจะขอบคุณลิงค์ไปในความคิดเห็น

6
เทคนิคขั้นสูงสำหรับการกำหนดขอบเขตความซับซ้อนที่ต่ำกว่า
คุณบางคนอาจติดตามคำถามนี้ซึ่งถูกปิดเนื่องจากไม่ได้อยู่ในระดับการวิจัย ดังนั้นฉันจึงแยกส่วนของคำถามที่อยู่ในระดับการวิจัย นอกเหนือจากเทคนิค "เรียบง่าย" เช่นการลดการเรียงลำดับหรือปัญหาที่สมบูรณ์แบบ EXPTIME เทคนิคใดที่ใช้ในการพิสูจน์ขอบเขตที่ต่ำกว่าสำหรับความซับซ้อนของเวลาในปัญหา โดยเฉพาะอย่างยิ่ง: อะไรคือ "ทันสมัย" เทคนิคที่ได้รับการพัฒนาในทศวรรษที่ผ่านมา? สามารถใช้เทคนิคจากพีชคณิตนามธรรม, ประเภททฤษฎีหรือสาขาอื่นที่มักจะ "บริสุทธิ์" คณิตศาสตร์นำมาใช้? (ตัวอย่างเช่นผมมักจะได้ยินพูดถึงของ "โครงสร้างพีชคณิต" ของการเรียงลำดับโดยไม่มีคำอธิบายใด ๆ จริงของสิ่งที่นี้หมายถึง.) อะไรคือผลลัพธ์ที่สำคัญ แต่ไม่ค่อยมีคนรู้จักสำหรับความซับซ้อนที่ต่ำกว่าขอบเขต

1
สามารถแยกไวยากรณ์ที่ชัดเจนทั้งหมดในเวลาเชิงเส้นได้หรือไม่?
เมื่อทำการวิเคราะห์ด้วย LR แบบ noncanonical LR ฉันคิดวิธีการแยกวิเคราะห์ (ด้วยตารางที่มีขนาดไม่ จำกัด ซึ่งทำให้มันค่อนข้างไม่สามารถปฏิบัติได้) สามารถแยกไวยากรณ์ที่ชัดเจนในเวลาและฉันสงสัยว่ามันเป็นไปได้ไหมที่จะทำ ที่ดีกว่า:O(n2)O(n2)O(n^2) สามารถแยกไวยากรณ์ที่ชัดเจนทั้งหมดในเวลาเชิงเส้นได้หรือไม่? ฉันค่อนข้างแน่ใจว่าฉันได้อ่านที่ไหนสักแห่งว่าเป็นกรณีนี้ แต่มันไม่ได้เกิดขึ้นเมื่อค้นหาอินเทอร์เน็ต คำถามเดียวกันถูกถามที่นี่แต่ไม่มีคำตอบเท่าที่ฉันรู้

3
การเพิ่มจำนวนเต็มแสดงโดยแยกตัวประกอบของพวกเขาเป็นเรื่องยากเหมือนแฟคตอริ่ง? คำขออ้างอิง
ฉันกำลังมองหาการอ้างอิงสำหรับผลลัพธ์ต่อไปนี้: การเพิ่มจำนวนเต็มสองจำนวนในการแทนแบบแฟคตอริ่งนั้นยากพอ ๆ กับการแยกจำนวนเต็มสองตัวในการแทนฐานสองแบบปกติ (ฉันค่อนข้างแน่ใจว่ามันอยู่ที่นั่นเพราะนี่คือสิ่งที่ฉันสงสัยในบางจุดและจากนั้นก็ตื่นเต้นเมื่อฉันเห็นมันในที่สุดในการพิมพ์) "การเพิ่มจำนวนเต็มสองจำนวนในการเป็นตัวแทนเอาเรื่อง" เป็นปัญหา: รับ factorizations สำคัญของตัวเลขสองและy ที่เอาท์พุทตัวประกอบที่สำคัญของx + y ที่ โปรดทราบว่าอัลกอริทึมไร้เดียงสาสำหรับปัญหานี้ใช้การแยกตัวประกอบในการแทนค่าไบนารี่มาตรฐานเป็นรูทีนย่อยxxxYyyx + yx+yx+y อัปเดต : ขอบคุณ Kaveh และ Sadeq สำหรับบทพิสูจน์ เห็นได้ชัดว่าหลักฐานเพิ่มเติม merrier แต่ฉันยังต้องการที่จะสนับสนุนความช่วยเหลือเพิ่มเติมในการหาการอ้างอิงซึ่งฉันบอกว่าฉันค่อนข้างแน่ใจอยู่ ฉันจำได้ว่าอ่านมันในกระดาษที่มีความคิดที่น่าสนใจและไม่ได้พูดถึงบ่อยๆ แต่ฉันจำไม่ได้ว่าความคิดอื่น ๆ นั้นเป็นอย่างไรหรือบทความทั่วไปเกี่ยวกับอะไร

1
การคูณแบบไบนารีและการบิดแบบพาริตี
คำถามนี้เกี่ยวกับความสัมพันธ์ระหว่างการคูณเลขฐานสองปกติกับการคูณพหุนาม mod 2 เพื่อสร้างคำถามที่เป็นรูปธรรมฉันอยากจะรู้ว่าถ้ามีทางออกที่ดีกว่าสำหรับคำถามจาก Knuth vol 2, ฉบับที่ 3, หน้า 420 กว่าที่ระบุไว้ในหนังสือ "การคูณ polynomials modulo 2 สามารถทำได้โดยใช้การคำนวณทางคณิตศาสตร์แบบธรรมดาบนคอมพิวเตอร์ไบนารีถ้าค่าสัมประสิทธิ์ถูกบรรจุลงในคำคอมพิวเตอร์" Knuth ให้การลดลงอย่างตรงไปตรงมาอย่างสมเหตุสมผลซึ่งจะขยายจำนวนบิตในอินพุตโดยปัจจัยการคูณล็อกในกรณีที่เลวร้ายที่สุด Log factor นี้จะลดลงได้ไหม?

2
รุ่นคูณของ 3-SUM
สิ่งที่ทราบเกี่ยวกับความซับซ้อนของเวลาของปัญหาต่อไปนี้ซึ่งเราเรียกว่า 3-MUL เมื่อกำหนดชุดของจำนวนเต็มจะมีองค์ประกอบที่หรือไม่n a , b , c ∈ S a b = cSSSnnna,b,c∈Sa,b,c∈Sa,b,c\in Sab=cab=cab=c ปัญหานี้คล้ายกับปัญหา 3-SUM ซึ่งถามว่ามีองค์ประกอบสามองค์ประกอบa,b,c∈Sa,b,c∈Sa,b,c\in Sซึ่งa+b+c=0a+b+c=0a+b+c=0 (หรือเทียบเท่าa+b=ca+b=ca+b=c ) 3 SUM คาดคะเนที่จะต้องใช้เวลาประมาณกำลังสองในnnnnมีการคาดเดาที่คล้ายกันสำหรับ 3-MUL หรือไม่? เป็นที่ทราบกันโดยเฉพาะว่า 3-MUL นั้นเป็น 3-SUM ยากหรือไม่ หมายเหตุความซับซ้อนของเวลาควรใช้ในการคำนวณแบบ "สมเหตุสมผล" ตัวอย่างเช่นเราอาจจะลดลงจาก 3 SUM ในชุดSSS 3-MUL ในตลาดหลักทรัพย์S′S′S'ที่ S′={2x∣x∈S}S′={2x∣x∈S}S'=\{2^x\mid x\in S\}\} แล้ววิธีการแก้ปัญหา 3 MUL เป็น2a⋅2b=2c2a⋅2b=2c2^a\cdot 2^b=2^cมีอยู่ถ้าหากว่าa+b=ca+b=ca+b=c C อย่างไรก็ตามการระเบิดแบบเลขชี้กำลังของเลขชี้กำลังนั้นแย่มากสำหรับรุ่นต่างๆเช่นรุ่น RAM …

1
ความซับซ้อนของเวลากับเลขชี้กำลังไม่ลงตัว?
มีปัญหาตามธรรมชาติในPที่เวลาทำงานที่รู้จักกันดีที่สุดคือรูปแบบซึ่งαเป็นค่าคงที่ไม่ลงตัวหรือไม่?O(nα)O(nα)O(n^\alpha)αα\alpha

1
มีหลักฐานว่าการเพิ่มเร็วกว่าการคูณหรือไม่?
ขอบเขตบนที่ดีที่สุดที่รู้จักกันในความซับซ้อนของเวลาของการคูณคือ Martin fürer's bound ซึ่งมากกว่าความซับซ้อนเชิงเส้นเวลาของการบวก เรามีหลักฐานว่าการเติมนั้นง่ายกว่าการคูณหรือเปล่าไม่มีบันทึกไม่มี2O ( บันทึก* * * *n)nlog⁡n2O(log∗⁡n)n\log n2^{O(\log^* n)}

3
เวลาเท่าไหร่ที่จะจำ palindromes ในพื้นที่ลอการิทึม?
เป็นที่รู้จักกันดีว่า palindromes สามารถจดจำได้ในเวลาเชิงเส้นบนเครื่องทัวริง -tape แต่ไม่ใช่ในเครื่องทัวริงเทปเดี่ยว (ในกรณีที่เวลาที่ต้องการกำลังสอง) อัลกอริธึมเชิงเส้นเวลาใช้สำเนาของอินพุตดังนั้นจึงใช้พื้นที่เชิงเส้น222 เราสามารถรู้จัก palindromes ในเวลาเชิงเส้นของเครื่องทัวริงมัลติทาสก์โดยใช้พื้นที่ลอการิทึมเท่านั้นหรือไม่? โดยทั่วไปแล้วการแลกเปลี่ยนเวลาว่างประเภทใดที่รู้จักกันดีในเรื่อง palindromes

2
รันไทม์ของอัลกอริทึมของ Grover
ความซับซ้อนของเวลา (ไม่ใช่ความซับซ้อนในการสืบค้น) ของอัลกอริทึมของ Grover คืออะไร ฉันเห็นได้ชัดว่ามันคือเนื่องจากมีΩ( √Ω ( บันทึก( N) N--√)Ω(เข้าสู่ระบบ⁡(ยังไม่มีข้อความ)ยังไม่มีข้อความ)\Omega(\log(N) \sqrt{N})การวนซ้ำและการวนซ้ำแต่ละครั้งต้องใช้การสะท้อนกลับซึ่งต้องใช้เวลาโดยใช้ชุดประตูมาตรฐานสากลใด ๆΩ ( N--√)Ω(ยังไม่มีข้อความ)\Omega(\sqrt{N})Ω ( บันทึก( N) )Ω(เข้าสู่ระบบ⁡(ยังไม่มีข้อความ))\Omega(\log(N)) ปัญหาคือผมไม่สามารถหาได้อ้างอิงเดียวที่บอกว่าเวลาซับซ้อนของอัลกอริทึมของโกรเวอร์เป็น{N}) Wikipedia และหน้าเว็บอื่น ๆ พูดถึงความซับซ้อนของเวลาเอกสารของโกรเวอร์อ้างว่า "ขั้นตอน"Ω ( บันทึก( N) N--√)Ω(เข้าสู่ระบบ⁡(ยังไม่มีข้อความ)ยังไม่มีข้อความ)\Omega(\log(N) \sqrt{N})O ( N--√)O(ยังไม่มีข้อความ)O(\sqrt{N})O ( N--√)O(ยังไม่มีข้อความ)O(\sqrt{N}) ฉันพลาดอะไรไปรึเปล่า? บางทีคนอาจกำหนดการสะท้อนเพื่อใช้เวลาหน่วย แต่นั่นก็ไม่สมเหตุสมผลสำหรับฉันเพราะถ้าเราสามารถเล่นเกมที่ให้หน่วยตามอำเภอใจใช้เวลาหน่วยแล้วก็จะไม่มีความแตกต่างระหว่างความซับซ้อนของแบบสอบถามและความซับซ้อนของเวลา

5
เพราะเหตุใดฐานข้อมูลเชิงสัมพันธ์จึงใช้งานได้ทั้งหมดเนื่องจากความซับซ้อนเชิงทฤษฎีของการค้นหาคำตอบ (ในขนาดของแบบสอบถาม)
เป็นที่ทราบกันดีอยู่แล้วว่าการค้นหาคำตอบของแบบสอบถามผ่านฐานข้อมูลเชิงสัมพันธ์ต้องใช้เวลาและไม่สามารถกำจัดเลขชี้กำลัง.QQQDDD| D || Q ||D||Q||D|^{|Q|}| Q ||Q||Q| เนื่องจากอาจมีขนาดใหญ่มากเราจึงสงสัยว่าทำไมฐานข้อมูลจึงใช้งานได้จริงDDD มันเป็นเพียงแค่คำถามทั่วไปที่ไม่ได้มีขนาดใหญ่เลยในแอปพลิเคชันในโลกแห่งความเป็นจริง? (จากนั้นเป็นเรื่องที่น่าสนใจที่จะรู้ว่าขนาดของการสืบค้นที่ปกติไปยังระบบฐานข้อมูลเชิงสัมพันธ์คืออะไรและขนาด "สูงสุด" ของการสืบค้นที่คาดว่าจะตอบได้อย่างมีประสิทธิภาพโดยระบบฐานข้อมูลในทางปฏิบัติคืออะไร) หมายเหตุเกี่ยวกับเลขยกกำลังไม่ `ถอดออกได้ '| Q ||Q||Q| เพื่อแสดงว่าเลขชี้กำลังไม่สามารถถอดออกได้เราสามารถใช้แบบสอบถามเพื่อสอบถามว่ามีกลุ่มขนาดnอยู่ในกราฟที่กำหนดโดยฐานข้อมูลหรือไม่ ในการตรวจสอบว่ากราฟมีn -clique หรือไม่นั้นเป็นปัญหาที่ทำให้ NP สมบูรณ์ นอกจากนี้ยังไม่ได้รับการแก้ไขพารามิเตอร์ซูฮกกับพารามิเตอร์n รายละเอียดสามารถพบได้ในเช่น Libkin, L: องค์ประกอบของทฤษฎีแบบ จำกัด Springer (2004) หรือ Papadimitriou, CH, Yannakakis, M .: ความซับซ้อนของการสืบค้นฐานข้อมูล เจคอมพิวเตอร์ Syst วิทย์ 58 (3), 407–427 (1999)| Q ||Q||Q|nnnnnnnnn

4
คำจำกัดความ "ถูกต้อง" ของขอบเขตบนและล่างคืออะไร?
ให้เป็นกรณีที่เลวร้ายที่สุดที่ใช้เวลาที่มีปัญหากับการป้อนข้อมูลของขนาดnขอให้เราทำให้ปัญหาแปลกสักหน่อยโดยการแก้ไขสำหรับแต่สำหรับ 1n f ( n ) = n 2 n = 2 k f ( n ) = n n = 2 k + 1ฉ( n )ฉ(n)f(n)nnnฉ( n ) = n2ฉ(n)=n2f(n) = n^2n = 2 kn=2kn=2kฉ( n ) = nฉ(n)=nf(n) = nn = 2 k + 1n=2k+1n=2k+1 ดังนั้นขอบล่างของปัญหาคืออะไร? วิธีที่ผมเข้าใจมันเป็นเพียงที่ต่ำกว่าผูกพันของ(n) แต่เรารู้ว่าแสดงว่ามีค่าคงที่ …

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