ฉันได้ทำการทดสอบอุณหภูมิเริ่มต้นที่แตกต่างกันในขั้นตอนวิธีการอบแบบจำลองและสังเกตว่าอุณหภูมิเริ่มต้นมีผลต่อประสิทธิภาพของอัลกอริทึม
มีวิธีการคำนวณอุณหภูมิเริ่มต้นที่ดีหรือไม่?
ฉันได้ทำการทดสอบอุณหภูมิเริ่มต้นที่แตกต่างกันในขั้นตอนวิธีการอบแบบจำลองและสังเกตว่าอุณหภูมิเริ่มต้นมีผลต่อประสิทธิภาพของอัลกอริทึม
มีวิธีการคำนวณอุณหภูมิเริ่มต้นที่ดีหรือไม่?
คำตอบ:
เท่าที่สังเกตจากโทมัส Klimpel ในความคิดเห็นที่น่าจะได้รับการยอมรับบางอย่างมักจะใช้ซึ่งเท่ากับจะบอกว่า0.8ต่อไปนี้เป็นวิธีการทำซ้ำแบบง่าย ๆ เพื่อค้นหาอุณหภูมิเริ่มต้นที่เหมาะสมเสนอโดย Ben-Ameur ในปี 2004 [1] ในสิ่งต่อไปนี้tคือการเปลี่ยนแปลงในเชิงบวกอย่างเคร่งครัดmax tและmin tเป็นสถานะหลังและก่อนการเปลี่ยนแปลงδ tความแตกต่างของค่าใช้จ่ายE max t - E min tและπ min t 1ความน่าจะเป็นที่จะสร้างการเปลี่ยนแปลงtเมื่อสถานะพลังงานถูกกระจายไปตามการแจกแจงแบบคงที่
ที่N(ฉัน)หมายถึงชุดของเพื่อนบ้านของฉัน
สุดท้ายความน่าจะเป็นของการยอมรับการเปลี่ยนแปลงในเชิงบวกที ตอนนี้เราจะได้มีการประเมินχของการยอมรับความน่าจะเป็นχ ( T ) อยู่บนพื้นฐานของ "สุ่ม" ชุดSของการเปลี่ยนในเชิงบวก:
เราต้องการหาอุณหภูมิเช่นนั้นχ ( T 0 ) = χ 0โดยที่χ 0 ∈ ] 0 , 1 [คือความน่าจะเป็นที่ยอมรับที่เราปรารถนา
When gets close to we can stop. is now a good approximation of the wanted initial temperature . For more explantion, proofs and discussion, please see the first section of the original paper [1].
[1] Ben-Ameur, Walid. "Computing the initial temperature of simulated annealing." Computational Optimization and Applications 29, no. 3 (2004): 369-385.
this is a very advanced topic related to getting very tight optimums. my understanding, the initial temperature is generally considered part of a "temperature schedule" strategy for which there is some deep research. in other words both the initial temperature condition and the temperature decay algorithm (which you dont mention) affect the overall optimization results. simple strategies or heuristics for both often yield good or "good enough" results.
there is however at least one paper that studies the initial temperature alone.[1] the bottom line is that unless you are doing very advanced work, treating the initial temperature as a parameter of the problem and iterating over different initial temperatures as part of the overall optimization [after finding that it does indeed affect results] is a very reasonable and a probably widespread practice.
or, even just choosing an initial temperature that gives good results is also common (it would seem to be somewhat surprising & not be often that problem instance optimization results vary substantially from a "better" initial temperature parameter found by trial-and-error). as dhj pointed out some problems will be more sensitive than others to initial temperature.
[1] การคำนวณอุณหภูมิเริ่มต้นของการหลอมหลอม Ben-Ameur 2004
[2] ตารางการหลอมที่มีประสิทธิภาพจำลอง: Der Lam & Delosme
[3] การควบคุมอุณหภูมิสำหรับการจำลองการอบอ่อน Munakata & Nakamura