룰렛 휠 선택: 적합도에 비례해 확률적으로 고르는 유전 알고리즘 연산

유전 알고리즘의 룰렛 휠 선택 원리와 확률 계산 절차, 적합도 스케일링 기법, 다른 선택 연산자와의 차이를 수치 예제와 함께 정리한다.

2026-08-13 · 최초 발행 2025-05-23

유전 알고리즘(Genetic Algorithm)에서 다음 세대의 부모를 어떻게 뽑을지는 알고리즘의 수렴 속도와 다양성 유지를 동시에 좌우한다. 룰렛 휠 선택은 이 문제를 개체의 적합도(fitness)에 비례하는 확률로 풀어내는 방법이다.

적합도가 클수록 넓은 영역을 차지한다

룰렛 휠 선택은 다음 원리에 기반한다.

  • 비례적 선택: 각 개체가 선택될 확률이 해당 개체의 적합도에 비례한다
  • 확률적 특성: 높은 적합도를 가진 개체가 선택될 가능성이 높지만, 낮은 적합도의 개체도 일정 확률로 선택될 수 있다
  • 생물학적 유사성: 자연계에서 환경에 더 잘 적응한 개체가 생존·번식할 확률이 높은 현상을 모방한다

이름은 카지노 룰렛과 유사한 메커니즘에서 유래했다. 각 개체가 룰렛 휠에서 적합도에 비례하는 면적(또는 확률)을 차지하고, 휠을 돌려 무작위로 개체를 선택하는 방식과 닮았다.

선택 확률은 이렇게 계산된다

  1. 적합도 계산: 모집단 내 모든 개체의 적합도 함수(fitness function)를 계산한다
  2. 적합도 합산: 모든 개체의 적합도 총합(total fitness)을 계산한다
  3. 확률 할당: 각 개체에 적합도에 비례하는 선택 확률을 할당한다 (개체의 적합도 / 적합도 총합)
  4. 누적 확률 계산: 각 개체의 누적 확률을 계산한다
  5. 선택 실행: 0과 1 사이의 난수를 생성하고, 이 값이 속하는 누적 확률 구간의 개체를 선택한다

의사코드로 표현하면 다음과 같다.

function RouletteWheelSelection(population)
    totalFitness ← 0
    for each individual in population
        totalFitness ← totalFitness + individual.fitness

    for each individual in population
        individual.selectionProbability ← individual.fitness / totalFitness

    // 누적 확률 계산
    cumulativeProbability ← 0
    for each individual in population
        individual.cumulativeProbability ← cumulativeProbability + individual.selectionProbability
        cumulativeProbability ← individual.cumulativeProbability

    // 선택 실행
    randomValue ← Random(0, 1)
    for each individual in population
        if randomValue <= individual.cumulativeProbability
            return individual

수치로 확인하는 선택 과정

아래 다이어그램은 룰렛 휠 선택의 개념을 시각적으로 나타낸다.

40%10%30%20%룰렛 휠 선택 확률 분포개체 A (적합도 40)개체 B (적합도 10)개체 C (적합도 30)개체 D (적합도 20)

개체 A는 전체 휠의 40%를 차지하므로 선택될 확률이 40%로 가장 높다. 반면 개체 B는 10%로 선택 확률이 가장 낮다.

선택 과정의 흐름은 다음과 같다.

모집단 생성 개체의 적합도 계산적합도에 기반한 선택 확률 할당룰렛 구성난수 생성으로 개체 선택다음 세대를 위한 개체 선택완료

수치 예제로 확인하면 다음 표와 같다.

개체 적합도 선택 확률 누적 확률
A 40 40% 40%
B 10 10% 50%
C 30 30% 80%
D 20 20% 100%
합계 100 100% -

난수 0.65가 생성되면 0.65는 50%와 80% 사이에 위치하므로 개체 C가 선택된다.

다양성과 선택 압력은 서로를 갉아먹는다

