입자 군집 최적화(PSO) 계산기
입자 여러 개가 자기 최고기록(pbest)과 무리 최고기록(gbest) 쪽으로 속도를 갱신하며 목적함수의 최솟값을 찾아가는 과정을 세대별로 보여줍니다. edu/genetic-algorithm·edu/gradient-descent와는 갱신 규칙이 전혀 다른 최적화 갈래입니다.
찾은 최솟값
f(-0.5644) = -1.244045
격자 탐색 참값 f(-0.564) = -1.244045과 차이 -0.000001
무리 최고기록(gbest)의 개선 과정 (앞 60단계)
| # | gbest x | gbest f(x) |
|---|---|---|
| 1 | -0.5806 | -1.242818 |
| 2 | -0.5806 | -1.242818 |
| 3 | -0.5806 | -1.242818 |
| 4 | -0.5806 | -1.242818 |
| 5 | -0.5634 | -1.244041 |
| 6 | -0.5634 | -1.244041 |
| 7 | -0.5634 | -1.244041 |
| 8 | -0.5634 | -1.244041 |
| 9 | -0.5634 | -1.244041 |
| 10 | -0.5634 | -1.244041 |
| 11 | -0.5634 | -1.244041 |
| 12 | -0.5634 | -1.244041 |
| 13 | -0.5634 | -1.244041 |
| 14 | -0.5634 | -1.244041 |
| 15 | -0.5634 | -1.244041 |
| 16 | -0.5634 | -1.244041 |
| 17 | -0.5634 | -1.244041 |
| 18 | -0.5634 | -1.244041 |
| 19 | -0.5634 | -1.244041 |
| 20 | -0.5634 | -1.244041 |
| 21 | -0.5634 | -1.244041 |
| 22 | -0.5634 | -1.244041 |
| 23 | -0.5634 | -1.244041 |
| 24 | -0.5634 | -1.244041 |
| 25 | -0.5634 | -1.244041 |
| 26 | -0.5634 | -1.244041 |
| 27 | -0.5634 | -1.244041 |
| 28 | -0.5634 | -1.244041 |
| 29 | -0.5637 | -1.244043 |
| 30 | -0.5637 | -1.244043 |
| 31 | -0.5644 | -1.244045 |
| 32 | -0.5644 | -1.244045 |
| 33 | -0.5644 | -1.244045 |
| 34 | -0.5644 | -1.244045 |
| 35 | -0.5644 | -1.244045 |
| 36 | -0.5644 | -1.244045 |
| 37 | -0.5644 | -1.244045 |
| 38 | -0.5644 | -1.244045 |
| 39 | -0.5644 | -1.244045 |
| 40 | -0.5644 | -1.244045 |
| 41 | -0.5644 | -1.244045 |
| 42 | -0.5644 | -1.244045 |
| 43 | -0.5644 | -1.244045 |
| 44 | -0.5644 | -1.244045 |
| 45 | -0.5644 | -1.244045 |
| 46 | -0.5644 | -1.244045 |
| 47 | -0.5644 | -1.244045 |
| 48 | -0.5644 | -1.244045 |
| 49 | -0.5644 | -1.244045 |
| 50 | -0.5644 | -1.244045 |
| 51 | -0.5644 | -1.244045 |
| 52 | -0.5644 | -1.244045 |
| 53 | -0.5644 | -1.244045 |
| 54 | -0.5644 | -1.244045 |
| 55 | -0.5644 | -1.244045 |
| 56 | -0.5644 | -1.244045 |
| 57 | -0.5644 | -1.244045 |
| 58 | -0.5644 | -1.244045 |
| 59 | -0.5644 | -1.244045 |
| 60 | -0.5644 | -1.244045 |
계산 방법
- 1목적함수를 x의 식으로 입력합니다.
- 2입자 수·반복 횟수와 관성·인지·사회 계수를 정합니다.
- 3반복이 진행되며 무리 최고기록(gbest)이 어떻게 좋아지는지 확인합니다.
- 4찾은 최선값을 격자 탐색으로 구한 참값과 견주어 봅니다.
자주 묻는 질문
입자(가능한 해) 여러 개를 무작위로 흩뿌려 놓고, 각 입자가 «자기 자신이 겪은 최고기록(pbest)»과 «무리 전체의 최고기록(gbest)» 쪽으로 속도를 조금씩 끌어당기며 이동시켜 목적함수의 최솟값을 찾는 메타휴리스틱입니다. 새들이 먹이를 찾아 무리 지어 나는 모습에서 착안했습니다.
v ← w·v + c₁·r₁·(pbest−x) + c₂·r₂·(gbest−x), x ← x+v입니다. w(관성)는 지금까지 가던 방향을 얼마나 유지할지, c₁(인지 계수)은 자기 최고기록으로 끌리는 힘, c₂(사회 계수)는 무리 최고기록으로 끌리는 힘을 정합니다. r₁·r₂는 매 걸음 새로 뽑는 난수라 같은 힘도 매번 세기가 달라집니다.
유전 알고리즘은 이진 문자열 개체군에 선택·교차·돌연변이를 적용해 개체를 세대마다 새로 만듭니다. PSO는 개체(입자) 수가 고정된 채 속도 벡터를 갱신하며 연속 공간을 이동한다는 점에서 갱신 규칙 자체가 전혀 다릅니다.
경사하강법은 함수의 기울기(미분)를 계산할 수 있어야 하는 결정론적 하강법이라 지역최솟값에 갇히면 못 빠져나옵니다. PSO는 함수값만 알면 되고(미분 불가능한 함수에도 쓸 수 있음) 무리 전체가 함께 탐색해 지역최솟값을 넘어갈 가능성이 있지만, 매번 같은 결과가 나온다는 보장은 없습니다.
보장되지 않습니다. PSO는 확률적 방법이라 매번 다른 경로로 탐색하며, 입자 수·반복 횟수·계수에 따라 결과가 달라질 수 있습니다. 이 계산기는 참고용으로 아주 촘촘한 격자 탐색으로 구한 값과 나란히 보여줘 얼마나 가까운지 확인할 수 있게 했습니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 입자 수는 최대 60개, 반복 횟수는 최대 300번까지 지원합니다.
- 난수는 시드 하나로 도는 결정적 생성기를 써서, 같은 시드·같은 설정이면 항상 같은 결과가 나옵니다.
- 목적함수는 x 하나만 변수로 쓰는 식만 지원합니다.
- 입자 위치는 탐색 범위를 벗어나면 경계로 잘립니다.
- 입력한 값은 브라우저 안에서만 계산되며 서버로 전송되지 않습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.