도구스학업·수학

담금질 기법(시뮬레이티드 어닐링) 계산기

목적함수 위에서 온도를 낮춰가며 나쁜 해도 확률적으로 받아들이다가 점점 안 받아들이게 되는 담금질 기법(simulated annealing)의 탐색 과정을 단계별로 보여줍니다. edu/gradient-descent가 갇히는 지역최솟값을 무작위 수용으로 어떻게 피하는지 확인합니다.

찾은 최솟값

f(-0.5676) = -1.243995

격자 탐색 참값 f(-0.564) = -1.244045과 차이 0.000049

최종 위치x = -3.5729, f(x) = 1.809163
나쁜 후보를 받아들인 횟수121 / 185
마지막 온도1.111461

탐색 과정 (앞 60단계)

#T후보 xΔ수용확률받음?
14.9750.50831.25520.777받음
24.95010.61810.01370.9972받음
34.92542.49160.2730.9461받음
44.90072.943-0.4491받음
54.87623.8259-1.56321받음
64.85193.5291-0.01391받음
74.82765.50840.92210.8261받음
84.80355.46360.05810.988받음
94.77945.07850.78150.8492받음
104.75563.6965-1.85351받음
114.73183.6531-0.0011받음
124.70811.92260.73810.8549받음
134.68462.9910.79770.8434받음
144.66121.7545-1.16541받음
154.6378-0.0746-0.05241받음
164.6147-0.3651-0.8021받음
174.5916-0.00351.04850.7958거부
184.5686-1.18561.07110.791받음
194.5458-0.5531-1.25371받음
204.5231-0.36870.1760.9618받음
214.5004-1.59751.6920.6866거부
224.4779-0.5522-0.17591받음
234.45550.52952.50980.5693거부
244.4333-1.59491.86810.6561거부
254.4111-1.93911.41410.7257받음
264.389-2.2863-0.83121받음
274.3671-3.28951.70440.6769받음
284.3453-2.3851-1.86831받음
294.3235-2.07970.64810.8608받음
304.3019-3.02110.21870.9504받음
314.2804-2.5322-0.97511받음
324.259-1.06910.6170.8651받음
334.23770.88841.20160.7531받음
344.21650.49760.3620.9177받음
354.19541.2065-1.16791받음
364.17453.0170.80230.8252거부
374.15361.97750.2310.9459받음
384.13283.3151-0.34531받음
394.11225.05051.36620.7173받음
404.09163.2083-1.04931받음
414.07114.6831.31030.7248받음
424.05086.20790.07260.9822받음
434.03057.95151.0360.7733받음
444.01046.61650.49260.8844받음
453.99038.41210.87150.8038받음
463.970410-0.32561받음
473.95058.65211.08550.7598받음
483.93087.1224-1.33271받음
493.91116.7274-0.04311받음
503.89166.0247-2.46251받음
513.87216.65492.3070.5511받음
523.85276.78110.2410.9394받음
533.83358.0131-0.71911받음
543.81439.431.61210.6553받음
553.79528.0871-1.43671받음
563.77637.30010.18930.9511받음
573.75746.4599-0.50061받음
583.73865.0348-1.31911받음
593.71995.6531-1.0071받음
603.70135.84930.18270.9518받음
메트로폴리스 수용 규칙. 후보가 지금보다 좋으면 (Δ≤0) 항상 받아들입니다. 나쁘면(Δ>0) 확률 exp(−Δ/T)로만 받아들여, 온도가 높을 땐 나쁜 이동도 자주 허용해 넓게 둘러보고 온도가 식을수록 점점 좋은 쪽으로만 움직이게 됩니다.
경사하강법과 다른 점. 경사하강법은 항상 낮은 쪽으로만 움직여 시작점 근처의 지역최솟값에 갇히면 못 빠져나옵니다. 담금질 기법은 확률적 으로 나쁜 쪽으로도 움직일 수 있어 지역최솟값을 넘어 더 좋은 해를 찾을 가능성이 있습니다 — 대신 결과가 매번 똑같다는 보장은 없습니다.

계산 방법

  1. 1목적함수를 x의 식으로 입력합니다(예: sin(3*x)+0.5*sin(x)+0.05*x^2).
  2. 2시작 온도·냉각률·걸음 크기·반복 횟수를 정합니다.
  3. 3나쁜 후보도 받아들이는(파란 점) 단계가 초반에 많다가, 온도가 식으며 점점 줄어드는 것을 확인합니다.
  4. 4찾은 최선값을 격자 탐색으로 구한 참값과 견주어 봅니다.

자주 묻는 질문

금속을 뜨겁게 달궜다가 서서히 식히면 원자가 낮은 에너지 상태로 재배열되는 것에서 이름을 딴 전역 최적화 기법입니다. 온도가 높을 때는 지금보다 나쁜 해로도 자주 이동해 넓게 둘러보다가, 온도가 식을수록 나쁜 이동을 거의 안 받아들여 점점 좋은 해로만 움직입니다.

후보 해가 지금보다 좋으면(Δ=후보 비용−현재 비용 ≤ 0) 항상 받아들입니다. 나쁘면(Δ>0) 확률 exp(−Δ/T)로만 받아들입니다. 온도 T가 높으면 이 확률이 1에 가까워 나쁜 이동도 잘 받아들이고, T가 낮으면 0에 가까워져 사실상 안 받아들입니다.

경사하강법은 항상 더 낮은 쪽으로만 움직여 결정론적이지만, 시작점 근처의 지역최솟값에 갇히면 빠져나올 수 없습니다. 담금질 기법은 확률적으로 나쁜 쪽으로도 움직일 수 있어 지역최솟값을 넘어 더 좋은(전역에 가까운) 해를 찾을 가능성이 있습니다. 대신 매번 같은 결과가 나온다는 보장은 없습니다.

반복마다 온도를 얼마나 빨리 낮출지 정하는 값입니다. 이 계산기는 T(i) = T₀ × 냉각률^i (기하 냉각)를 씁니다. 냉각률이 1에 가까울수록(예: 0.999) 천천히 식어 더 오래 넓게 탐색하고, 작을수록(예: 0.9) 빨리 식어 초반에 결정된 방향으로 빠르게 수렴합니다.

보장되지 않습니다. 담금질 기법은 확률적 방법이라 매번 다른 경로로 탐색하며, 반복 횟수·냉각 속도·걸음 크기에 따라 결과가 달라질 수 있습니다. 이 계산기는 참고용으로 아주 촘촘한 격자 탐색으로 구한 값과 나란히 보여줘 얼마나 가까운지 확인할 수 있게 했습니다.

전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 반복 횟수는 최대 2,000번까지 지원합니다.
  • 난수는 시드 하나로 도는 결정적 생성기를 써서, 같은 시드·같은 설정이면 항상 같은 결과가 나옵니다.
  • 목적함수는 x 하나만 변수로 쓰는 식만 지원합니다.
  • 탐색 범위를 벗어나는 후보는 범위 경계로 잘립니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.