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

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

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

1
การตัดสินใจว่าช่วงเวลามีจำนวนเฉพาะหรือไม่
ความซับซ้อนของการตัดสินใจว่าช่วงเวลาของจำนวนธรรมชาติประกอบด้วยนายกหรือไม่? ตัวแปรของ Sieve of Eratosthenes ให้อัลกอริธึมโดยที่Lคือความยาวของช่วงเวลาและ∼ซ่อนโพลี - ลอการิทึมปัจจัยในจุดเริ่มต้นของช่วงเวลา; เราสามารถทำได้ดีกว่า (ในแง่ของLคนเดียว)?O~(L)O~(L)\tilde O(L)LLL∼∼\simLLL

2
ความซับซ้อนหรือวงจรของตัวดำเนินการเชิงเส้นหนาแน่น
พิจารณาวงจรแบบโมโนโทนเดียวต่อไปนี้: แต่ละเกจเป็นเพียงไบนารีหรือ อะไรคือความซับซ้อนของฟังก์ชั่นf ( x ) = A xf(x)=Axf(x)=Axโดยที่AAAคือบูลีนเมทริกซ์ที่มี 0 มันสามารถคำนวณได้โดยขนาดเชิงเส้นหรือวงจร?n×nn×nn \times nO(n)O(n)O(n) อีกอย่างเป็นทางการคือฟังก์ชันจากถึงบิต เอาท์พุท -th ของมี (เช่นการหรือการย่อยของบิตการป้อนข้อมูลที่ได้รับจากแถว -th ของ)fffnnnnnniiifff⋁nj=1(Aij∧xj)⋁nj=1(Aij∧xj)\bigvee_{j=1}^{n}(A_{ij} \land x_j)iiiAAA โปรดทราบว่า 0 แยกแถวของเป็นช่วง (ชุดย่อยที่ประกอบด้วยองค์ประกอบต่อเนื่องของ ) สิ่งนี้ทำให้สามารถใช้โครงสร้างข้อมูลแบบสอบถามช่วงที่ทราบได้ เช่นโครงสร้างข้อมูลตารางเบาบางสามารถกลายเป็นหรือวงจรขนาดn) อัลกอริธึมของ Yaoสำหรับการสอบถามโอเปอเรเตอร์กึ่ง semigroup สามารถเปลี่ยนเป็นวงจรเชิงเส้นตรงเกือบ (ขนาดโดยที่คือ Invermann ผกผัน)O(n)O(n)O(n)AAAO(n)O(n)O(n)[n][n][n]O(nlogn)O(nlogn)O(n\log n)O(α(n)⋅n)O(α(n)⋅n)O(\alpha(n) \cdot n)α(n)α(n)\alpha(n) โดยเฉพาะฉันไม่ทราบวิธีสร้างวงจรขนาดเชิงเส้นสำหรับกรณีพิเศษที่แต่ละแถวของประกอบด้วยศูนย์สองตัว ในขณะที่กรณีของศูนย์หนึ่งในแต่ละแถวเป็นเรื่องง่าย (แต่ละฟังก์ชั่นเอาท์พุทสามารถคำนวณได้โดย OR ของคำนำหน้าและคำต่อท้ายซึ่งสามารถคำนวณได้ล่วงหน้าโดยหรือประตู)AAA[1..k−1][1..k−1][1..k-1][k+1..n][k+1..n][k+1..n]2n2n2n

