담금질 기법(시뮬레이티드 어닐링) 계산기
목적함수 위에서 온도를 낮춰가며 나쁜 해도 확률적으로 받아들이다가 점점 안 받아들이게 되는 담금질 기법(simulated annealing)의 탐색 과정을 단계별로 보여줍니다. edu/gradient-descent가 갇히는 지역최솟값을 무작위 수용으로 어떻게 피하는지 확인합니다.
찾은 최솟값
f(-0.5676) = -1.243995
격자 탐색 참값 f(-0.564) = -1.244045과 차이 0.000049
탐색 과정 (앞 60단계)
| # | T | 후보 x | Δ | 수용확률 | 받음? |
|---|---|---|---|---|---|
| 1 | 4.975 | 0.5083 | 1.2552 | 0.777 | 받음 |
| 2 | 4.9501 | 0.6181 | 0.0137 | 0.9972 | 받음 |
| 3 | 4.9254 | 2.4916 | 0.273 | 0.9461 | 받음 |
| 4 | 4.9007 | 2.943 | -0.449 | 1 | 받음 |
| 5 | 4.8762 | 3.8259 | -1.5632 | 1 | 받음 |
| 6 | 4.8519 | 3.5291 | -0.0139 | 1 | 받음 |
| 7 | 4.8276 | 5.5084 | 0.9221 | 0.8261 | 받음 |
| 8 | 4.8035 | 5.4636 | 0.0581 | 0.988 | 받음 |
| 9 | 4.7794 | 5.0785 | 0.7815 | 0.8492 | 받음 |
| 10 | 4.7556 | 3.6965 | -1.8535 | 1 | 받음 |
| 11 | 4.7318 | 3.6531 | -0.001 | 1 | 받음 |
| 12 | 4.7081 | 1.9226 | 0.7381 | 0.8549 | 받음 |
| 13 | 4.6846 | 2.991 | 0.7977 | 0.8434 | 받음 |
| 14 | 4.6612 | 1.7545 | -1.1654 | 1 | 받음 |
| 15 | 4.6378 | -0.0746 | -0.0524 | 1 | 받음 |
| 16 | 4.6147 | -0.3651 | -0.802 | 1 | 받음 |
| 17 | 4.5916 | -0.0035 | 1.0485 | 0.7958 | 거부 |
| 18 | 4.5686 | -1.1856 | 1.0711 | 0.791 | 받음 |
| 19 | 4.5458 | -0.5531 | -1.2537 | 1 | 받음 |
| 20 | 4.5231 | -0.3687 | 0.176 | 0.9618 | 받음 |
| 21 | 4.5004 | -1.5975 | 1.692 | 0.6866 | 거부 |
| 22 | 4.4779 | -0.5522 | -0.1759 | 1 | 받음 |
| 23 | 4.4555 | 0.5295 | 2.5098 | 0.5693 | 거부 |
| 24 | 4.4333 | -1.5949 | 1.8681 | 0.6561 | 거부 |
| 25 | 4.4111 | -1.9391 | 1.4141 | 0.7257 | 받음 |
| 26 | 4.389 | -2.2863 | -0.8312 | 1 | 받음 |
| 27 | 4.3671 | -3.2895 | 1.7044 | 0.6769 | 받음 |
| 28 | 4.3453 | -2.3851 | -1.8683 | 1 | 받음 |
| 29 | 4.3235 | -2.0797 | 0.6481 | 0.8608 | 받음 |
| 30 | 4.3019 | -3.0211 | 0.2187 | 0.9504 | 받음 |
| 31 | 4.2804 | -2.5322 | -0.9751 | 1 | 받음 |
| 32 | 4.259 | -1.0691 | 0.617 | 0.8651 | 받음 |
| 33 | 4.2377 | 0.8884 | 1.2016 | 0.7531 | 받음 |
| 34 | 4.2165 | 0.4976 | 0.362 | 0.9177 | 받음 |
| 35 | 4.1954 | 1.2065 | -1.1679 | 1 | 받음 |
| 36 | 4.1745 | 3.017 | 0.8023 | 0.8252 | 거부 |
| 37 | 4.1536 | 1.9775 | 0.231 | 0.9459 | 받음 |
| 38 | 4.1328 | 3.3151 | -0.3453 | 1 | 받음 |
| 39 | 4.1122 | 5.0505 | 1.3662 | 0.7173 | 받음 |
| 40 | 4.0916 | 3.2083 | -1.0493 | 1 | 받음 |
| 41 | 4.0711 | 4.683 | 1.3103 | 0.7248 | 받음 |
| 42 | 4.0508 | 6.2079 | 0.0726 | 0.9822 | 받음 |
| 43 | 4.0305 | 7.9515 | 1.036 | 0.7733 | 받음 |
| 44 | 4.0104 | 6.6165 | 0.4926 | 0.8844 | 받음 |
| 45 | 3.9903 | 8.4121 | 0.8715 | 0.8038 | 받음 |
| 46 | 3.9704 | 10 | -0.3256 | 1 | 받음 |
| 47 | 3.9505 | 8.6521 | 1.0855 | 0.7598 | 받음 |
| 48 | 3.9308 | 7.1224 | -1.3327 | 1 | 받음 |
| 49 | 3.9111 | 6.7274 | -0.0431 | 1 | 받음 |
| 50 | 3.8916 | 6.0247 | -2.4625 | 1 | 받음 |
| 51 | 3.8721 | 6.6549 | 2.307 | 0.5511 | 받음 |
| 52 | 3.8527 | 6.7811 | 0.241 | 0.9394 | 받음 |
| 53 | 3.8335 | 8.0131 | -0.7191 | 1 | 받음 |
| 54 | 3.8143 | 9.43 | 1.6121 | 0.6553 | 받음 |
| 55 | 3.7952 | 8.0871 | -1.4367 | 1 | 받음 |
| 56 | 3.7763 | 7.3001 | 0.1893 | 0.9511 | 받음 |
| 57 | 3.7574 | 6.4599 | -0.5006 | 1 | 받음 |
| 58 | 3.7386 | 5.0348 | -1.3191 | 1 | 받음 |
| 59 | 3.7199 | 5.6531 | -1.007 | 1 | 받음 |
| 60 | 3.7013 | 5.8493 | 0.1827 | 0.9518 | 받음 |
계산 방법
- 1목적함수를 x의 식으로 입력합니다(예: sin(3*x)+0.5*sin(x)+0.05*x^2).
- 2시작 온도·냉각률·걸음 크기·반복 횟수를 정합니다.
- 3나쁜 후보도 받아들이는(파란 점) 단계가 초반에 많다가, 온도가 식으며 점점 줄어드는 것을 확인합니다.
- 4찾은 최선값을 격자 탐색으로 구한 참값과 견주어 봅니다.
자주 묻는 질문
금속을 뜨겁게 달궜다가 서서히 식히면 원자가 낮은 에너지 상태로 재배열되는 것에서 이름을 딴 전역 최적화 기법입니다. 온도가 높을 때는 지금보다 나쁜 해로도 자주 이동해 넓게 둘러보다가, 온도가 식을수록 나쁜 이동을 거의 안 받아들여 점점 좋은 해로만 움직입니다.
후보 해가 지금보다 좋으면(Δ=후보 비용−현재 비용 ≤ 0) 항상 받아들입니다. 나쁘면(Δ>0) 확률 exp(−Δ/T)로만 받아들입니다. 온도 T가 높으면 이 확률이 1에 가까워 나쁜 이동도 잘 받아들이고, T가 낮으면 0에 가까워져 사실상 안 받아들입니다.
경사하강법은 항상 더 낮은 쪽으로만 움직여 결정론적이지만, 시작점 근처의 지역최솟값에 갇히면 빠져나올 수 없습니다. 담금질 기법은 확률적으로 나쁜 쪽으로도 움직일 수 있어 지역최솟값을 넘어 더 좋은(전역에 가까운) 해를 찾을 가능성이 있습니다. 대신 매번 같은 결과가 나온다는 보장은 없습니다.
반복마다 온도를 얼마나 빨리 낮출지 정하는 값입니다. 이 계산기는 T(i) = T₀ × 냉각률^i (기하 냉각)를 씁니다. 냉각률이 1에 가까울수록(예: 0.999) 천천히 식어 더 오래 넓게 탐색하고, 작을수록(예: 0.9) 빨리 식어 초반에 결정된 방향으로 빠르게 수렴합니다.
보장되지 않습니다. 담금질 기법은 확률적 방법이라 매번 다른 경로로 탐색하며, 반복 횟수·냉각 속도·걸음 크기에 따라 결과가 달라질 수 있습니다. 이 계산기는 참고용으로 아주 촘촘한 격자 탐색으로 구한 값과 나란히 보여줘 얼마나 가까운지 확인할 수 있게 했습니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 반복 횟수는 최대 2,000번까지 지원합니다.
- 난수는 시드 하나로 도는 결정적 생성기를 써서, 같은 시드·같은 설정이면 항상 같은 결과가 나옵니다.
- 목적함수는 x 하나만 변수로 쓰는 식만 지원합니다.
- 탐색 범위를 벗어나는 후보는 범위 경계로 잘립니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.