คำถามติดแท็ก ds.algorithms

คำถามเกี่ยวกับคำแนะนำที่กำหนดไว้อย่างดีสำหรับการทำงานให้สำเร็จและการวิเคราะห์ที่เกี่ยวข้องในแง่ของเวลา / หน่วยความจำ / ฯลฯ

1
โครงสร้างทั่วไปส่วนใหญ่ที่การตรวจสอบผลิตภัณฑ์เมทริกซ์สามารถทำได้ในเวลา
ในปี 1979 Freivaldsแสดงให้เห็นว่าการตรวจสอบผลิตภัณฑ์แมทริกซ์ที่สนามใด ๆ ที่สามารถทำได้ในการสุ่มเวลา เพิ่มเติมอย่างเป็นทางการให้สามเมทริกซ์ A, B และ C กับรายการจากสนาม F, ปัญหาของการตรวจสอบว่า AB = C มีอัลกอริทึมเวลาO ( n 2 )แบบสุ่มO(n2)O(n2)O(n^2)O(n2)O(n2)O(n^2) สิ่งนี้น่าสนใจเพราะอัลกอริทึมที่รู้จักกันเร็วที่สุดสำหรับเมทริกซ์การคูณนั้นช้ากว่านี้ดังนั้นการตรวจสอบว่า AB = C นั้นเร็วกว่าการคำนวณหรือไม่ ฉันต้องการที่จะรู้ว่าอะไรคือโครงสร้างพีชคณิตทั่วไปที่สุดที่การตรวจสอบผลิตภัณฑ์เมทริกซ์ยังคงมีอัลกอริทึมเวลา (สุ่ม) เนื่องจากอัลกอริทึมดั้งเดิมทำงานได้กับทุกฟิลด์ฉันจึงเดาได้ว่ามันทำงานได้ดีบนโดเมนรวมทั้งหมดO(n2)O(n2)O(n^2) คำตอบที่ดีที่สุดที่ฉันสามารถหาได้สำหรับคำถามนี้คือSubcubic Equivalences ระหว่าง Path, Matrix และ Triangle Problemsโดยที่พวกเขาพูดว่า "การตรวจสอบผลิตภัณฑ์เมทริกซ์บนวงแหวนสามารถทำได้ในเวลาสุ่ม [BK95]" ([BK95]: M. Blum และ S. Kannan การออกแบบโปรแกรมที่ตรวจสอบงานของพวกเขา J. ACM, 42 (1): …

2
ค้นหาลูกบาศก์ที่ใหญ่ที่สุดที่มีอยู่ในสหภาพของลูกบาศก์
ฉันมีลูกบาศก์จำนวนมากในพื้นที่ 3 มิติแต่ละจุดมีจุดเริ่มต้นที่ (x, y, z) และมีขนาด (Lx, Ly, Lz) ฉันสงสัยว่าจะหาลูกบาศก์ที่ใหญ่ที่สุดในพื้นที่ 3 มิตินี้ที่อยู่ในสหภาพของลูกบาศก์ได้อย่างไร มีอัลกอริทึมที่มีประสิทธิภาพสำหรับสิ่งนี้หรือไม่? เช่นถ้าฉันมีลูกบาศก์ต่อไปนี้: หนึ่งลูกบาศก์เริ่มต้นที่ (0,0,0) ขนาด (10,10,10) ทรงลูกบาศก์ที่ (10,0,0) ที่มีขนาด (12,13,15) รูปทรงลูกบาศก์ที่ (0,10,0) ขนาด (10,10,10) รูปทรงลูกบาศก์ที่ (0,0,10) ขนาด (10,10,10) และ ทรงลูกบาศก์ที่ (10,10,10) ที่มีขนาด (9,9,9) จากนั้นก้อนที่ใหญ่ที่สุดที่อยู่ในสหภาพของลูกบาศก์เหล่านี้จะเป็นลูกบาศก์เริ่มต้นที่ (0,0,0) ที่มีขนาด (19,19,19) คำถามทั่วไปมากกว่านี้: รับชุดของกล่องใน ให้หาไฮเปอร์คิวบ์ที่ใหญ่ที่สุดที่อยู่ในกล่องสี่เหลี่ยมR dnnnRdRd\mathbb{R}^d

2
การแก้เขาวงกตจำนวนกระโดด
เด็กอายุ 8 ปีของฉันเบื่อหน่ายกับการสร้างเขาวงกตแบบดั้งเดิมและได้นำไปสร้างสายพันธุ์ที่มีลักษณะดังนี้: ความคิดคือการเริ่มต้นจาก x และเข้าถึง o ผ่านกฎปกติ นอกจากนี้คุณสามารถ "กระโดด" จากจำนวนเต็มไปยังจำนวนเต็มอื่น ๆได้ แต่คุณต้องจ่ายดอลลาร์สำหรับสิทธิพิเศษ เป้าหมายคือการแก้เขาวงกตในราคาที่ถูกที่สุด ในตัวอย่างข้างต้นเราสามารถเปลี่ยนจาก x เป็น o ผ่าน x-14-18-27-28-o ในราคา 5 แต่มันถูกกว่าที่จะไป x-13-11-9-8-29-28-o เท่านั้น 4aaabbb|a−b||a−b||a-b| ดังนั้นนี่คือคำถามของฉัน: อะไรคือทางออกที่ดีที่สุด (ในแง่ของเวลาทำงานเชิงซีมโทติค) คุณสามารถคิดถึงการแก้ปัญหานี้ คุณอาจกำหนดสมมติฐานที่สมเหตุสมผลเกี่ยวกับรูปแบบการป้อนข้อมูล หมายเหตุ:ฉันกำลังใช้แท็ก "ปริศนา" ที่นี่เพราะฉันมีคำตอบในใจ แต่ฉันไม่แน่ใจว่ามันเป็นวิธีที่ดีที่สุดและต้องการดูว่ามีใครบางคนสามารถปรับปรุงวิธีการแก้ปัญหาของฉัน (นี่คือจำนวนของจำนวนเต็มในเขาวงกต.)O(n2)O(n2)O(n^2)nnn

3
ช่องว่างความสมบูรณ์และอัตราส่วนการประมาณ
เมื่อเราพิจารณาอัลกอริทึมการประมาณสำหรับปัญหาการย่อขนาดการรวมช่องว่างของการกำหนด IP สำหรับปัญหานี้จะให้อัตราส่วนการประมาณที่ต่ำกว่าสำหรับคลาสอัลกอริทึมบางอย่าง (เช่นการปัดเศษหรืออัลกอริธึมแบบสองเท่า) ในความเป็นจริงมีปัญหามากมายที่อัตราส่วนการประมาณที่ดีที่สุดตรงกับช่องว่างการรวม อัลกอริทึมบางตัวอาจมีอัตราส่วนการประมาณที่ดีกว่าช่องว่างด้านการรวมสำหรับปัญหาบางอย่าง แต่ฉันไม่รู้ว่ามีตัวอย่างดังกล่าวอยู่หรือไม่ ถ้าคำตอบคือใช่คุณช่วยยกตัวอย่างได้ไหม ฉันรู้ว่าปัญหาบางอย่างยอมรับสูตรทางคณิตศาสตร์หลายอย่าง ในกรณีเช่นนี้ให้พิจารณาสูตรทางคณิตศาสตร์ที่มีช่องว่างการรวมตัวน้อยที่สุดตราบใดที่มันสามารถแก้ไขได้ในเวลาพหุนาม (บางทีสูตรบางสูตรอาจใช้ oracle แยก) คำถามนี้เป็นคำถามที่เกี่ยวข้องกับ[คำถาม: ความสำคัญของการ integrality Gap]

3
การคำนวณผลรวมของพหุนามแบบกระจัดกระจายกำลังสองในเวลา O (n log n)?
สมมติว่าเรามีพหุนามของระดับมากที่สุด ,เช่นนั้นจำนวนสัมประสิทธิ์ที่ไม่ใช่ศูนย์ทั้งหมดคือ (กล่าวคือพหุนามมีเบาบาง) ฉันสนใจอัลกอริทึมที่มีประสิทธิภาพสำหรับการคำนวณพหุนาม:p1,...,pmp1,...,pmp_1,...,p_mnnnn&gt;mn&gt;mn>mnnn ∑ipi(x)2∑ipi(x)2\sum_i p_i(x)^2 ตั้งแต่พหุนามนี้มีการศึกษาระดับที่มากที่สุดทั้งอินพุทและเอาท์พุทขนาดคือ(n) ในกรณีเราสามารถคำนวณผลโดยใช้ FFT ในเวลาn) สามารถทำได้สำหรับใด ๆ? ถ้ามันสร้างความแตกต่างฉันสนใจในกรณีพิเศษที่ค่าสัมประสิทธิ์เป็น 0 และ 1 และการคำนวณควรทำกับจำนวนเต็ม2n2n2nO(n)O(n)O(n)m=1m=1m=1O(nlogn)O(nlog⁡n)O(n \log n)m&lt;nm&lt;nm<n ปรับปรุง ฉันรู้ว่าวิธีแก้ปัญหาอย่างรวดเร็วสำหรับด้านบนจะบอกเป็นนัยถึงความก้าวหน้าในการคูณเมทริกซ์อย่างรวดเร็ว โดยเฉพาะอย่างยิ่งถ้าเราสามารถอ่านเป็นค่าสัมประสิทธิ์ของใน 2 ดังนั้นการคำนวณสอดคล้องกับการคำนวณผลิตภัณฑ์ด้านนอกของเวกเตอร์สองตัวและการคำนวณผลรวมสอดคล้องกับการคำนวณผลิตภัณฑ์เมทริกซ์ หากมีวิธีการแก้ปัญหาที่ใช้เวลาในการคำนวณจากนั้นเราสามารถคูณเมทริกซ์สองโดย -ในเวลาpk(x)=∑ni=1aikxi+∑nj=1bkjxnjpk(x)=∑i=1naikxi+∑j=1nbkjxnjp_k(x)=\sum_{i=1}^n a_{ik} x^i + \sum_{j=1}^n b_{kj} x^{nj}aikbkjaikbkja_{ik} b_{kj}xi+njxi+njx^{i+nj}pk(x)2pk(x)2p_k(x)^2pk(x)2pk(x)2p_k(x)^2∑kpk(x)2∑kpk(x)2\sum_k p_k(x)^2∑ k p k ( x ) 2 n n f ( n 2 , n )f(n,m)f(n,m)f(n,m)∑kpk(x)2∑kpk(x)2\sum_k …