3
ปัญหาที่ไม่เกี่ยวกับการแก้ไขในเวลาคงที่?
เวลาคงที่คือความซับซ้อนต่ำสุดของเวลา บางคนอาจสงสัยว่า: มีเรื่องแปลกใหม่ที่สามารถคำนวณได้ในเวลาที่แน่นอนหรือไม่? หากเรายึดติดกับโมเดลของทัวริงเครื่องก็ไม่สามารถทำได้มากนักเนื่องจากคำตอบนั้นขึ้นอยู่กับส่วนเริ่มต้นความยาวคงที่ของอินพุตเนื่องจากส่วนที่อยู่ไกลกว่าของอินพุตไม่สามารถเข้าถึงได้ในเวลาคงที่ ในทางกลับกันถ้าเราใช้รูปแบบ RAM ราคาต้นทุนต่อหน่วยที่ค่อนข้างมีประสิทธิภาพมากขึ้นซึ่งในการดำเนินการเบื้องต้นในบิตตัวเลขจะถูกนับเป็นขั้นตอนเดียวจากนั้นเราอาจจะสามารถแก้ไข งานที่ไม่สำคัญแม้ในเวลาที่คงที่ นี่คือตัวอย่าง:O(logn)O(log⁡n)O(\log n) อินสแตนซ์:จำนวนเต็ม , แต่ละอันกำหนดในรูปแบบไบนารีโดยบิตn,k,l,dn,k,l,dn, k, l, dO(logn)O(log⁡n)O(\log n) คำถาม:มีกราฟ -vertex อยู่หรือไม่เช่นการเชื่อมต่อจุดยอดคือ , การเชื่อมต่อขอบของมันคือและระดับต่ำสุดของมันคือ ?nnnkkklllddd โปรดทราบว่าจากความหมายมันไม่ได้เป็นที่เห็นได้ชัดแม้กระทั่งว่าปัญหาอยู่ในNP เหตุผลก็คือพยานธรรมชาติ (กราฟ) อาจต้องการคำอธิบายแบบยาวบิตในขณะที่อินพุตจะได้รับจากบิตเท่านั้น ในทางตรงกันข้ามทฤษฎีต่อไปนี้ (ดูทฤษฎีกราฟ Extremalโดย B. Bollobas) มาช่วยΩ(n2)Ω(n2)\Omega(n^2)O(logn)O(log⁡n)O(\log n) ทฤษฎีบท:ปล่อยเป็นจำนวนเต็ม มีกราฟ -vertex พร้อมจุดเชื่อมต่อ , การเชื่อมต่อขอบ , และระดับต่ำสุด , ถ้าหากเพียงหนึ่งในเงื่อนไขต่อไปนี้:n,k,l,dn,k,l,dn, k, l, dnnnkkklllddd 0≤k≤l≤d<⌊n/2⌋0≤k≤l≤d<⌊n/2⌋0\leq k\leq l …

