อ่าน 3 นาที
วิธีการเดินเร็ว
วิธี การเดินเร็ว [ 1 ] เป็น วิธีการเชิงตัวเลข ที่สร้างขึ้นโดย James Sethian เพื่อแก้ ปัญหาค่าขอบเขต ของ สมการ Eikonal :
วิธีการเดินเร็ว
วิธีการเดินเร็ว[ 1 ]เป็นวิธีการเชิงตัวเลขที่สร้างขึ้นโดยJames Sethianเพื่อแก้ปัญหาค่าขอบเขตของสมการ Eikonal :
โดยทั่วไป ปัญหาดังกล่าวอธิบายถึงวิวัฒนาการของพื้นผิวปิดที่เป็นฟังก์ชันของเวลาด้วยความเร็วในทิศทางตั้งฉากกับจุดหนึ่งบนพื้นผิวที่กำลังขยายตัว ฟังก์ชันความเร็วจะถูกกำหนด และเวลาที่เส้นขอบตัดผ่านจุดหนึ่งจะได้รับจากการแก้สมการ หรืออีกนัยหนึ่งอาจมองว่าเป็นเวลาขั้นต่ำที่ต้องใช้ในการเดินทางจากจุดหนึ่งไปยังอีกจุดหนึ่งวิธีการเดินหน้าอย่างรวดเร็ว (Fast Marching Method) ใช้ประโยชน์จากการตีความปัญหาในแง่ ของ การควบคุมที่เหมาะสมที่สุดเพื่อสร้างคำตอบจาก "ข้อมูลที่ทราบ" กล่าวคือ ค่าขอบเขต
อัลกอริทึมนี้คล้ายกับอัลกอริทึมของ Dijkstraและใช้ประโยชน์จากข้อเท็จจริงที่ว่าข้อมูลจะไหลออกไปจากพื้นที่เริ่มต้นเท่านั้น ปัญหานี้เป็นกรณีพิเศษของวิธีการระดับเซตอัลกอริทึมที่ครอบคลุมกว่านี้ก็มีอยู่แต่โดยปกติแล้วจะทำงานช้ากว่า
ส่วนขยายสำหรับการแก้ปัญหาโดเมนที่ไม่แบนราบ (แบบสามเหลี่ยม)
สำหรับพื้นผิวและนั้น ได้รับการแนะนำโดยรอน คิมเมลและเจมส์ เซเธียน
- เขาวงกตเป็นฟังก์ชันความเร็วหาเส้นทางที่สั้นที่สุด
- แผนที่ระยะทางแบบหลายสเตนซิลพร้อมจุดเริ่มต้นแบบสุ่ม
อัลกอริทึม
ขั้นแรก สมมติว่าโดเมนได้ถูกแบ่งออกเป็นตาข่ายแล้ว เราจะเรียกจุดในตาข่ายว่าโหนด แต่ละโหนดจะมีค่าที่สอดคล้องกัน
อัลกอริทึมนี้ทำงานเหมือนกับอัลกอริทึมของ Dijkstra แต่แตกต่างกันในวิธีการคำนวณค่าของโหนด ในอัลกอริทึมของ Dijkstra ค่าของโหนดจะถูกคำนวณโดยใช้ค่าของโหนดข้างเคียงเพียงโหนดเดียว อย่างไรก็ตาม ในการแก้สมการเชิงอนุพันธ์ย่อย (PDE)จะ ใช้ค่าระหว่าง โหนด ข้างเคียงกับค่าของโหนดข้างเคียง
โหนดต่างๆ จะถูกติดป้ายกำกับเป็นไกล (ยังไม่เคยเยี่ยมชม), พิจารณาแล้ว (เยี่ยมชมแล้วและกำหนดค่าเบื้องต้นแล้ว) และยอมรับแล้ว (เยี่ยมชมแล้วและกำหนดค่าถาวรแล้ว)
- กำหนด ค่าให้กับทุกโหนดและติดป้ายกำกับว่าfar ; สำหรับทุกโหนดให้กำหนดค่าและติดป้ายกำกับว่าaccepted
- สำหรับโหนดที่อยู่ไกลทุกโหนดให้ใช้สูตรการอัปเดต Eikonalเพื่อคำนวณค่าใหม่สำหรับถ้าเป็นเช่นนั้น ให้ตั้งค่าและติดป้ายกำกับเป็น ค่า ที่พิจารณาแล้ว
- ให้เป็นโหนดที่พิจารณาซึ่งมีค่าต่ำที่สุดกำหนดให้ เป็นโหนดที่ ได้รับ การยอมรับ
- สำหรับเพื่อนบ้านทุกรายที่ ไม่ได้รับการยอมรับ ให้คำนวณค่าเบื้องต้น
- ถ้าตั้งค่าเป็น. ถ้าถูกระบุว่าไกลให้เปลี่ยนป้ายกำกับเป็นพิจารณาแล้ว
- หากมี โหนด ที่พิจารณาอยู่ ให้กลับไปที่ขั้นตอนที่ 3 มิฉะนั้น ให้ยุติการทำงาน
ดูเพิ่มเติม
ลิงก์ภายนอก
- วิธีการที่คล้ายกับวิธีของ Dijkstra สำหรับสมการ Eikonal โดย JN Tsitsiklis, 1995
- วิธีการเดินเร็วและการประยุกต์ใช้ โดย เจมส์ เอ. เซเธียน
- วิธีการเดินเร็วแบบใช้แม่แบบหลายแบบ
- การใช้งาน Multi-Stencils Fast Marching ใน Matlab
- รายละเอียดการนำวิธีการเดินแถวเร็วไปใช้
- วิธีการ Fast Marching ทั่วไปโดย Forcadel et al. [2008] สำหรับการประยุกต์ใช้ในการแบ่งส่วนภาพ
- การนำวิธีการ Fast Marching Method มาใช้ในภาษา Python
- ดูบทที่ 8 ในหนังสือ Design and Optimization of Nano-Optical Elements by Coupling Fabrication to Optical Behavior ที่เก็บถาวรไว้เมื่อวันที่ 20 สิงหาคม 2013 ในWayback Machine
หมายเหตุ
- ^ JA Sethian. วิธีการกำหนดระดับการเดินขบวนอย่างรวดเร็วสำหรับแนวหน้าที่ก้าวหน้าอย่างต่อเนื่อง, Proc. Natl. Acad. Sci., 93, 4, หน้า 1591--1595, 1996. [1]
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ วิธีการเดินเร็ว
วิธี การเดินเร็ว [ 1 ] เป็น วิธีการเชิงตัวเลข ที่สร้างขึ้นโดย James Sethian เพื่อแก้ ปัญหาค่าขอบเขต ของ สมการ Eikonal :
อัลกอริทึม
ขั้นแรก สมมติว่าโดเมนได้ถูกแบ่งออกเป็นตาข่ายแล้ว เราจะเรียกจุดในตาข่ายว่าโหนด แต่ละโหนดจะมีค่าที่สอดคล้องกัน x ฉัน {\displaystyle x_{i}} ยู ฉัน = ยู ( x ฉัน ) ≈ คุณ ( x ฉัน ) {\displaystyle U_{i}=U(x_{i})\approx u(x_{i})}
ดูเพิ่มเติม
วิธีการกำหนดระดับ วิธีการกวาดอย่างรวดเร็ว อัลกอริทึมเบลล์แมน-ฟอร์ด
ลิงก์ภายนอก
วิธีการที่คล้ายกับวิธีของ Dijkstra สำหรับสมการ Eikonal โดย JN Tsitsiklis, 1995 วิธีการเดินเร็วและการประยุกต์ใช้ โดย เจมส์ เอ.