5
อัลกอริทึมที่กำหนดได้ง่ายและปฏิบัติเวลาทำงานที่ซับซ้อน
บ่อยครั้งถ้าเวลาของอัลกอริทึมเป็นนิพจน์ที่ซับซ้อนอัลกอริธึมเองก็ซับซ้อนและไม่สามารถทำได้ แต่ละคิวบ์รูทและปัจจัยในเวลาทำงานแบบอะซิมโทติกมีแนวโน้มที่จะเพิ่มความซับซ้อนให้กับอัลกอริทึมและซ่อนปัจจัยคงที่ให้กับเวลาทำงานเข้าสู่ระบบเข้าสู่ระบบnlog⁡log⁡n\log \log n เรามีตัวอย่างที่โดดเด่นที่กฎของหัวแม่มือนี้ล้มเหลวหรือไม่? แน่นอนว่ามันเป็นเรื่องง่ายที่จะหาตัวอย่างของอัลกอริทึมที่ยากต่อการนำไปใช้แม้ว่าพวกเขาจะมีเวลาใช้งานที่แย่ที่สุด แต่สิ่งที่เกี่ยวกับการสนทนาหรือไม่ เรามีตัวอย่างของอัลกอริธึมที่กำหนดได้ง่ายและใช้งานได้จริงซึ่งง่ายต่อการติดตั้ง แต่มีการแสดงออกที่ซับซ้อนมากเหมือนกับเวลาที่ใช้ในการแสดงผลเชิงเส้นประสาทที่เลวร้ายที่สุด? โปรดทราบคำหลัก "กำหนด" และ "กรณีที่เลวร้ายที่สุด"; การวิเคราะห์อัลกอริทึมแบบสุ่มง่าย ๆนำไปสู่การแสดงออกที่ซับซ้อนได้อย่างง่ายดาย แน่นอนสิ่งที่ "ซับซ้อน" เป็นเรื่องของรสนิยม อย่างไรก็ตามฉันต้องการเห็นการแสดงออกที่น่าเกลียดเกินกว่าที่จะใส่ในชื่อบทความของคุณ และฉันต้องการฟังก์ชั่นที่ซับซ้อนของพารามิเตอร์ธรรมชาติหนึ่งตัว (ขนาดอินพุตจำนวนโหนด ฯลฯ ) PS ฉันคิดว่าฉันจะไม่ทำให้นี่เป็น "คำถามยอดนิยม" และไม่ใช่ CW ฉันต้องการค้นหาตัวอย่างที่ยอดเยี่ยมเพียงหนึ่งเดียว (ถ้ามีอยู่) ดังนั้นโปรดโพสต์คำตอบอื่นเฉพาะเมื่อคุณคิดว่ามันเป็น "ดีกว่า" มากกว่าคำตอบใด ๆ