2
การเรียงลำดับโดยใช้สแต็คแบบอ่านอย่างเดียว
พิจารณาการตั้งค่าต่อไปนี้: เราจะได้สแต็คsssซึ่งมีรายการnnn เราสามารถใช้จำนวนสแต็คพิเศษคงที่O(1)O(1)O(1) เราสามารถใช้การดำเนินการต่อไปนี้กับสแต็คเหล่านี้: ตรวจสอบว่าสแต็กว่างเปล่าหรือไม่ เปรียบเทียบไอเท็มยอดนิยมของทั้งสองกอง ลบรายการด้านบนในสแต็ก พิมพ์รายการยอดนิยมในสแต็ค คัดลอกรายการบนสุดของสแต็กไปยังสแต็กอื่น คัดลอกเนื้อหาของกองหนึ่งไปยังกองอื่น โปรดทราบว่าสิ่งเหล่านี้เป็นเพียงการดำเนินการที่ได้รับอนุญาต เราไม่สามารถแลกเปลี่ยนไอเท็มได้และเราไม่ได้รับอนุญาตให้ดันไอเท็มใด ๆ ลงบนสแต็คใด ๆ ยกเว้นการคัดลอกไอเท็มด้านบนลงในสแต็ก (หลังจากที่เนื้อหาก่อนหน้าของสแต็คเป้าหมายถูกทิ้งไปแล้ว . นี่เป็นอัลกอริทึมในการจัดเรียงสแต็คด้วยการเปรียบเทียบ :O(n2)O(n2)O(n^2) last := empty for i from 1 to n min := empty w := s while w is not empty if w.top > last and w.top < min min := …

4
eta-equence สำหรับฟังก์ชั่นที่ใช้งานร่วมกันได้กับการทำงาน seq ของ Haskell หรือไม่?
แทรก: สมมติว่า (\x -> ⊥) = ⊥ :: A -> BETA-เท่าเทียมเรามี พิสูจน์: ⊥ = (\x -> ⊥ x)โดยกทพ. เทียบเท่าและ(\x -> ⊥ x) = (\x -> ⊥)โดยการลดภายใต้แลมบ์ดา รายงาน Haskell 2010 ส่วน 6.2 ระบุseqฟังก์ชันด้วยสองสมการ: seq :: a -> b -> b seq ⊥ b = ⊥ seq ab = b, ถ้า a …

1
การแลกเปลี่ยนพื้นที่โดยประมาณ
ในกระดาษของพวกเขาประมาณระยะทาง Oracles , Thorup และ Zwick แสดงให้เห็นว่าสำหรับกราฟที่ไม่ได้กำหนดทิศทางใด ๆ มันเป็นไปได้ที่จะสร้างโครงสร้างข้อมูลขนาดที่สามารถคืนค่า( 2 k - 1 ) -approximate ระยะห่างระหว่างจุดยอดคู่ใด ๆ ในกราฟO ( k n1 + 1 / k)O(kn1+1/k)O(k n^{1+1/k})( 2 k - 1 )(2k-1)(2k-1) ในระดับพื้นฐานการก่อสร้างนี้ประสบความสำเร็จในการแลกเปลี่ยนพื้นที่ประมาณหนึ่งสามารถลดความต้องการพื้นที่ที่ค่าใช้จ่ายของ "คุณภาพ" ที่ต่ำกว่าของการแก้ปัญหา ปัญหากราฟอื่น ๆ ที่แสดงการแลกเปลี่ยนระหว่างพื้นที่และการประมาณ? ฉันสนใจในกรณีของกราฟทั้งแบบคงที่และแบบไดนามิกถ่วงน้ำหนักและไม่ถ่วงน้ำหนักไม่ระบุทิศทางและกำกับ ขอบคุณ

2
ชุดที่เล็กที่สุดไม่รวมอยู่ในชุดของชุด
ป.ร. ให้ไว้เป็น input จำนวนเต็มnnnและชุดSSSชุดขององค์ประกอบของสิ่งที่เป็นความซับซ้อนของการหาชุดขององค์ประกอบของ{ 1 , . . , n }เช่นนั้นTมีความเป็นเชิงหัวใจน้อยที่สุดและTรวมอยู่ในเซตใดของS ?T{1,...,n}{1,...,n}\{1, ..., n\}TTT{1,...,n}{1,...,n}\{1, ..., n\}TTTTTTSSS

1
ระดับความซับซ้อนที่เกี่ยวข้องกับการค้นหาอย่างละเอียด
คลาสความซับซ้อนเกี่ยวข้องกับอัลกอริธึมการค้นหาที่ละเอียดถี่ถ้วนอย่างไร (ถ้ามี) มันเป็น NP หรือ PSPACE มีการ จำกัด รูปแบบการคำนวณเพื่อจับภาพคลาสของอัลกอริธึมการค้นหาที่ละเอียดถี่ถ้วนซึ่งคล้ายกับโมเดลสำหรับการโปรแกรมแบบโลภและแบบไดนามิกหรือไม่?

1
เร่งความเร็วจากอัลกอริทึมกับฮาร์ดแวร์
ฉันจำได้ว่าเคยเห็นการศึกษาหรือบทความเมื่อเร็ว ๆ นี้โดยอ้างว่าการเร่งความเร็วส่วนใหญ่ที่เห็นในโปรแกรมคอมพิวเตอร์ในช่วงหลายทศวรรษที่ผ่านมานั้นมาจากอัลกอริทึมที่ดีกว่าฮาร์ดแวร์ที่เร็วกว่า ไม่มีใครรู้ว่าการศึกษาหรือบทความ?

2
พารามิเตอร์กราฟอาจเกี่ยวข้องกับความน่าเชื่อถือ
ฉันสนใจในกราฟnnnจุดซึ่งสามารถผลิตได้ผ่านขั้นตอนดังต่อไปนี้ เริ่มต้นด้วยกราฟโดยพลการบนจุดยอด ป้ายจุดทั้งหมดที่อยู่ในเป็นที่ไม่ได้ใช้k ≤ n GGGGk≤nk≤nk\le nGGG ผลิตกราฟใหม่โดยการเพิ่มยอดใหม่ซึ่งมีการเชื่อมต่อหนึ่งหรือมากกว่าหนึ่ง ที่ไม่ได้ใช้จุดในและไม่ได้เชื่อมต่อใด ๆที่ใช้จุดในGป้ายเป็นที่ไม่ได้ใช้ v G G vG′G′G'vvvGGGGGGvvv หนึ่งในฉลากของจุดในที่มีการเชื่อมต่อเป็นสินค้า vG′G′G'vvv ตั้งค่าเป็นและทำซ้ำตั้งแต่ขั้นตอนที่ 2 จนกระทั่งมีจุดยอดG ′ G nGGGG′G′G'GGGnnn เรียกกราฟเช่นนี้ว่า "กราฟของความซับซ้อน " (ขอโทษสำหรับคำศัพท์ที่คลุมเครือ) ตัวอย่างเช่นถ้าเป็นกราฟของความซับซ้อน 1คือเส้นทางG GkkkGGGGGG ฉันอยากจะรู้ว่ากระบวนการนี้ได้รับการศึกษามาก่อนหรือไม่ โดยเฉพาะอย่างยิ่งสำหรับพล , มันเป็น NP-สมบูรณ์เพื่อตรวจสอบว่ามีความซับซ้อนกราฟ ?kkkkkkk ปัญหานี้จะปรากฏค่อนข้างคล้ายกับคำถามที่ว่าเป็นบางส่วน -treeคือมีtreewidth kเป็นที่ทราบกันดีว่าการพิจารณาว่ามี treewidthเป็น NP-complete หรือไม่ อย่างไรก็ตามกราฟบางอย่าง (ดาวเป็นต้น) อาจมีความกังวลน้อยกว่าการวัดความซับซ้อนที่กล่าวถึงที่นี่k k G kGGGkkk kkkGGGkkk 4 ตุลาคม …

1
การรวมศูนย์เป็นศูนย์หมายความว่าศูนย์คู่มีช่องว่างสำหรับปัญหาบางอย่างหรือไม่?
เรารู้ว่าหากช่องว่างระหว่างค่าของโปรแกรมเลขจำนวนเต็มและคู่ ("ช่องว่างคู่") เป็นศูนย์ดังนั้นการเขียนโปรแกรมเชิงเส้นของโปรแกรมจำนวนเต็มและการผ่อนคลายแบบคู่ทั้งคู่ยอมรับวิธีแก้ปัญหาแบบอินทิกรัล ช่องว่าง ") ฉันต้องการที่จะทราบว่าการสนทนาถืออย่างน้อยในบางกรณี สมมติว่าฉันมีโปรแกรมจำนวนเต็ม 0-1โดยที่เมทริกซ์เป็นเมทริกซ์สมมติว่าการโปรแกรมเชิงเส้นผ่อนคลายของมีวิธีแก้ปัญหาที่เหมาะสมที่สุด การโปรแกรมเชิงเส้นคู่ของยังยอมรับการแก้ปัญหาที่สำคัญหรือไม่?P:max{1Tx:Ax≤1,x∈{0,1}n}P:max{1Tx:Ax≤1,x∈{0,1}n}P: \max\{1^Tx: Ax \leq 1, x\in \{0,1\}^n\}AAA0−10−10-1P′P′P'PPPP′P′P' ฉันขอขอบคุณตัวอย่างเคาน์เตอร์หรือพอยน์เตอร์ใด ๆ ..

1
อัลกอริทึมที่แน่นอนสำหรับปัญหาการติดฉลากขอบใน DAG
ฉันกำลังใช้ระบบบางส่วนซึ่งต้องการความช่วยเหลือ ฉันจึงกำหนดให้เป็นปัญหากราฟเพื่อให้โดเมนเป็นอิสระ ปัญหา:เราจะได้รับการกำกับวัฏจักรกราฟ ) โดยไม่สูญเสียของทั่วไปคิดว่าGมีตรงจุดสุดยอดแหล่งหนึ่งsและตรงหนึ่งอ่างจุดสุดยอดเสื้อ ; ให้Pแสดงว่าชุดของเส้นทางกำกับทั้งหมดจากsไปทีในG เรายังจะได้รับชุดของจุดR ⊆ V ปัญหาคือการกำหนดน้ำหนักจำนวนเต็มแบบไม่เป็นลบให้กับขอบของGดังนั้นสองเส้นทางในPมีน้ำหนักเท่ากันถ้าหากพวกมันมีเซตย่อยของจุดยอดเดียวกันในG=(V,E)G=(V,E)G=(V,E)GGGssstttPPPssstttGGGR⊆VR⊆VR \subseteq VGGGPPP . (น้ำหนักของเส้นทางคือผลรวมของน้ำหนักของขอบ) ช่วงของน้ำหนักของเส้นทางใน Pควรมีขนาดเล็กที่สุดRRRPPP ขณะนี้วิธีการของฉันดูเหมือนจะไม่มีประสิทธิภาพ ฉันแค่กำลังมองหาการอ้างอิงถึงวรรณกรรมหรือความเข้าใจที่ดี อะไรก็ได้ที่ชื่นชมเช่นกัน แก้ไข:มีหลักฐานความแข็งสำหรับปัญหานี้หรือไม่? หมายเลขกะทัดรัดมีอยู่เสมอหรือไม่

