도구스학업·수학

입자 군집 최적화(PSO) 계산기

입자 여러 개가 자기 최고기록(pbest)과 무리 최고기록(gbest) 쪽으로 속도를 갱신하며 목적함수의 최솟값을 찾아가는 과정을 세대별로 보여줍니다. edu/genetic-algorithm·edu/gradient-descent와는 갱신 규칙이 전혀 다른 최적화 갈래입니다.

찾은 최솟값

f(-0.5644) = -1.244045

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

입자 수30
반복 횟수100

무리 최고기록(gbest)의 개선 과정 (앞 60단계)

#gbest xgbest 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
갱신 규칙 세 가지 힘의 합입니다. 관성(w)은 지금까지 가던 방향을 유지하려는 힘, 인지 계수(c₁)는 자기 자신의 최고기록으로 끌리는 힘, 사회 계수(c₂)는 무리 전체의 최고기록으로 끌리는 힘입니다. 매 걸음 다시 뽑는 난수(r₁, r₂)가 같은 힘도 매번 세기를 다르게 만들어 조기 수렴을 막습니다.
유전 알고리즘·경사하강법과 다른 점. 유전 알고리즘은 개체를 세대마다 새로 만드는 데 반해, PSO는 입자 수가 고정된 채 속도 벡터를 갱신하며 연속 공간을 이동합니다. 경사하강법과 달리 미분을 계산할 필요가 없어 미분 불가능한 목적함수에도 쓸 수 있지만, 결과가 매번 똑같다는 보장은 없습니다.

계산 방법

  1. 1목적함수를 x의 식으로 입력합니다.
  2. 2입자 수·반복 횟수와 관성·인지·사회 계수를 정합니다.
  3. 3반복이 진행되며 무리 최고기록(gbest)이 어떻게 좋아지는지 확인합니다.
  4. 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일 · 결과는 참고용 추정치입니다.