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

คำอธิบายของขั้นตอนเฉพาะที่จำเป็นในการแก้ปัญหาเฉพาะในรูปแบบที่ชัดเจนซึ่งแสดงในรูปแบบนามธรรม

7
การวิเคราะห์อัลกอริทึมโดยการนับฟลอพล้าสมัยหรือไม่
ในหลักสูตรการวิเคราะห์เชิงตัวเลขของฉันฉันเรียนรู้ที่จะวิเคราะห์ประสิทธิภาพของอัลกอริทึมโดยการนับจำนวนของการดำเนินการจุดลอยตัว (flops) ที่พวกเขาต้องการเทียบกับขนาดของปัญหา ตัวอย่างเช่นในข้อความของ Trefethen & Bau ใน Numerical Linear Algebra มีแม้กระทั่งรูปภาพที่ดูแบบ 3 มิติของจำนวนฟล็อป ตอนนี้มันเป็นแฟชั่นที่จะกล่าวว่า "flops ฟรี" เพราะเวลาแฝงของหน่วยความจำในการดึงข้อมูลใด ๆ ที่ไม่ได้อยู่ในแคชนั้นยิ่งใหญ่กว่าค่าใช้จ่ายของ flop แต่เรายังสอนนักเรียนให้นับจำนวนอย่างน้อยในหลักสูตรการวิเคราะห์เชิงตัวเลข เราควรสอนพวกเขาให้นับการเข้าถึงหน่วยความจำแทนหรือไม่ เราจำเป็นต้องเขียนตำราใหม่หรือไม่ หรือการเข้าถึงหน่วยความจำเฉพาะเกินไปที่จะใช้เวลากับเครื่อง? แนวโน้มระยะยาวจะเป็นอย่างไรในแง่ของการไม่ว่าจะเป็น flops หรือการเข้าถึงหน่วยความจำเป็นคอขวด? หมายเหตุ: คำตอบบางข้อด้านล่างดูเหมือนจะตอบคำถามต่าง ๆ เช่น "ฉันควรเขียนการใช้งานของฉันใหม่อีกครั้งเพื่อบันทึก flops สองสามครั้งหรือปรับปรุงประสิทธิภาพแคชหรือไม่" แต่สิ่งที่ฉันถามนั้นเป็นไปตามแนวของ " มีประโยชน์มากกว่าหรือไม่ที่จะประเมินความซับซ้อนของอัลกอริทึมในแง่ของการดำเนินการทางคณิตศาสตร์หรือการเข้าถึงหน่วยความจำ ?"

7
วิธีที่เร็วที่สุดในการคำนวณค่าลักษณะเฉพาะที่ใหญ่ที่สุดของเมทริกซ์ทั่วไปคืออะไร
แก้ไข:ฉันกำลังทดสอบว่าค่าลักษณะเฉพาะใดมีขนาดหนึ่งหรือมากกว่า ฉันต้องการหาค่าลักษณะเฉพาะสัมบูรณ์ที่ใหญ่ที่สุดของเมทริกซ์เบาบางขนาดใหญ่ที่ไม่สมมาตร ฉันใช้eigen()ฟังก์ชันของ R ซึ่งใช้ QR algo จาก EISPACK หรือ LAPACK เพื่อค้นหาค่าลักษณะเฉพาะทั้งหมดจากนั้นฉันใช้abs()เพื่อรับค่าสัมบูรณ์ อย่างไรก็ตามฉันต้องทำให้เร็วขึ้น ฉันได้ลองใช้อินเตอร์เฟส ARPACK ในigraphแพ็คเกจ R แล้ว อย่างไรก็ตามมันให้ข้อผิดพลาดสำหรับเมทริกซ์ตัวหนึ่งของฉัน การดำเนินการขั้นสุดท้ายจะต้องสามารถเข้าถึงได้จากอาร์ อาจมีค่าลักษณะเฉพาะหลายค่าที่มีขนาดเท่ากัน คุณมีข้อเสนอแนะใด? แก้ไข: ความแม่นยำจะต้องเป็น1e-11เท่านั้น เป็น "ปกติ" เมทริกซ์ได้รับเพื่อให้ห่างไกล 386 ฉันสามารถทำ QR factorisation กับมันได้ อย่างไรก็ตามมันเป็นไปได้ที่จะมีขนาดใหญ่กว่ามาก ฉันกำลังเริ่มอ่านเกี่ยวกับอัลกอริทึมของ Arnoldi ฉันเข้าใจว่ามันเกี่ยวข้องกับ Lanczsos386 × 386386×386386\times 386 EDIT2:ถ้าฉันมีเมทริกซ์หลายตัวที่ฉัน "ทดสอบ" และฉันรู้ว่ามันมีซับเมทริกซ์ขนาดใหญ่ที่ไม่เปลี่ยนแปลง เป็นไปได้ไหมที่จะเพิกเฉย / ทิ้ง?

