การผ่าที่ซ้อนกันบนกริดปกติ


9

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

แก้ไข ฉันเพิ่งพบว่ามีรหัสที่ทำสิ่งนี้: http://www.cise.ufl.edu/research/sparse/meshnd/

คำตอบ:


8

ใช่. ฉันเพิ่งเขียนโค้ดเพื่อทำสิ่งนี้

สมมติว่าคุณมีและเป็นที่ยอมรับว่ามีโหนดใบไม้ที่มี 100 จุดยอด หนึ่งสามารถกำหนดฟังก์ชันแบบเรียกซ้ำโดยที่อาร์กิวเมนต์คือ:nx×nY

  • ขนาดและออฟเซ็ตของโดเมนย่อยสี่เหลี่ยม
  • ตัวชี้ไปยังอาร์เรย์ที่จะเก็บการเรียงลำดับใหม่

รูทีนนั้นต้องคำนวณผลคูณของขนาดโลคัลเพื่อตัดสินใจว่าโดเมนมีขนาดเล็กพอที่จะเป็นใบไม้หรือไม่และถ้าเป็นเช่นนั้นให้เขียนดัชนีโหนดตามธรรมชาติของโหนดใบไม้ (พูดสำหรับ ) มิฉะนั้นตัดมิติข้อมูลย่อยที่ใหญ่ที่สุดส่วนที่เหลือและชิ้นส่วนด้านซ้ายแล้วเขียนดัชนีธรรมชาติของตัวคั่นnaเสื้อยูRaล.(x,Y)=x+Ynxnx×nY


ฉันเดาว่าคำถามของฉันมีมากขึ้น: การผ่าซ้อนกันจริงๆแล้วเป็นการแบ่งพื้นที่ซ้ำ ๆ เป็นครึ่ง ๆ ซ้ำ ๆ หรือไม่? นอกจากนี้ยังมีการสั่งให้จัดทำดัชนีขอบเขตก่อนหน้าขวาและซ้ายครึ่งหรือไม่ ฉันไม่เคยพบคำอธิบายง่ายๆเกี่ยวกับสิ่งที่เกิดขึ้น
Victor Liu

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

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