룰렛 휠 선택의 장점은 다음과 같다.

  • 직관적 구현: 개념이 단순하고 구현이 쉽다
  • 다양성 유지: 낮은 적합도의 개체도 일정 확률로 선택되어 유전적 다양성이 보존된다
  • 수렴 특성: 세대가 진행됨에 따라 자연스럽게 우수한 해결책으로 수렴한다

반면 다음과 같은 단점도 있다.

  • 선택 압력 균형: 적합도 차이가 크면 최적 해에 빠르게 수렴하지만 다양성 상실 위험이 있다
  • 적합도 스케일링 문제: 모집단의 적합도가 서로 비슷할 경우 선택 압력이 약해진다
  • 확률적 특성: 최적의 개체가 선택되지 않을 가능성이 존재한다

이 단점을 보완하기 위한 적합도 스케일링 기법으로는 f' = a * f + b 형태로 변환하는 선형 스케일링, f' = max(f - (μ - c*σ), 0) 형태로 변환하는 시그마 스케일링(μ: 평균, σ: 표준편차), f' = f^k 형태로 변환하는 파워 스케일링(k: 상수), 적합도 절대값이 아닌 개체의 순위에 기반해 선택 확률을 할당하는 랭크 기반 스케일링이 있다.

최적화 문제와 머신러닝에서 쓰는 방식

룰렛 휠 선택은 여행자 문제(TSP) 해결을 위한 경로 최적화, 생산 일정 최적화 및 자원 할당 문제 같은 최적화 문제 해결에 쓰인다. 머신러닝·인공지능 영역에서는 신경망 가중치 최적화, 딥러닝 모델의 하이퍼파라미터 튜닝에 활용된다. 생물정보학에서는 단백질 구조 예측, 유전자 발현 패턴 분석에, 금융공학에서는 포트폴리오 최적화, 투자 전략 모델링에 쓰인다.

Python으로 구현하면 다음과 같다.

import numpy as np

def roulette_wheel_selection(population, fitness_scores):
    # 총 적합도 계산
    total_fitness = sum(fitness_scores)

    # 선택 확률 계산
    selection_probs = [f/total_fitness for f in fitness_scores]

    # 누적 확률 계산
    cumulative_probs = np.cumsum(selection_probs)

    # 난수 생성
    r = np.random.random()

    # 개체 선택
    for i, cp in enumerate(cumulative_probs):
        if r <= cp:
            return population[i]

    # 안전 장치 (마지막 개체 반환)
    return population[-1]

# 사용 예시
population = ['A', 'B', 'C', 'D']
fitness_scores = [40, 10, 30, 20]

# 선택 실행
selected = roulette_wheel_selection(population, fitness_scores)
print(f"선택된 개체: {selected}")

변형과 다른 선택 연산자들

룰렛 휠 선택의 변형으로는 소규모 하위 집합에서 가장 적합한 개체를 선택해 계산 복잡성을 줄이고 선택 압력을 조절할 수 있는 확률적 토너먼트 선택(Stochastic Tournament Selection), 개체를 무작위로 선택한 후 확률에 따라 수용 여부를 결정해 대규모 모집단에서 효율적인 확률적 수용(Stochastic Acceptance), 최고 적합도 개체를 무조건 다음 세대로 보존해 룰렛 휠 선택과 함께 쓰면 최적 해 손실을 막는 엘리트주의(Elitism)가 있다.

다른 선택 방법과 비교하면 다음과 같다.

선택 방법 원리 장점 단점
룰렛 휠 선택 적합도에 비례한 확률적 선택 직관적, 다양성 유지 선택 압력 제어 어려움
토너먼트 선택 소규모 그룹에서 최고 적합도 개체 선택 선택 압력 조절 용이 매개변수 의존성
절단 선택 상위 일정 비율만 선택 단순, 효율적 다양성 손실 우려
순위 기반 선택 적합도 순위에 따른 선택 극단적 차이 완화 계산 비용 증가

문제의 노이즈 수준과 원하는 선택 압력에 따라 이 중 하나를 고르거나, 스케일링 기법과 엘리트주의를 룰렛 휠 선택에 얹어 보완하는 것이 실무에서 쓰는 접근이다.

유전알고리즘룰렛휠선택적합도비례선택최적화선택압