3
การแยกรูปทรงหลายเหลี่ยมที่ประมวลผลล่วงหน้าและระนาบ
ฉันมีปัญหาร้ายแรงในการทำความเข้าใจขั้นตอนเดียวในกระดาษของโดคินและเคิร์กแพททริกเกี่ยวกับการแยกโพลีเฮดรา ฉันพยายามที่จะเข้าใจรุ่นนี้: http://www.cs.princeton.edu/~dpd/Papers/SCG-09-invited/old%20papers/DPD+Kirk.pdf มันระบุว่าหลังจากที่เรารู้ว่าการแยกที่ดีที่สุดของPiPiP_{i}และSSS , ตระหนักโดยririr_iและsisis_iเราสามารถหาสิ่งที่ดีที่สุดของการแยกPi−1Pi−1P_{i-1}และSSSในO(1)O(1)O(1)ขั้นตอน วิธีนี้ทำได้ในวิธีต่อไปนี้ เรานำระนาบขนานกับSSSถึงririr_iแล้วตัดPi−1Pi−1P_{i-1}ออกเป็นสองส่วนด้วยกัน อีกด้านหนึ่งจุดที่ใกล้ที่สุดกับSSSคือririr_iและที่อื่น ๆ เรามีรูปทรงหลายเหลี่ยม `` ประถม '' ว่าเราสามารถตรวจสอบในO(1)O(1)O(1)เวลา ปัญหาของฉันคือ - เราจะหารูปทรงหลายเหลี่ยมพื้นฐานนี้ได้อย่างไร โปรดทราบว่าระดับririr_iในPi−1Pi−1P_{i-1}อาจไม่ถูก จำกัด ใน pdf เพื่อพิสูจน์ Thm 5.1 จากหน้า 9 พวกเขาใช้ Thm 3.1 จากหน้า 4 ซึ่งทำให้ยากต่อการติดตามทั้งหมด