6
ปัญหา n-body ความโน้มถ่วงสามารถแก้ไขในแบบคู่ขนานได้อย่างไร?
ปัญหา n-body ความโน้มถ่วงสามารถแก้ไขเป็นตัวเลขแบบขนานได้อย่างไร? การแลกเปลี่ยนความซับซ้อนที่มีความแม่นยำเป็นไปได้หรือไม่? ความแม่นยำมีอิทธิพลต่อคุณภาพของรุ่นอย่างไร

1
มีอัลกอริทึมเชิงตัวเลขสำหรับการค้นหาความชันแบบอะซิมโทติกหรือไม่?
ฉันมีชุดของจุดข้อมูลซึ่งผมคาดว่าจะ (โดยประมาณ) เป็นไปตามฟังก์ชั่นที่ asymptotes กับเส้นที่มีขนาดใหญ่xโดยพื้นฐานแล้วเข้าหาศูนย์เมื่อและสิ่งเดียวกันอาจจะกล่าวได้ว่าอนุพันธ์ของ ,เป็นต้น แต่ฉันไม่รู้ว่ารูปแบบการทำงานของf (x)คืออะไรถ้ามันมีรูปแบบที่สามารถอธิบายได้ในแง่ของฟังก์ชันพื้นฐาน(xi,yi)(xi,yi)(x_i,y_i)Y( x )y(x)y(x)xxxฉ( x ) ≡ y( x ) - ( a x + b )f(x)≡y(x)−(ax+b)f(x) \equiv y(x) - (ax + b)x → ∞x→∞x \to \inftyf′(x)f′(x)f'(x)f ( x )f′′(x)f″(x)f''(x)f(x)f(x)f(x) เป้าหมายของผมคือการได้รับการประมาณการที่ดีที่สุดของความลาดชันเชิง วิธีหยาบอย่างเห็นได้ชัดคือการเลือกจุดข้อมูลไม่กี่ครั้งล่าสุดและทำการถดถอยเชิงเส้น แต่แน่นอนว่าสิ่งนี้จะไม่ถูกต้องหากf (x)ไม่กลายเป็น "แบนพอ" ภายในช่วงของxที่ฉันมีข้อมูล ชัดเจนน้อยกว่าวิธีหยาบคายคือการสมมติว่าf (x) \ about \ exp (-x) (หรือรูปแบบการทำงานเฉพาะอื่น …
23 algorithms 

10
อัลกอริทึมใดที่แม่นยำยิ่งขึ้นสำหรับการคำนวณผลรวมของอาร์เรย์ที่เรียงลำดับตัวเลข?
ป.ร. ให้ไว้เป็นลำดับ จำกัด ที่เพิ่มขึ้นของตัวเลขบวก{n} อัลกอริทึมสองข้อใดต่อไปนี้ที่ดีกว่าสำหรับการคำนวณผลรวมของตัวเลขZ1, z2,.....znZ1,Z2,.....Znz_{1} ,z_{2},.....z_{n} s=0; for \ i=1:n s=s + z_{i} ; end หรือ: s=0; for \ i=1:n s=s + z_{n-i+1} ; end ในความคิดของฉันมันจะเป็นการดีกว่าถ้าคุณเริ่มเพิ่มตัวเลขจากจำนวนมากที่สุดไปเป็นจำนวนน้อยที่สุดเพราะข้อผิดพลาดเล็กลงเรื่อย ๆ นอกจากนี้เรายังทราบว่าเมื่อเราเพิ่มจำนวนมากเป็นจำนวนน้อยมากผลลัพธ์โดยประมาณอาจเป็นจำนวนมาก ถูกต้องหรือไม่ อะไรที่สามารถพูดได้?

