본문으로 건너뛰기

© 2026 Molayo

Zenn헤드라인2026. 05. 16. 08:12

군집 지능과 유전 알고리즘 (Genetic Algorithm)

요약

본 글은 'Autonomous Warfare Evolution'이라는 게임에 구현된 군집 지능(Swarm Intelligence)과 유전 알고리즘(Genetic Algorithm)의 원리를 해설합니다. 특히, 단순한 최적해 수렴을 넘어 게임적인 재미와 밸런스를 유지하기 위해 성능 트레이드오프를 복잡하게 설계했음을 설명합니다. 유전 알고리즘의 한계점인 다양성 상실 문제를 해결하기 위해 '섬 모델(Island Model)'이라는 기법을 적용했으며, 승패 판정 시 AI가 너무 소극적이거나 지루한 전개가 되는 것을 방지하기 위한 다양한 플레이어 선택 옵션도 제시합니다.

핵심 포인트

  • 유전 알고리즘과 군집 지능의 원리가 게임 'Autonomous Warfare Evolution'에 구현되어 있다.
  • 단순 최적해 수렴을 넘어, 성능 트레이드오프를 복잡하게 설계하여 게임적인 밸런스를 확보했다.
  • 유전 알고리즘의 다양성 상실 문제 해결을 위해 '섬 모델(Island Model)' 기법이 적용되었다.
  • 승패 판정 시 AI가 소극적이 되는 것을 방지하기 위해 플레이어가 다양한 승리 조건 옵션을 선택할 수 있다.

개요

Steam에서 출시 / GitHub에서 공개한 Autonomous Warfare Evolution의 프로그램 중에서 사용되고 있는 군집 지능 (Swarm Intelligence)과 유전 알고리즘 (Genetic Algorithm)에 대해 해설할까 생각했으나, ChatGPT에게 코드를 읽게 했더니 상당히 적절하게 해설해 주었으므로 이 대화 로그를 공개하는 것만으로도 거의 충분하다고 생각한다.

일부, 정정/보충만 해두겠다.

대화 로그의 정정/보충 등

출시 직전 버전까지는 fp * rng라는 항은 없었고, 단순하게 각 파라미터 (Parameter)는 독립적이며, 올리면 에너지 소비가 지수적으로 올라가도록 설계했었다.

이 경우라면 비교적 안정적인 수렴해 (Convergence solution)가 있을 것 같았으나, 너무 단순하면 재미가 없을 것 같아 성능의 트레이드오프 (Trade-off)를 복잡화했다.

솔직하게 최적해 (Optimal solution)가 수렴하는 세계에서는 세대에 따라 강함이 성장해 나가는 것처럼 느껴지기 쉬우므로, 그것대로 게임다운 밸런스였을지도 모른다.

self_incompatibility

일본어로는 「자가불화합성 (自家不和合性)」이라 불리며, 게임 UI 상에서는 "SI"라고 표기하고 있다.

주로 식물에서, 자가 수분보다 다른 개체로부터의 수분을 우선하도록 이러한 특성을 갖추고 있는 것이 많다.

이 파라미터 (Parameter)만, 전투 중인 유닛 (Unit)의 거동에도 성능에도 관계하지 않는, 진화의 특성 파라미터 (Parameter)가 되어 있다.

게임 UI 상에서는 "xenogenic"이라고 표기하고 있다.

외래종을 의미한다.

유전 알고리즘 (Genetic Algorithm)은 「좋은 게놈 (Genome)」이 발견되면, 급속히 다양성이 상실되기 쉬우며, 그렇게 되면 국소해 (Local optimum)에서 벗어나기 어려워진다.

또한, 이번과 같이 관찰 요소가 큰 게임에서는 게놈 (Genome)이 다양성이 부족하면 보고 있기에 지루해지기 쉽다.

이 문제에 대한 대책으로서, 유전 알고리즘 (Genetic Algorithm)을 격리된 여러 개의 풀 (Pool) 위에서 실시하고, 때때로 게놈 (Genome)을 교류시키는 「섬 모델 (Island Model)」이라고 불리는 수법이 알려져 있다.

격리된 섬에서는 독자적인 생태계가 형성되기 쉽다는, 실제 세계의 현상을 그대로 응용하고 있다.

이것은 솔직히 코드의 잔해이며, 실제로는 다른 부분에서 승패 판정이 이루어지고 있다.

억지로 승패를 결정하는 것도 장단점이 있다.

특히 영토 지배율까지 승패 판정에 포함하면, 적극적으로 싸우지 않고 아슬아슬하게 이기는 듯한 AI가 적응적(Adaptive)이 될 가능성이 있다.

그렇게 되면 지뢰와 같은 소극적인 유닛 (Unit)끼리 서로 기다리는 듯한 구도가 되기 쉬워, 보고 있기에 템포가 나빠지기 쉽다.

또한, 지뢰형 유닛 (Unit)은 실전 투입 시 적진으로 향하지 않기 때문에, 플레이어의 조작 유닛 (Unit)으로서도 다루기 어렵다.

그래서 시간 종료 시의 판정 조건은 다음 조건 중에서 플레이어가 선택할 수 있도록 했다.

  • 유닛 (Unit) 수의 판정만
  • 유닛 (Unit)이 동수라면 영토 지배율의 판정을 포함
  • 승리 조건이 충족되지 않았다면 무승부로 처리

유전 알고리즘 (Genetic Algorithm)의 하이퍼파라미터 (Hyperparameter)를 조작하는 게임, 이라는 설정이다.

소스 코드와 게임에 대하여

Autonomous Warfare Evolution의 소스 코드는 MIT 라이세스 (License)로 공개하고 있다.

게임은 Steam에서 공개 중.

GitHub:

Steam:

AI 자동 생성 콘텐츠

본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0