อุณหภูมิเริ่มต้นในขั้นตอนวิธีการอบจำลอง


14

ฉันได้ทำการทดสอบอุณหภูมิเริ่มต้นที่แตกต่างกันในขั้นตอนวิธีการอบแบบจำลองและสังเกตว่าอุณหภูมิเริ่มต้นมีผลต่อประสิทธิภาพของอัลกอริทึม

มีวิธีการคำนวณอุณหภูมิเริ่มต้นที่ดีหรือไม่?


2
อุณหภูมิเริ่มต้นนั้นเกี่ยวข้องกับโดเมนปัญหาและพารามิเตอร์อื่น ๆ ที่คุณใช้เป็นส่วนหนึ่งในการไล่ระดับสีของอัลกอริทึม คุณสามารถให้บริบทเพิ่มเติมได้หรือไม่
dhj

คำตอบ:


9

เท่าที่สังเกตจากโทมัส Klimpel ในความคิดเห็นที่น่าจะได้รับการยอมรับบางอย่างมักจะใช้ซึ่งเท่ากับจะบอกว่า0.8ต่อไปนี้เป็นวิธีการทำซ้ำแบบง่าย ๆ เพื่อค้นหาอุณหภูมิเริ่มต้นที่เหมาะสมเสนอโดย Ben-Ameur ในปี 2004 [1] ในสิ่งต่อไปนี้tคือการเปลี่ยนแปลงในเชิงบวกอย่างเคร่งครัดmax tและmin tเป็นสถานะหลังและก่อนการเปลี่ยนแปลงδ tความแตกต่างของค่าใช้จ่ายE max t - E min tและπ min t 10.8เสื้อสูงสุดเสื้อmintδtEmaxtEmintความน่าจะเป็นที่จะสร้างการเปลี่ยนแปลงtเมื่อสถานะพลังงานถูกกระจายไปตามการแจกแจงแบบคงที่πmint1|N(mint)|t

ที่N(ฉัน)หมายถึงชุดของเพื่อนบ้านของฉัน

πผม=|ยังไม่มีข้อความ(ผม)|ประสบการณ์(-Eผม/T)ΣJ|ยังไม่มีข้อความ(J)|ประสบการณ์(-EJ/T)
N(i)i

สุดท้ายความน่าจะเป็นของการยอมรับการเปลี่ยนแปลงในเชิงบวกที ตอนนี้เราจะได้มีการประเมินχของการยอมรับความน่าจะเป็นχ ( T ) อยู่บนพื้นฐานของ "สุ่ม" ชุดSของการเปลี่ยนในเชิงบวก:exp(δt/T)tχ^χ(T)S

χ^(T)=tSπmint1|N(mint)|exp(δt/T)tSπmint1|N(mint)|=tSexp(Emaxt/T)tSexp(Emint/T).

เราต้องการหาอุณหภูมิเช่นนั้นχ ( T 0 ) = χ 0โดยที่χ 0] 0 , 1 [คือความน่าจะเป็นที่ยอมรับที่เราปรารถนาT0χ(T0)=χ0χ0]0,1[

T0SEmaxtEmintST1T0

Tn+1=Tnln(χ^(Tn))ln(χ0)1/p
, where p is a real number 1.

When χ^(Tn) gets close to χ0 we can stop. Tn is now a good approximation of the wanted initial temperature T0. 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.


3

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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.