4
อัลกอริทึมสำหรับการปรับฟังก์ชั่นการปรับตัว
ฉันกำลังมองหาอัลกอริทึมเพื่อวาดกราฟ 2d แบบมาตรฐานสำหรับฟังก์ชั่นที่อาจจะใช่หรือไม่มีเอกพจน์ จุดประสงค์คือการเขียน "Mini-CAS" ดังนั้นฉันไม่มีความรู้เบื้องต้นเกี่ยวกับประเภทของฟังก์ชั่นที่ผู้ใช้ต้องการสร้างกราฟ ปัญหานี้เก่ามากดังนั้นฉันจินตนาการว่าต้องมีอัลกอริธึมมาตรฐานบางอย่างในวรรณกรรม สำหรับเมื่อฉันไม่ได้ประสบความสำเร็จมากในการหาการอ้างอิงผ่าน Google ฉันพบหนึ่งอัลกอริทึมที่น่าสนใจคืออันนี้จาก "YACAS - หนังสือของอัลกอริทึม"ชื่อ "การปรับฟังก์ชั่น Adaptive" ดังนั้นในระยะสั้น: มีอัลกอริธึมมาตรฐานหรือไม่? มีชุดทดสอบสำหรับฟังก์ชั่นที่ยากต่อการพล็อตหรือไม่? เอกสารที่น่าสนใจที่ควรอ่านมีอะไรบ้าง

3
ระบบเส้นตรงแบบสมมาตรและคงที่สามารถแก้ไขได้ในเวลาสมการกำลังสองหลังจากการคำนวณล่วงหน้าหรือไม่
คือมีO(n3+n2k)O(n3+n2k)O(n^3+n^2 k)วิธีการที่จะแก้ปัญหาkkkเชิงเส้นระบบของฟอร์ม(Di+A)xi=bi(Di+A)xi=bi(D_i + A) x_i = b_iที่เป็นเมทริกซ์เมจิคงที่และD ฉันเป็นเมทริกซ์ทแยงมุมบวก?AAADiDiD_i ตัวอย่างเช่นถ้าแต่ละDiDiD_iเป็นสเกลาร์ก็พอเพียงที่จะคำนวณ SVD ของ อย่างไรก็ตามการแบ่งนี้สำหรับDทั่วไปเนื่องจากการขาดการสับเปลี่ยนAAADDD อัปเดต : คำตอบคือ "ไม่" ไม่มีใครมีสัญชาตญาณที่น่าสนใจว่าทำไม? ไม่มีคำตอบหมายความว่าไม่มีวิธีที่ไม่จำเป็นในการบีบอัดข้อมูลระหว่างผู้ให้บริการที่ไม่เปิดใช้งานสองคน มันไม่ได้เป็นเรื่องที่น่าประหลาดใจนัก แต่มันเป็นการดีที่จะเข้าใจมันมากขึ้น

2
อัลกอริทึมสำหรับปัญหาการมอบหมายทั่วไปหลายต่อหลายคน
ฉันดูเหมือนจะไม่พบวรรณกรรมใด ๆ เกี่ยวกับอัลกอริทึมที่สามารถใช้ในการแก้ปัญหาการมอบหมายทั่วไปแบบหลายต่อหลายคน (GAP) เช่นแบบจำลองที่ไม่เพียง แต่สามารถมอบหมายงานเพิ่มเติมให้กับตัวแทนเพียงคนเดียวเท่านั้น มอบหมายให้กับภารกิจเดียว (หนึ่งต่อหนึ่งและหนึ่งต่อหลาย AP ถูกกล่าวถึงในกระดาษโดย Pentico) ฉันรู้ปัญหาเกี่ยวกับการมอบหมายถัดไป แต่ฉันพบปัญหาเช่นนี้ในระหว่างการวิจัยของฉันและต้องการทราบเพิ่มเติมเกี่ยวกับวิธีการแก้ปัญหา เป็นไปได้ไหมที่ GAP หลายต่อหลายคนนั้นเป็นที่รู้จักภายใต้ชื่ออื่นหรือมีเหตุผลที่แตกต่างกันว่าทำไมจึงมีวรรณกรรมน้อยมากที่สามารถพบได้ Pentico, D. ปัญหาการมอบหมายงาน: โกลเด้นฉลองครบรอบการสำรวจ วารสารวิจัยการปฏิบัติการแห่งยุโรป (2550); 176 (2): 774-793