4
การศึกษาเชิงทฤษฎีของวิธีการโคตรพิกัด
ฉันกำลังเตรียมเนื้อหาหลักสูตรเกี่ยวกับการวิเคราะห์พฤติกรรมเพื่อการเพิ่มประสิทธิภาพและได้รับการดูวิธีการประสานงานการสืบเชื้อสาย การตั้งค่าอยู่ที่นี่คือฟังก์ชันหลายตัวแปรที่คุณต้องการปรับให้เหมาะสม fมีคุณสมบัติที่ จำกัด ไว้ที่ตัวแปรเดี่ยวใด ๆ มันเป็นเรื่องง่ายที่จะเพิ่มประสิทธิภาพ ดังนั้นประสานงานโคตรรายได้โดยการขี่จักรยานผ่านพิกัดแก้ไขทั้งหมดยกเว้นหนึ่งที่เลือกและลดลงตามพิกัดนั้น ในที่สุดการปรับปรุงก็หยุดชะงักและคุณก็ยุติffffff คำถามของฉันคือ: มีการศึกษาเชิงทฤษฎีเกี่ยวกับวิธีการสืบเชื้อสายมาจากพิกัดที่พูดถึงอัตราการลู่เข้าและคุณสมบัติของที่ทำให้วิธีนี้ทำงานได้ดีหรือไม่? เห็นได้ชัดว่าฉันไม่ได้คาดหวังคำตอบทั่วไปอย่างสมบูรณ์ แต่คำตอบที่ให้ความกระจ่างกรณีที่การแก้ปัญหาไม่ดีจะเป็นประโยชน์fff Aside: เทคนิคการปรับให้เหมาะสมแบบสลับใช้สำหรับ means สามารถถูกมองว่าเป็นตัวอย่างของการประสานงานที่สืบทอดกันมาและอัลกอริทึมของ Frank-Wolfeดูจะเกี่ยวข้องกัน (แต่ไม่ใช่ตัวอย่างโดยตรงของกรอบงาน)kkk

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