Lanchester 법칙 입문
대규모 교전(수천 대 수천)을 물리 시뮬레이션으로 일일이 돌리면 너무 무겁습니다. 그래서 교전을 수식 한두 개로 추상화해 빠르게 푸는 모델이 있습니다. 그 뿌리가 1916년 항공공학자 Lanchester가 정립한 소모(attrition) 법칙입니다.
두 가지 소모 법칙
핵심은 "병력이 어떻게 줄어드는가"를 미분방정식으로 적는 것입니다. 그리고 무기의 형태가 법칙을 결정합니다.
도식 렌더링 중…
- 제곱법칙(Square Law) — 각 병력이 개별 표적을 조준하는 현대 직사화기. 손실률
dB/dt = -a·R. 여기서 전투력이 병력의 제곱에 비례합니다 → "수가 2배면 전투력은 4배." - 선형법칙(Linear Law) — 구역 전체를 때리는 area fire(고대 백병전·무유도 포격). 전투력이 병력에 선형으로 비례합니다.
💡 "집중의 수학적 우위" — 제곱법칙은 왜 병력을 집중시켜야 하는가를 수학으로 증명합니다. 같은 총 병력이라도 나눠 싸우면 제곱 효과를 못 받습니다. "각개격파"가 강력한 이유가 이 한 줄에 담겨 있습니다.
제곱법칙을 코드로 적으면, 왜 전력이 병력의 제곱인지 보존량에서 드러납니다.
# Lanchester 제곱법칙 — 조준 직사(각자 표적을 겨냥)
def attrition_step(blue, red, a, b, dt):
blue -= b * red * dt # 손실은 상대 병력에 비례
red -= a * blue * dt
return blue, red
# 보존량 a·blue² − b·red² 가 일정 → 전투력 ∝ 병력² (집중의 우위)
명중은 확률이다 — 살보(salvo)
실제 교전엔 "쏘면 맞는다"가 아니라 명중 확률이 있습니다. n발을 쏠 때 적어도 한 발이 맞을 확률은 살보식으로 계산합니다.
Ph_salvo = 1 − (1 − Ph)^n
Ph = 한 발 명중 확률, n = 발수
무기 한 종의 유효도는 대략 a = Ph_salvo × Pk × ROF(살보 명중 × 격파확률 × 발사율)로, "1 사수가 단위시간에 기대하는 격파 수"가 됩니다. 이 계수를 Lanchester 방정식에 넣어 다부대·혼성 무기 교전을 빠르게 풉니다.
⚠️ 검증 없는 OR 모델은 틀린다 — 추상 모델은 빠르지만, 계수(Pk·Ph)를 잘못 넣으면 결과가 통째로 어긋납니다. 추상 모델에서 빠르게 후보를 추리고, 물리 시뮬에서 실측한 격파율로 보정하는 다해상도 접근이 필요합니다.
왜 추상 모델인가
물리 시뮬은 정밀하지만 무겁습니다. Lanchester 같은 추상 모델은 군단급 교전을 밀리초에 풉니다 — 수천 entity의 교전 결과를 거의 즉시. 작전계획(COA) 수백 개를 빠르게 sweep하고, 유망한 것만 물리 시뮬로 정밀 검증하는 — 그 "빠른 1차 필터"가 추상 교전 모델의 자리입니다.
한 줄 정리
📌 Lanchester 법칙은 교전 소모를 수식화한다 — 제곱법칙(조준 직사, 전력 ∝ 병력², 집중의 우위)과 선형법칙(area fire). 명중은 살보 확률로 다루고, 추상 모델은 군단급 교전을 밀리초에 풀어 COA를 빠르게 거른 뒤 물리 시뮬로 보정한다.