4
Fortuna หรือ Mersenne Twister เป็นที่นิยมในฐานะอัลกอริทึม RNG หรือไม่?
คำตอบที่ผ่านมากล่าวถึงการใช้งานของFortunaหรือMersenne Twisterจำนวนสุ่มปั่นไฟ ( RNGs ) เพื่อเมล็ดจำลอง Monte Carlo ฉันไม่เคยได้ยิน Fortuna มาก่อนดังนั้นฉันจึงค้นหามัน - ดูเหมือนว่ามันมีไว้สำหรับการใช้งานการเข้ารหัสลับเป็นหลัก ปัจจุบันฉันใช้ Mersenne Twister ในรหัสการผลิตเพื่อเริ่มต้นอัลกอริทึม K-Means (Fortuna หรือ Mersenne Twister) ใดที่ถือว่าดีที่สุดสำหรับแอปพลิเคชัน "การสร้างอัลกอริทึม" (เช่นการเพาะเมล็ด Monte Carlo และ K-Means) หรือมันคือ "toss up" - เช่นใช้สะดวกที่สุด จากจุดที่ฉันกำลังนั่ง "ดีที่สุด" ควรให้ตัวเลขสุ่มคุณภาพสูงทำงานได้อย่างรวดเร็วและ (อาจ) มีพื้นที่หน่วยความจำเหลือน้อย ของเหล่านี้คุณภาพน่าจะเป็นสิ่งสำคัญที่สุดสำหรับเราส่วนใหญ่

6
ฉันจะเขียนโค้ดผู้ไม่เชื่อเรื่องพระเจ้าได้อย่างไร
ฉันมักจะพบว่าตัวเองกำลังเขียนโค้ดที่คล้ายกันมากสำหรับรุ่นหนึ่งสองและสามมิติของการดำเนินการ / อัลกอริทึมที่กำหนด การบำรุงรักษาเวอร์ชันเหล่านี้ทั้งหมดอาจกลายเป็นเรื่องน่าเบื่อ การสร้างโค้ดอย่างง่ายนั้นใช้งานได้ดี แต่ดูเหมือนว่าจะต้องมีวิธีที่ดีกว่า มีวิธีที่ค่อนข้างง่ายในการเขียนการดำเนินการเพียงครั้งเดียวและมีการพูดคุยกับมิติที่สูงขึ้นหรือต่ำลงหรือไม่? ตัวอย่างที่ชัดเจนประการหนึ่งคือสมมติว่าฉันต้องการคำนวณการไล่ระดับสีของสนามความเร็วในอวกาศ ในสามมิติลูป Fortran จะมีลักษณะดังนี้: do k = 1, n do j = 1, n do i = 1, n phi(i,j,k) = ddx(i)*u(i,j,k) + ddx(j)*v(i,j,k) + ddx(k)*w(i,j,k) end do end do end do โดยที่ddxarray นั้นถูกกำหนดอย่างเหมาะสม (เราสามารถทำได้ด้วยการคูณเมทริกซ์) โค้ดสำหรับโฟลว์สองมิตินั้นเกือบจะเหมือนกันทุกประการยกเว้น: มิติที่สามถูกดร็อปจากลูปดัชนีและจำนวนของคอมโพเนนต์ มีวิธีที่ดีกว่าในการแสดงสิ่งนี้หรือไม่? อีกตัวอย่างคือ: สมมติว่าฉันมีความเร็วของของไหลที่กำหนดจุด - ฉลาดในตารางสามมิติ เพื่อสอดแทรกความเร็วไปยังตำแหน่งตามอำเภอใจ …