2
ข้อกำหนดการจัดเก็บสำหรับการเลือกค่ามัธยฐาน (อัลกอริทึมผ่านสอง)
ในกระดาษคลาสสิกมันโรและแพ็ตเตอร์สันศึกษาปัญหาว่าต้องใช้พื้นที่เก็บข้อมูลเท่าไรสำหรับอัลกอริทึมในการค้นหาค่ามัธยฐานในอาร์เรย์ที่เรียงแบบสุ่ม โดยเฉพาะอย่างยิ่งพวกเขามุ่งเน้นไปที่รูปแบบต่อไปนี้: อินพุตถูกอ่านจากซ้ายไปขวาเป็นจำนวนครั้ง P แสดงว่าเซลล์หน่วยความจำเพียงพอ แต่ขอบเขตล่างที่สอดคล้องกันเท่านั้นที่รู้จักสำหรับ P = 1 ฉันไม่เห็นผลลัพธ์ใด ๆ สำหรับ P&gt; 1 มีใครตระหนักถึงขอบเขตที่ต่ำกว่าเช่นนี้หรือไม่ O ( n12 P)O(n12P)O(n^{\frac{1}{2P}}) ขอให้สังเกตว่าปัญหาหลักที่นี่คือที่ผ่านที่สองการป้อนข้อมูลจะไม่สั่งแบบสุ่มอีกต่อไป

