유전 알고리즘 (Genetic Algorithm)

컴퓨터과학·AI
한 줄 정의: 생물의 진화 과정(선택·교배·돌연변이)을 흉내 내어 여러 세대를 거치며 점점 더 나은 해답을 찾아가는 최적화 알고리즘입니다.

쉽게 풀면

여러 후보 해답을 하나의 '개체군'이라고 생각해봅시다. 각 개체는 문제를 얼마나 잘 푸는지에 따라 점수(적합도)를 받습니다. 점수가 높은 개체들을 우선적으로 골라 서로 짝지어(교배) 다음 세대를 만들고, 가끔 무작위로 조금씩 바꾸는(돌연변이) 과정을 반복합니다. 이렇게 세대를 거듭할수록 평균적으로 더 좋은 해답을 가진 개체들이 살아남게 되는데, 이것이 바로 자연의 진화 과정을 모방한 유전 알고리즘의 원리입니다. 정답을 수학적으로 정확히 계산하기 어려운 복잡한 최적화 문제에서 '그럴듯하게 괜찮은' 답을 찾을 때 유용합니다.

왜 중요한가

유전 알고리즘은 수식으로 미분하거나 경사도를 계산하기 어려운, 복잡하고 불연속적인 최적화 문제에서도 비교적 쉽게 적용할 수 있다는 장점이 있어 공학 설계, 일정·경로 최적화, 하이퍼파라미터 탐색 등 다양한 실무 문제에 쓰입니다. 문제의 내부 구조를 몰라도 후보 해답을 평가하는 기준만 정의하면 되기 때문에, 이론적으로 최적해를 구하는 방법이 알려지지 않은 문제에 대한 실용적인 대안으로 자주 채택됩니다. 이런 특성 덕분에 유전 알고리즘은 진화연산이라는 더 넓은 연구 분야의 대표 기법으로 다뤄집니다.

논문에서는 이렇게 쓰입니다

"본 연구는 최적의 하이퍼파라미터 조합을 탐색하기 위해 유전 알고리즘(genetic algorithm)을 적용하여 100세대에 걸쳐 개체군을 진화시켰다."

이 문장은 "일일이 모든 조합을 시도하는 대신, 진화를 흉내 낸 방법으로 좋은 설정값을 점진적으로 찾아냈다"는 뜻입니다.

"다품종 소량생산 환경에서의 생산 일정 계획 문제를 유전 알고리즘으로 정식화하여 총 작업 완료 시간을 최소화하였다."

산업공학 분야에서는 여러 제약 조건이 얽힌 일정 계획 문제처럼 조합의 경우의 수가 매우 큰 문제를 유전 알고리즘으로 근사적으로 풀어내는 데 활용합니다.

"드론 경로 계획 문제에서 장애물 회피와 이동거리 최소화를 동시에 고려한 다목적 유전 알고리즘을 제안하였다."

로보틱스·제어 분야에서는 서로 상충하는 여러 목표를 동시에 만족시키는 해를 찾기 위해 다목적 유전 알고리즘 변형이 사용되기도 합니다.

조금 더 깊게 보면

유전 알고리즘의 성능은 선택(우수한 개체를 고르는 방식), 교배(두 개체의 특징을 섞는 방식), 돌연변이(무작위 변화를 주는 확률) 세 연산을 어떻게 설계하느냐에 크게 좌우됩니다. 특히 돌연변이 확률이 너무 낮으면 특정 해 주변에서만 맴도는 조기수렴 문제가, 너무 높으면 좋은 해를 찾아가는 수렴 속도가 느려지는 문제가 생기기 때문에, 논문에서는 이 균형을 어떻게 조절했는지가 실험 설계의 중요한 부분으로 다뤄집니다.

주의할 점

유전 알고리즘은 항상 최적의 답(global optimum)을 보장하지 않으며, 무작위성이 크게 개입하기 때문에 실행할 때마다 결과가 조금씩 달라질 수 있습니다. 또한 백트래킹처럼 모든 경우를 체계적으로 탐색하는 방법과 달리, 확률적 탐색에 의존하므로 '충분히 좋은 해'를 빠르게 찾는 데 적합하지, 완벽한 정답을 보장하는 방법은 아닙니다.

관련 용어