ดูเหมือนว่าจะมีฟังก์ชั่นทดสอบหลักสองประเภทสำหรับเครื่องมือเพิ่มประสิทธิภาพที่ไม่มีอนุพันธ์:
- เรือเดินสมุทรหนึ่งเส้นเหมือน ฟังก์ชัน Rosenbrock ff. พร้อมจุดเริ่มต้น
- ชุดของจุดข้อมูลจริงด้วยตัวแทรก
เป็นไปได้ไหมที่จะเปรียบเทียบว่า 10d Rosenbrock กับปัญหา 10d จริง ๆ
สามารถเปรียบเทียบได้หลายวิธี: อธิบายโครงสร้างของ minima ท้องถิ่น
หรือเรียกใช้ตัวเพิ่มประสิทธิภาพ ABC ใน Rosenbrock และปัญหาจริงบางอย่าง
แต่ทั้งคู่ดูยาก
(บางทีนักทฤษฎีและนักทดลองเป็นเพียงสองวัฒนธรรมที่แตกต่างกันมากดังนั้นฉันจะขอความฝัน?)
ดูสิ่งนี้ด้วย:
- คำถาม scicomp.SE: ใครจะได้รับชุดข้อมูล / ปัญหาการทดสอบที่ดีสำหรับการทดสอบอัลกอริทึม / กิจวัตร?
- เชื่องช้า "การทดสอบการวิเคราะห์: เรามีทุกอย่างผิด"เป็นการดูหมิ่น: "การเน้นไปที่การแข่งขัน ... บอกเราว่าอัลกอริธึมดีกว่า แต่ไม่ใช่ทำไม"
(เพิ่มในเดือนกันยายน 2014):
พล็อตด้านล่างเปรียบเทียบอัลกอริทึม DFO 3 รายการในฟังก์ชันทดสอบ 14 รายการใน 8d จาก 10 จุดเริ่มต้นแบบสุ่ม: BOBYQA PRAXIS SBPLX จากNLOpt
14 N มิติทดสอบฟังก์ชั่น Python ภายใต้gist.github จากMatlabนี้โดย A. Hedar × 10 เครื่องแบบจุดเริ่มต้นแบบสุ่มในกล่องขอบเขตของแต่ละฟังก์ชัน
ตัวอย่างเช่นบน Ackley แถวบนสุดแสดงว่า SBPLX นั้นดีที่สุดและ PRAXIS นั้นแย่มาก บน Schwefel แผงด้านล่างขวาแสดง SBPLX ค้นหาขั้นต่ำในจุดเริ่มต้นที่ 5 แบบสุ่ม
โดยรวมแล้ว BOBYQA นั้นดีที่สุดในวันที่ 1, PRAXIS เมื่อวันที่ 5 และ SBPLX (~ Nelder-Mead พร้อมการรีสตาร์ท) จากการทดสอบฟังก์ชั่น 7 จาก 13 โดย Powersum a tossup YMMV! โดยเฉพาะอย่างยิ่งจอห์นสันกล่าวว่า "ฉันขอแนะนำให้คุณอย่าใช้ฟังก์ชั่น - ค่า (ftol) หรือความคลาดเคลื่อนของพารามิเตอร์ (xtol) ในการปรับให้เหมาะสมทั่วโลก"
สรุป: อย่าเอาเงินทั้งหมดของคุณใส่ม้าตัวเดียวหรือทดสอบฟังก์ชั่นเดียว