top of page

Differential Evolution


DE เป็น search algorithm ในกลุ่ม evolutionary algorithm (ข้อดีประการหนึ่งของกลุ่มนี้คือเราไม่ต้องกังวลว่า objective function หาอนุพันธ์ได้หรือไม่ ทั้งยังไม่ต้องกังวลปัญหา starting point ที่อาจนำไปสู่การลู่เข้า local min/max) คล้าย evolution strategies กับ genetic algorithms แต่ดีกว่า ES แบบเบสิกเพราะไม่ติดปัญหา step size แตกต่างจาก GA ทั้งวิธี encode พารามิเตอร์ การเลือก based vector และ recombination จะว่าไปมันคล้าย ๆ กับ Nelder-Mead กับ controlled random search ในแง่ที่ใช้ difference vector แต่ไม่จำกัดกลุ่มตัวอย่างอยู่แค่โครงสร้าง simplex ของพารามิเตอร์เหมือน Nelder-Mead และหลีกเลี่ยงข้อด้อยของ CRS ที่ว่ากันว่ามี selective pressure สูง บีบให้ประชากรลู่เข้าก่อนวัยอันควรอันเนื่องมาจากการแทนที่ประชากรตัวที่แย่ที่สุดด้วยประชากรตัวที่ดีกว่าทุกครั้งที่เจอ และนี่ยังเป็นเหตุให้เรา implement วิธี CRS แบบขนานได้ยากด้วย หนังสือสำหรับผู้สนใจอยากรู้ว่าทำไม DE เวิร์กและเหมาะกับเอาไปประยุกต์ในงานด้านไหน แต่ถ้าคุณอยากรู้แค่ DE ทำงานยังไง เปเปอร์ปี 1997 ของ Storn กับ Price ก็เพียงพอฮะ แต่ถ้าอยากแค่ลองเล่น Mathematica มี package ของ DE และ file exchange ของ MathWorks มีโค้ด MATLAB แจกฟรี ในหนังสือเองก็แจก DeMat เป็นกลุ่มโค้ด MATLAB สำหรับแก้ปัญหา function optimization ด้วย DE อยู่ในแผ่นซีดีที่มาพร้อม หนังสือมีจุดเด่นนอกเหนือจากการเปรียบเทียบ performance กับ optimizers ตัวอื่น ๆ อยู่ 2 ด้านหลัก ด้านแรกคือบทบาทของ control parameters แต่ละตัว (ซึ่งในเปเปอร์แทบไม่พูดถึงเลย) กับบทสุดท้าย ตัวอย่าง applications ต่าง ๆ ในบทความวิชาการ 2 ชิ้น เราใช้ DE เป็นเครื่องมือเล็ก ๆ ตัวหนึ่งช่วยหาพารามิเตอร์ที่ต้อง trade-off ระหว่างสมบัติสองอย่างที่ขัดแย้งกัน ... ก็เวิร์กดีฮะ แล้วค่อยหยิบหนังสืออ่านตามทีหลัง เอาไว้ตอบคำถามว่าทำไมมันเวิร์ก :)) หนังสือเขียนดี


bottom of page