1
เหตุใด Octrees จึงใช้สำหรับการสลายตัวของ Multipole space
ในการใช้งานส่วนใหญ่ (ทั้งหมด?) ของวิธีการ Multipole อย่างรวดเร็ว (FMM), แปดจะใช้ในการย่อยสลายโดเมนที่เกี่ยวข้อง ในทางทฤษฎี octrees จะให้ขอบเขตปริมาตรอย่างง่ายซึ่งมีประโยชน์สำหรับการพิสูจน์รันไทม์ O (n) ของ FMM นอกเหนือจากเหตุผลทางทฤษฎีนี้จะมีประโยชน์ในการใช้ Octree มากกว่าโครงสร้างต้นไม้หรือโครงสร้างข้อมูลทั้งสามแบบ? การกำหนดรายการการโต้ตอบอาจทำได้ง่ายกว่าด้วย octree เนื่องจากเซลล์จะทราบเพื่อนบ้านที่อยู่ใกล้เคียง อย่างไรก็ตามรายการปฏิสัมพันธ์ไม่จำเป็นใช้ traversal ต้นไม้แบบไดนามิกมากขึ้นเช่นแบบ Dual ต้นไม้ข้าม อีกทางเลือกหนึ่งจะเป็นต้นไม้ kd ข้อเสียทางทฤษฎีข้อหนึ่งที่เป็นไปได้คือการก่อสร้างนั้นต้องการการดำเนินการหาค่ามัธยฐานแพง อย่างไรก็ตามมีหลายรุ่นของ kd-trees ที่ไม่จำเป็นต้องค้นหาค่ามัธยฐานในระหว่างการก่อสร้างแม้ว่าจะมีการแบ่งพื้นที่ที่มีประสิทธิภาพน้อยกว่าก็ตาม การใช้งานอย่างชาญฉลาดต้นไม้ kd นั้นง่ายมาก ทางเลือกมากยิ่งรุนแรงมากขึ้นอาจจะเป็นR-ต้นไม้ ดังนั้นคำถามของฉันคืออะไรเกี่ยวกับ Octrees ที่ทำให้พวกเขาเป็นทางเลือกที่ดีที่สุดสำหรับ FMM
18 algorithms 

2
มีอัลกอริทึมที่มีประสิทธิภาพสำหรับเศษส่วนต่อเนื่องที่มีค่าเมทริกซ์หรือไม่
สมมติว่าฉันมีสมการเมทริกซ์ที่กำหนดซ้ำเป็น A[n] = inverse([1 - b[n]A[n+1]]) * a[n] จากนั้นสมการสำหรับ A [1] จะดูคล้ายกับเศษส่วนต่อเนื่องซึ่งมีวิธีการที่มีประสิทธิภาพสูงบางอย่างที่หลีกเลี่ยงการคำนวณซ้ำที่น่าเบื่อ (ดู "สูตรอาหารเชิงตัวเลข" สำหรับตัวอย่างบางส่วน) อย่างไรก็ตามฉันสงสัยว่ามีวิธีการเปรียบเทียบที่อนุญาตให้สัมประสิทธิ์ b [n] และ [n] เป็นเมทริกซ์โดยมีข้อ จำกัด เพียงอย่างเดียวที่ b [n] A [n + 1] เป็นเมทริกซ์จตุรัสดังนั้นเมทริกซ์ 1 - b[n]A[n+1] กลับด้านได้จริง
18 algorithms 

3
ระยะทางแบบยุคลิดใน Octave
ฉันอยากรู้ว่ามีวิธีที่รวดเร็วในการคำนวณระยะทางแบบยุคลิดของเวกเตอร์สองตัวใน Octave หรือไม่ ดูเหมือนว่าไม่มีฟังก์ชั่นพิเศษสำหรับสิ่งนั้นดังนั้นฉันควรใช้สูตรด้วยsqrtหรือไม่

