superalgorithm


ผมได้ข้อคิดจากการเลือกใช้ algorithm ว่า algorithm ที่ดี ไปพ้นขั้นตอนใน algorithm นั้น ๆ เอง โดยต้อง ่เป็นการมองในภาพที่กว้างกว่านั้น คือ ต้องนับการเลือก algorithm ให้เป็นส่วนหนึ่งของ algorithm ด้วย

เมื่อก่อนยังนึกตัวอย่างดี ๆ ไม่ออก

แต่ก็พอจะ "รู้สึกเลา ๆ" จากตัวอย่างบางกรณี เช่น เมื่อเปลี่ยนวิธี finite difference ไปเป็น finite element แล้วทำให้คำนวณเสร็จเร็วขึ้นมาก แต่ไม่ชัดเจนนัก เพราะไม่เคยใช้ finite element เอง

จนไปอ่าน "Does God Play Dice" โดย Ian stewart เข้า (ชื่อแปลกดีครับ เอียน สตรีหวาด !) 

หนังสือเล่มนี้ พูดถึง deterministic chaos ทั้งเล่ม เขียนดีมาก ใครที่สนใจประวัติศาสตร์พัฒนาการทางคณิตศาสตร์สำหรับแก้ปัญหาของ dynamic system น่าจะลองหามาอ่านดู

เขาเล่าถึงวิธีการที่ Jaque laskar พยายาม simulate วิถีโคจรเทหวัตถุในระบบสุริยะ ซึ่งปรกติแล้ว ระบบสมการเชิงอนุพันธ์ที่เกี่ยวข้องจะเป็น chaotic system คือถ้า time step ใหญ่เกินในการ simulate จะเกิด chaos จากผลของการปัดเศษเสมอ (คำนวณซ้ำโดยวิธีเดิม แต่ต่างระบบคอมพิวเตอร์ ได้ผลไม่เหมือนกัน) ผลคือ จะทำนายล่วงหน้าไปสักปี ก็ต้องรอกันรากงอก เพราะต้องผ่านการทำนายไปตามลำดับเวลาที่ซอยให้เล็กมาก ๆๆๆ

ในการแก้สมการเชิงอนุพันธ์เชิงตัวเลข เขาต้องกำหนด time step ให้เวลาค่อย ๆ กระดิกไปทีละนิด แล้วปรับค่าที่เกี่ยวข้องให้เป็นปัจจุบัน เช่น จะทำนายล่วงหน้าปีที่ 100,000 ก็ต้องผ่านสถานะที่ปีที่ 0 - 99,999.99999 มาโดยตลอดก่อน ห้ามลัดลำดับ

นี่ขนาดว่าวิธีแก้สมการเชิงอนุพันธ์เชิงตัวเลข ถือว่า คุณภาพคับแก้ว แต่วิธีที่ว่าแน่ ๆ ยังรับมือไม่อยู่เมื่อต้องทำนายผ่านช่วงเวลาที่ยาวนานมาก

Laskar ใช้วิธีที่หลักแหลมมาก คือเขาแตกสมการเชิงอนุพันธ์ให้อยู่ในรูปแบบของอนุกรมอนันต์ (ตัวอย่างอนุกรมอนันต์ทางพีชคณิตก็เช่น Taylor series) โดยกลายเป็นสมการพีชคณิตยาวเหยียดหลายแสนพจน์ (ซึ่งใช้ซอฟท์แวร์ทำพีชคณิตมาช่วยตรงนี้ได้ ซึ่งจริง ๆ แล้วเป็นงานที่ยากไม่น้อย)

ดูเผิน ๆ เป็นการถอยหลังเข้าคลอง เพราะวิธีการ numerical method เกิดขึ้นในโลก ก็เพื่อเลี่ยงการใช้สมการพีชคณิตอย่างสิ้นเชิง

แต่สมการพีชคณิตมีข้อดีคือ เราสามารถกระโดดไปดูพฤติกรรมระบบ ณ จุดเวลาที่อยู่ค่อนข้างไกลมากได้ทันที

(ไกลมากเกินไม่ได้ เพราะเขาต้องประมาณการโดยการกุดหางอนุกรมพจน์ท้าย ๆ ทิ้ง ซึ่งหากทำนายไปไกลเกิน จะมี error กวนได้) โดยไม่ต้องผ่านลำดับเวลาทีละนิดอีก เพราะเป็น explicit form

ผลคือ Laskar สามารถทำนายวิถีโคจรต่าง ๆ ได้เร็วขึ้นหลายแสนเท่า 

เป็นการเปลี่ยน PC ให้กลายเป็นซูเปอร์คอมพิวเตอร์ดี ๆ นี่เอง

สิ่งที่น่าทึ่งของกรณีนี้ ผมมองว่าไม่ได้อยู่ในองค์ความรู้ เพราะใครที่ร่ำเรียนมา ต่างก็รู้

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

 

คำสำคัญ (Tags): #algorithm#dynamic system
หมายเลขบันทึก: 99200เขียนเมื่อ 28 พฤษภาคม 2007 17:46 น. ()แก้ไขเมื่อ 8 มิถุนายน 2012 07:11 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (2)
แจ่ม เลยครับ ชอบอ่านมากแนวนี้
พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท