ปล่อยให้เป็นฟังก์ชั่นที่ค่อนข้างดี (เช่นต่อเนื่องสร้างความแตกต่างไม่ได้มีค่าสูงสุดในท้องถิ่นมากเกินไปอาจเป็นเว้า ฯลฯ ) ฉันต้องการหาค่าสูงสุดของf : ค่าx ∈ R dที่ทำให้f ( x )มีขนาดใหญ่ที่สุดเท่าที่จะเป็นไปได้
หากฉันมีขั้นตอนการประเมินแม่นยำเกี่ยวกับอินพุตที่ฉันเลือกฉันสามารถใช้เทคนิคการเพิ่มประสิทธิภาพทางคณิตศาสตร์แบบมาตรฐาน: การปีนเขา, การไล่ระดับสี (เช่น, การไล่ระดับสีขึ้น), ฯลฯ อย่างไรก็ตามในแอปพลิเคชันของฉัน วิธีประเมินf ( x )อย่างแน่นอน ฉันมีวิธีประเมินค่าของf ( x ) แทน )
โดยเฉพาะอย่างยิ่งใดก็ตามและใด ๆεฉันมีพยากรณ์ว่าออกจะประมาณการของF ( x )และมีข้อผิดพลาดคาดว่าจะอยู่ที่ประมาณε เวลาทำงานของภาวนา oracle นี้เป็นสัดส่วน1 / ε 2 (มันถูกนำมาใช้โดยการจำลองชนิด; ความแม่นยำของการจำลองเพิ่มขึ้นด้วยสแควร์รูทของจำนวนการทดลองและฉันสามารถเลือกจำนวนการทดลองที่จะเรียกใช้ดังนั้นฉันสามารถเลือกความแม่นยำที่ต้องการ) ดังนั้นนี่จึงทำให้ฉัน วิธีที่จะได้รับการประมาณการความแม่นยำใด ๆ ที่ฉันต้องการ แต่ยิ่งแม่นยำฉันต้องการประมาณการเป็นอีกต่อไปมันจะพาฉัน
จาก oracle ที่มีเสียงดังนี้สำหรับมีเทคนิคใดในการคำนวณค่าสูงสุดของfอย่างมีประสิทธิภาพมากที่สุดหรือไม่? (หรือแม่นยำยิ่งขึ้นโดยการหาค่าสูงสุดโดยประมาณ) มีตัวแปรของการปีนเขา, การไล่ระดับสี ฯลฯ ซึ่งทำงานภายในรุ่นนี้หรือไม่?
แน่นอนฉันอาจจะแก้ไขค่าที่น้อยมากของและใช้เนินเขาปีนเขาหรือเชื้อสายลาดกับ Oracle นี้ทำให้เดียวกันεตลอด อย่างไรก็ตามสิ่งนี้อาจไม่มีประสิทธิภาพโดยไม่จำเป็น: เราอาจไม่ต้องการการประมาณที่แม่นยำใกล้กับจุดเริ่มต้นในขณะที่ความแม่นยำใกล้ถึงจุดสิ้นสุดเมื่อคุณมีค่าศูนย์ในโซลูชันมีความสำคัญมากขึ้น ดังนั้นมีวิธีใดที่จะใช้ประโยชน์จากความสามารถของฉันในการควบคุมความถูกต้องของการประมาณแบบไดนามิกเพื่อให้กระบวนการเพิ่มประสิทธิภาพมีประสิทธิภาพมากขึ้น เคยศึกษาปัญหาแบบนี้มาก่อนหรือไม่?