2
อัลกอริทึมสำหรับการตั้งค่าการบรรจุ
ดูเหมือนว่าจะมีงานมากสำหรับปัญหา NP-Hard บางอย่างเกี่ยวกับการพัฒนาอัลกอริธึมที่รวดเร็วเวลาที่แน่นอน (เช่นผลลัพธ์ของรูปแบบ: อัลกอริทึม A แก้ปัญหาใน O (c ^ n) ด้วย c เล็ก) ดูเหมือนว่าจะมีปริมาณงานที่พอใช้สำหรับปัญหา NP-hard บางอย่าง (เช่นการวัดและการพิชิต:อัลกอริธึมอิสระ SODA'06 ) แต่ฉันยังไม่เคย สามารถค้นหางานที่คล้ายกันสำหรับปัญหาการบรรจุที่ตั้งไว้ ดูเหมือนว่าจะมีงานที่คล้ายกันกับข้อ จำกัด บางประการของปัญหาการบรรจุชุด (เช่นอัลกอริทึมแบบพารามิเตอร์สำหรับการบรรจุแบบ 3 ชุด) แต่ฉันไม่พบสิ่งใดสำหรับการบรรจุชุดทั่วไป ปัญหา.xxxO ( 2)0.288 n)O(20.288n)O(2^{0.288n})O* * * *( 3.523k)O* * * *(3.523k)O^{*}(3.523^{k}) ดังนั้นคำถามของฉันคืออะไรเวลาที่ซับซ้อนที่ดีที่สุดสำหรับการแก้ปัญหาการบรรจุชุดถ่วงน้ำหนักตรงที่มีชุดดึงมาจากจักรวาลขององค์ประกอบคืออะไร?nม.ม.mnnn ฉันยังสนใจในความสัมพันธ์ระหว่างจำนวนชุดและขนาดของจักรวาล ตัวอย่างเช่นมีการทำงานของอัลกอริทึมในสถานการณ์ที่มีขนาดค่อนข้างใหญ่เมื่อเทียบกับ (เช่นใกล้กับ )?n 2 nม.ม.mnnn2n2n2^n

2
ผลรวมชุดที่น้อยที่สุด
ลองพิจารณาปัญหานี้: รับรายการชุด จำกัด หาคำสั่งs1, s2, s3, ...s1,s2,s3,...s_1, s_2, s_3, \ldotsที่ย่อให้น้อยที่สุด| s1| + | s1∪ s2| + | s1∪ s2∪ s3| +...|s1|+|s1∪s2|+|s1∪s2∪s3|+...|s_1| + |s_1 \cup s_2| + |s_1 \cup s_2 \cup s_3| + \ldots . มีอัลกอริทึมที่รู้จักสำหรับสิ่งนี้หรือไม่? ความซับซ้อนของมันคืออะไร? ฉันยังไม่สามารถนึกถึงอัลกอริธึมที่เหมาะสมที่สุดที่มีประสิทธิภาพ แต่ก็ไม่ชัดเจนใน NP-Hard เช่นกัน

2
การเปรียบเทียบสองอัลกอริทึมสำหรับปัญหา 3SUM ผ่านจำนวนเต็ม
กระดาษ "Subquadratic Algorithms สำหรับ 3SUM" โดย Ilya Baran, Erik D. Demaine, Mihai Patrascu มีความซับซ้อนดังต่อไปนี้สำหรับ ปัญหา 3sum: รับรายการLLLของnnnจำนวนเต็มถ้ามีx , y, z∈ ลx,Y,Z∈Lx,y,z \in Lเช่นว่าx + y= z.x+Y=Z.x+y=z. w -W-w-A C 0 O ( n 2 / w 2ล็อกw ) O ( n 2 / ( M B ) ) O ( …

2
ภาพใหญ่ขึ้นด้านหลังตัวเลือกเมทริกซ์ในอัลกอริทึม Strassen
ในขั้นตอนวิธีการ Strassen, การคำนวณผลิตภัณฑ์สองเมทริกซ์และB , เมทริกซ์และBจะแบ่งออกเป็น2 × 2การฝึกอบรมป้องกันและขั้นตอนวิธีการดำเนินการซ้ำคอมพิวเตอร์7บล็อกผลิตภัณฑ์แมทริกซ์แมทริกซ์เมื่อเทียบกับไร้เดียงสา8 matrix- บล็อก ผลิตภัณฑ์เมทริกซ์คือถ้าเราต้องการC = A Bโดยที่ A = [ A 1 , 1 A 1 , 2 A 2 , 1 A 2 , 2AA\mathbf{A}BB\mathbf{B}AA\mathbf{A}BB\mathbf{B}2 × 22×22 \times 2777888C = A Bค=AB\mathbf{C}=\mathbf{A} \mathbf{B} จากนั้นเรามี C 1 , 1 = A 1 , 1 …

2
ความรู้เบื้องต้นเกี่ยวกับกราฟมอร์ฟิซึมเบา ๆ สำหรับกราฟ valance
ฉันอ่านเกี่ยวกับการเรียนของกราฟที่กราฟมอร์ฟ ( ) อยู่ในPหนึ่งในกรณีดังกล่าวเป็นกราฟของความจุ จำกัด (สูงสุดกว่าระดับของแต่ละจุดสุดยอด) ตามที่อธิบายไว้ที่นี่ แต่ฉันพบว่ามันเป็นนามธรรมเกินไป ฉันจะขอบคุณถ้าใครสามารถแนะนำการอ้างอิงบางอย่างเกี่ยวกับธรรมชาติของการอธิบาย ฉันไม่มีภูมิหลังที่แข็งแกร่งในทฤษฎีกลุ่มดังนั้นฉันจึงต้องการเอกสารที่ใช้ทฤษฎีกลุ่มอย่างอ่อนโยน (ภูมิหลังของฉันอยู่ใน CS)PGIGIGIPPP

4
ปัญหาที่ยากสำหรับกราฟสกุลที่สูงขึ้น
กราฟระนาบมีสกุลศูนย์ กราฟที่ฝังอยู่บนพรูมีสกุลได้ไม่เกิน 1 คำถามของฉันง่ายมาก: มีปัญหาใดบ้างไหมที่สามารถแก้ไขปัญหาพหุนามในกราฟระนาบ แต่ NP-hard กับกราฟของสกุลหนึ่ง? โดยทั่วไปแล้วจะมีปัญหาใดบ้างที่สามารถแก้ไขได้แบบพหุนามในกราฟของสกุล g และ NP-hard ในกราฟของสกุล&gt; g?

1
คำนวณ NFA ขั้นต่ำสำหรับ DFA
หลายปีมาแล้วผมได้ยินมาว่าการคำนวณน้อยที่สุด NFA (nondeterministic แน่นอนหุ่นยนต์) จาก DFA (กำหนด) เป็นคำถามเปิดเมื่อเทียบกับในทางกลับกันทิศทางซึ่งได้รับการรู้จักกันมานานหลายทศวรรษและมีการวิจัยดีที่มีประสิทธิภาพอัลกอริทึม มีใครคิดอัลกอริทึมบ้างไหม?O ( n lgn )O(nLG⁡n)O(n \lg n) การค้นหาอย่างรวดเร็วทำให้ฉันกระดาษนี้ที่พิสูจน์ว่ามันเป็นปัญหาที่ยากอย่างแน่นอน เห็นได้ชัดว่าไม่มีการกำหนดอัลกอริทึม [1] ปัญหา NFA ที่น้อยที่สุดนั้นยาก / Tao Jiang และ B. Ravikumar ฉันได้รับการเตือนถึงปัญหานี้โดยคำถามต่อไปนี้ในไซต์ CS.SE ซึ่งอัลกอริทึมการย่อขนาด DFA-&gt; NFA จะเกี่ยวข้องกันอย่างใกล้ชิด คำถามต่อไปนี้ดูเหมือนว่าฉันจะอยู่ในระดับการวิจัย ฉันแนะนำให้โยกย้ายไปยัง TCS และฉันเขียนคำตอบเพื่อแนะนำการโจมตีเชิงสถิติ / เชิงประจักษ์ [2] เงื่อนไขสำหรับ NFA สำหรับ DFA ที่เทียบเท่าจะมีขนาดสูงสุดได้อย่างไร

3
ผสานต้นไม้สองแบบในการค้นหาแบบทวิภาค
ฉันกำลังมองหาอัลกอริทึมที่จะรวมแผนภูมิการค้นหาแบบทวิภาคสองรายการที่มีขนาดและช่วงโดยพลการ ที่เห็นได้ชัดวิธีที่ฉันจะไปเกี่ยวกับการดำเนินการนี้จะไปหาต้นไม้ย่อยทั้งหมดที่มีช่วงสามารถใส่ลงในโหนดภายนอกโดยพลการในต้นไม้อื่น ๆ อย่างไรก็ตามเวลาทำงานที่แย่ที่สุดสำหรับอัลกอริทึมประเภทนี้น่าจะเป็นไปตามลำดับO(n+m)ที่nและmขนาดของต้นไม้แต่ละต้นตามลำดับ อย่างไรก็ตามฉันได้รับแจ้งว่าสามารถทำได้ในO(h)ที่ซึ่งhความสูงของต้นไม้ที่มีความสูงมากกว่า และฉันก็หลงทางว่าเป็นไปได้อย่างไร ฉันลองทดลองหมุนต้นไม้ต้นหนึ่งก่อน แต่การหมุนต้นไม้เป็นกระดูกสันหลังแล้ว O (h)

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