3
กลยุทธ์การเขียนโปรแกรมใดที่ฉันสามารถแก้ไขพารามิเตอร์อัลกอริทึมได้อย่างง่ายดาย
การพัฒนาอัลกอริธึมทางวิทยาศาสตร์เป็นกระบวนการที่ต้องทำซ้ำบ่อย ๆ ซึ่งเกี่ยวข้องกับการเปลี่ยนแปลงพารามิเตอร์จำนวนมากที่ฉันต้องการจะเปลี่ยนแปลงไม่ว่าจะเป็นส่วนหนึ่งของการออกแบบการทดลองของฉันหรือเป็นส่วนหนึ่งของประสิทธิภาพอัลกอริธึม tweaking ฉันสามารถใช้กลยุทธ์ใดในการจัดโครงสร้างพารามิเตอร์เหล่านี้เพื่อให้ฉันสามารถเปลี่ยนแปลงได้อย่างง่ายดายระหว่างการทำซ้ำและเพื่อให้สามารถเพิ่มพารามิเตอร์ใหม่ได้อย่างง่ายดาย

3
การใช้แผนที่พาวเวอร์ซีรีส์
ฉันมาจากสาขาวิชาฟิสิกส์เร่งความเร็วที่เกี่ยวข้องกับวงแหวนจัดเก็บแบบวงกลมโดยเฉพาะสำหรับแหล่งกำเนิดแสงซินโครตรอน อิเล็กตรอนพลังงานสูงหมุนเวียนรอบวงแหวนซึ่งถูกนำทางด้วยสนามแม่เหล็ก อิเล็กตรอนไหลเวียนหลายพันล้านครั้งและต้องการทำนายเสถียรภาพ คุณสามารถอธิบายการเคลื่อนที่ของอิเล็กตรอนที่จุดหนึ่งในวงแหวนในแง่ของพื้นที่เฟส (ตำแหน่ง, พื้นที่โมเมนตัม) การหมุนแต่ละรอบวงแหวนอนุภาคจะกลับสู่ตำแหน่งและโมเมนตัมใหม่ซึ่งจะกำหนดแผนที่ในพื้นที่เฟสที่เรียกว่า "one-turn map" เราอาจสมมติว่ามีจุดคงที่ที่จุดกำเนิดและเพื่อให้สามารถขยายในชุดพลังงาน ดังนั้นเราต้องการทราบเกี่ยวกับความเสถียรของแผนที่อนุกรมกำลังซ้ำ มีคำถามที่ยากมากเกี่ยวกับเรื่องนี้และหัวข้อนี้มีประวัติเก่าแก่ มีการนำไลบรารี่จำนวนมากมาใช้เพื่อนำไปใช้เรียกว่า Truncated Power Series Algebra (ดูเช่นบทความนี้เกี่ยวกับ zlib โดย Y. Yan พื้นหลังเพิ่มเติมเกี่ยวกับฟิสิกส์และอีกวิธีหนึ่งในการวิเคราะห์เป็นวิธีแบบปกติเช่น Bazzani และ อัล ที่นี่ ) คำถามคือวิธีการใช้ไลบรารีดังกล่าวและวิธีแก้ปัญหาเสถียรภาพ วิธีการหลักที่ใช้ในการเคลื่อนที่ของลำแสงเป็นการวิเคราะห์แบบปกติซึ่งฉันไม่เชื่อว่าประสบความสำเร็จ ฉันสงสัยว่าวิธีการทางสเปกตรัมบางอย่างได้รับการพัฒนาในสาขาอื่น (อาจเป็นไปตามแนวของบางอย่างเช่นนี้หรือไม่?) บางคนสามารถนึกถึงโดเมนอื่นที่มีการวิเคราะห์ความเสถียรในระยะยาวของแผนที่ซีรีย์พลังงานที่มีจุดคงที่ที่จุดกำเนิดดังนั้นเราอาจแบ่งปันความรู้หรือรับแนวคิดใหม่ ๆ ตัวอย่างหนึ่งที่ฉันรู้คืองานของฟิชแมนและ "โหมดเร่งความเร็ว" ในฟิสิกส์อะตอม มีคนอื่นไหม? ระบบอื่นใดที่สามารถสร้างแบบจำลองเป็นโรเตอร์เตะหรือแผนที่ Henon

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