유전 알고리즘
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
유전 알고리즘은 생물의 진화 과정을 모방하여 최적화 문제를 해결하는 계산 기법이다. 1950년대에 아이디어가 제시되었으며, 1960~70년대에 잉고 레첸베르크, 존 홀랜드 등의 연구를 통해 발전했다. 유전 알고리즘은 해의 집단을 진화시키며, 해는 유전적 표현과 적합도 함수를 통해 평가된다. 주요 연산으로는 선택, 교차, 돌연변이 등이 있으며, 스키마 이론과 빌딩 블록 가설이 이론적 기반을 제공한다. 유전 알고리즘은 스케줄링, 공학, 전역 최적화 등 다양한 분야에 적용되지만, 복잡성, 국소 최적점 수렴, 초기 수렴, 히치하이킹과 같은 문제점과 다른 최적화 알고리즘과의 비교를 통해 한계점을 갖는다.
더 읽어볼만한 페이지
- 진화 연산 - 유전 프로그래밍
유전 프로그래밍은 트리 구조 프로그램의 유전 알고리즘 최적화를 통해 컴퓨터 프로그램을 진화시키는 방법론으로, 소프트웨어 합성, 데이터 마이닝, 금융 모델링 등 다양한 분야에 응용되지만 탐색 공간과 효율성 문제에 대한 연구가 진행 중이다. - 유전 알고리즘 - 유전 프로그래밍
유전 프로그래밍은 트리 구조 프로그램의 유전 알고리즘 최적화를 통해 컴퓨터 프로그램을 진화시키는 방법론으로, 소프트웨어 합성, 데이터 마이닝, 금융 모델링 등 다양한 분야에 응용되지만 탐색 공간과 효율성 문제에 대한 연구가 진행 중이다. - 유전 알고리즘 - 양적 형질
양적 형질은 연속적인 표현형을 가지며 다양한 유전자와 환경적 요인의 영향을 받아 유전성을 띠고, 양적 유전학 연구를 통해 유전적 요인과 환경적 요인의 영향을 파악한다. - 진화 알고리즘 - 입자 군집 최적화
입자 군집 최적화는 입자들의 군집을 통해 최적해를 찾는 계산 지능 기반 알고리즘으로, 각 입자는 자신의 최적 위치와 군집 전체의 최적 위치를 활용해 속도와 위치를 업데이트하며 최적해를 탐색한다. - 진화 알고리즘 - 차분 진화
차분 진화는 실수 벡터로 표현되는 후보해 집단을 활용하여 전역 최적해를 찾는 진화 알고리즘으로, 개체 위치 정보를 결합해 새로운 해를 만들고 우수할 경우 집단을 갱신하며, 파라미터 설정과 변형을 통해 성능을 향상시킨다.
유전 알고리즘 | |
---|---|
유전 알고리즘 | |
![]() | |
개요 | |
분야 | 컴퓨터 과학 및 운영 연구 |
하위 분야 | 진화 연산 |
종류 | 메타휴리스틱 |
풀려는 문제 | 최적화 및 검색 문제 |
주요 특징 | 적자생존 원칙에 기반 유전 메커니즘 모방 탐색 과정에 무작위성 요소 포함 |
알고리즘 작동 방식 | |
초기화 | 문제에 대한 잠재적 해답의 모집단 생성 (각 해답은 염색체라고 함) |
평가 | 각 염색체의 적합도를 평가하여 주어진 문제에 대한 해답으로서의 품질을 측정 |
선택 | 다음 세대를 위해 적합도가 높은 염색체들을 선택 |
교차 | 선택된 염색체 쌍을 교차시켜 새로운 염색체를 생성 |
돌연변이 | 새로운 염색체에 돌연변이를 적용하여 모집단의 다양성 유지 |
반복 | 평가, 선택, 교차, 돌연변이 단계를 반복하여 더 나은 해답을 찾음 |
종료 조건 | 최대 반복 횟수 도달 충분히 좋은 해답 발견 수렴 조건 만족 |
주요 연산자 | |
선택 | 적합도가 높은 염색체를 다음 세대로 선택하는 과정 |
교차 | 두 염색체 사이에서 유전 정보를 교환하여 새로운 염색체를 만드는 과정 |
돌연변이 | 염색체의 유전 정보를 변경하는 과정 |
활용 분야 | |
최적화 문제 | 함수 최적화 조합 최적화 스케줄링 문제 경로 찾기 문제 |
머신러닝 | 신경망 설계 특징 선택 |
인공 생명 | 시뮬레이션, 진화 모델링 |
기타 | 생물 정보학, 경제학, 공학 등 |
장점 | |
탐색 능력 | 광범위한 검색 공간에서 전역 최적해에 가까운 해를 찾을 수 있음 |
병렬 처리 | 여러 해답을 동시에 탐색 가능하여 병렬 처리 용이 |
유연성 | 다양한 문제에 적용 가능 |
강건성 | 약간의 변화에도 안정적인 해를 찾을 수 있음 |
단점 | |
수렴 속도 | 최적해에 수렴하는 데 시간이 오래 걸릴 수 있음 |
매개변수 조정 | 알고리즘 성능이 매개변수 설정에 민감 |
지역 최적화 | 지역 최적해에 빠질 가능성 존재 |
계산 비용 | 많은 계산 자원을 요구할 수 있음 |
역사 | |
창시자 | 존 홀랜드 (1970년대) |
발전 | 데이비드 골드버그 등의 연구를 통해 발전 다양한 변형과 응용 등장 |
관련 알고리즘 | |
진화 전략 | 진화 전략은 유전 알고리즘과 유사한 메타휴리스틱 최적화 알고리즘 |
입자 군집 최적화 | 입자 군집 최적화는 군집 지능을 기반으로 하는 최적화 알고리즘 |
개미 군집 최적화 | 개미 군집 최적화는 개미의 행동을 모방한 최적화 알고리즘 |
로마자 표기 | |
영어 | Genetic algorithm |
일본어 | Iden-teki Arugorizumu |
한국어 | Yujeon Algorijeum |
2. 역사
유전 알고리즘은 다윈의 적자생존 이론을 기본 개념으로 하는, 자연계의 생물 유전학에 기반한 병렬적이고 전역적인 탐색 알고리즘이다. 유전 알고리즘은 풀고자 하는 문제에 대한 가능한 해들을 정해진 형태의 자료구조로 표현하고, 이들을 점차적으로 변형하여 더 좋은 해들을 만들어낸다. 이때 해들을 나타내는 자료구조는 유전자, 이들을 변형하는 과정은 진화로 표현할 수 있다.
유전 알고리즘은 미지의 함수 Y = f(x)를 최적화하는 해 x를 찾기 위해 진화를 모방한 탐색 알고리즘이라고 할 수 있다.
이는 특정 문제를 풀기 위한 알고리즘이라기보다는 문제를 풀기 위한 접근방법에 가깝다. 유전 알고리즘은 적용 가능한 형태로 표현할 수 있는 모든 문제에 대해 사용할 수 있다. 일반적으로 계산 불가능할 정도로 복잡한 문제의 경우, 유전 알고리즘을 통해 최적해에 가까운 답을 얻을 수 있다. 비록 최적화된 알고리즘보다 성능이 떨어질 수 있지만, 대부분 수용 가능한 수준의 해를 제공한다.
최근에는 생물의 진화 과정, 즉 자연 선택과 유전 법칙 등을 모방한 다양한 알고리즘들이 연구되고 있다. 진화 전략(Evolutionary strategies), 유전 프로그래밍(Genetic programming) 등이 그 예시이다. 유전 알고리즘은 이 중에서 가장 기본적이고 대표적인 알고리즘으로, 자연과학, 공학, 인문 사회 과학 분야에서 비선형 또는 계산 불가능한 복잡한 문제를 해결하는 데 널리 사용된다.
2. 1. 한국의 유전 알고리즘 연구
모집단의 크기는 문제의 성격에 따라 다르지만, 일반적으로 수백 또는 수천 개의 가능한 해결책을 포함한다. 종종 초기 모집단은 무작위로 생성되어 가능한 모든 해결책의 범위(탐색 공간)를 허용한다. 때때로, 최적의 해결책이 발견될 가능성이 높은 영역에 해결책을 "씨앗"으로 심거나, 더 관심 있는 영역에 집중하기 위해 샘플링 확률 분포를 조정할 수 있다.[4]3. 구성
유전 알고리즘은 최적화 문제에서 후보 해(개체)를 더 나은 해로 진화시키는 방법이다. 각 후보 해는 변경 가능한 속성(염색체 또는 유전자형)을 가지며, 보통 0과 1의 문자열(이진수)로 표현되지만 다른 인코딩도 가능하다.[4]
진화는 무작위로 생성된 개체 집단에서 시작되며, 각 반복을 '세대'라고 부른다. 각 세대에서 모든 개체의 적합도는 목적 함수 값으로 평가된다. 적합도가 높은 개체는 확률적으로 선택되어 유전자가 수정(재조합, 돌연변이)되고, 새로운 세대를 형성한다. 이 새로운 세대가 다음 반복에 사용되며, 최대 세대 수에 도달하거나 만족스러운 적합도 수준에 도달하면 알고리즘이 종료된다.
유전 알고리즘은 구현은 간단하지만, 그 동작 원리를 이해하기는 어렵다. 특히 실제 문제에서 높은 적합도의 해를 생성하는 이유를 명확히 설명하기 어렵다. 구성 요소 가설(Building Block Hypothesis, BBH)은 평균 이상의 적합도를 가진 짧고 낮은 차수의 스키마(구성 요소)를 식별하고 재결합하여 적응을 수행하는 휴리스틱 방법을 설명하며, 유전 알고리즘이 이 휴리스틱을 암시적이고 효율적으로 구현한다고 가정한다.[9][10] 그러나 이 가설의 타당성에 대해서는 논란의 여지가 있다.[11][12][13]
유전 알고리즘은 해(데이터)를 유전자로 표현한 여러 "개체"를 준비하고, 적응도가 높은 개체를 우선적으로 선택하여 교차 및 돌연변이 등의 연산을 반복하면서 해를 탐색한다. 적응도는 적응도 함수로 결정된다.
이 방법은 평가 함수의 미분 가능성이나 단봉성 등에 대한 사전 지식 없이도 적용할 수 있다는 장점이 있다. 필요한 조건은 평가 함수의 전순서성과 탐색 공간의 위상(topology)뿐이다. 또한, 유전자 표현 방법에 따라 조합 최적화 문제나 NP-난해 문제 등 다양한 문제에 적용할 수 있다.
3. 1. 요구 조건
유전 알고리즘을 특정 문제에 적용하기 위해서는 다음과 같은 조건이 필요하다.- 해를 유전자 형태로 표현
- 적합도 함수를 통해 해의 적합도 계산
해는 유전자의 형식으로 표현될 수 있어야 하며, 이 해가 얼마나 적합한지는 적합도 함수를 통해 계산할 수 있다. 해의 특성은 숫자의 배열이나 문자열과 같은 자료 구조를 통해 표시된다. 적합도 함수는 이렇게 나타내어진 해가 얼마나 문제의 답으로 적합한지를 평가하는 함수이다.
일반적인 유전 알고리즘에는 다음이 필요하다.
- 해 영역의 유전적 표현
- 해 영역을 평가하는 적합도 함수
표준 표현은 비트 배열(비트 집합 또는 비트 문자열)이다.[4] 다른 유형과 구조의 배열을 본질적으로 동일한 방식으로 사용할 수 있다. 이러한 유전적 표현을 편리하게 만드는 주요 속성은 고정된 크기로 인해 부분이 쉽게 정렬되어 간단한 교차 연산을 용이하게 한다는 것이다.
3. 2. 연산
유전 알고리즘은 선택, 교차, 변이, 대치 등 주요 연산을 통해 작동한다.- 선택: 한 세대에서 다음 세대로 전달될 해의 후보를 선택한다. 균등 비례 룰렛 휠 선택, 토너먼트 선택, 순위 기반 선택 등의 방법이 있다. 어떤 해를 선택하는지는 유전 알고리즘의 성능에 큰 영향을 미치므로, 해 집단의 다양성을 유지하면서 평균적인 적합도를 높이는 것이 중요하다.
- 교차: 선택된 해들이 교배를 통해 다음 세대의 해를 생성한다. 실제 생명체의 염색체 재조합처럼, 부모 해의 유전자들을 특정 위치를 기준으로 서로 교차시켜 자식 해를 만든다. 비트 단위 교차, 블록 단위 교차 등 다양한 방법이 있으며, 우수한 해가 변형되지 않도록 교차를 확률적으로 수행하기도 한다.
- 변이: 해의 유전자 내 유전 인자 순서나 값을 임의로 변경하여 다른 해로 변형시킨다. 이는 전체 세대가 지역 최적해에 빠지는 것을 방지하고 해 집단의 다양성을 높이는 주요 기법이다.
- 대치: 교차, 변이를 거쳐 만들어진 새로운 해를 해 집단에 추가하고, 기존 해 중 열등한 해를 제외시킨다. 가장 품질이 나쁜 해를 대치하거나, 새로운 해와 가장 비슷한 부모 해를 대치하는 방법 등이 있다.
예시:{1, 5, 6, 8, 3, 7, 3, 5, 9, 0} 중 3개를 골라 20을 만드는 문제에 유전 알고리즘을 적용할 수 있다.
1. 초기 세대 생성: 무작위로 3개의 숫자를 선택하여 해 집단을 구성한다. 예: {(1, 5, 3), (8, 0, 9), (9, 9, 8), (3, 7, 5)}
2. 적합도 평가: 각 해의 적합도를 계산한다. 20과의 차이를 적합도로 사용하면, 각 해의 적합도는 {11, 3, 6, 5}가 된다.
3. 선택: 적합도를 기준으로 확률적으로 해를 선택한다. 룰렛 알고리즘을 사용하면 적합도가 3인 (8, 0, 9)는 적합도가 6인 (9, 9, 8)보다 선택될 확률이 높다.
4. 교차: 선택된 두 해의 유전자를 교환하여 새로운 해를 생성한다. 예: (8, 0, 9)와 (9, 9, 8)이 선택되고 첫 번째 자리에서 교배가 일어나면 (8, 9, 8)과 (9, 0, 9)가 생성된다.
5. 변이: 새로운 해의 유전자를 임의로 변경할 수 있다.
6. 대치: 새로운 해를 해 집단에 추가하고, 기존 해 중 열등한 해를 제외시킨다.
7. 반복: 위 과정을 반복하여 해 집단을 진화시킨다.
일반적으로 유전 알고리즘에서는 다음과 같은 유전 연산이 사용된다.
연산 | 설명 |
---|---|
선택 (재생) | 자연 선택을 모델로 하여, 적응도에 따라 개체를 증가시키거나 삭제하는 연산 |
교차 (재조합) | 생물의 교배를 모델로 하여, 개체의 유전자 일부를 교환하는 연산 |
돌연변이 | 생물의 유전자 돌연변이를 모델로 하여, 개체의 유전자 일부를 변화시키는 연산 |
선택 알고리즘의 종류
선택 알고리즘 | 설명 |
---|---|
룰렛 선택 | 개체 i를 선택할 확률을 pi = fi / Σfk 로 하는 방식. (fi는 개체 i의 적합도) |
랭킹 선택 | 각 개체를 적응도에 따라 순위를 매겨, 순위별로 미리 확률을 정해 두는 방식 |
토너먼트 선택 | 집단에서 무작위로 개체를 추출하여, 그중 적응도가 가장 높은 개체를 선택하는 방식 |
엘리트 선택 | 적합도가 높은 개체(엘리트)를 일정 수만큼 다음 세대에 남기는 방식 |
교차 알고리즘의 종류
교차 알고리즘 | 설명 | 예시 (개체 A: 0100111010, 개체 B: 1010101011) |
---|---|---|
일점 교차 | 유전자가 교차하는 위치(교차점)를 무작위로 하나 선택하여 그 위치보다 뒤쪽을 교환하는 방식 | 개체 A: 0100111010 ⇒ 0100101011, 개체 B: 1010101011 ⇒ 1010111010 |
이점 교차 | 두 개의 교차점을 무작위로 선택하고, 두 교차점 사이에 있는 부분을 교환하는 방식 | 개체 A: 0100111010 ⇒ 0100101010, 개체 B: 1010101011 ⇒ 1010111011 |
균일 교차 | 각 요소마다 독립적으로 1/2의 확률로 교환하는 방식 | 개체 A: 01 0011 1010 ⇒ 00 1011 1011, 개체 B: 10 1010 1011 ⇒ 11 0010 1010 |
돌연변이돌연변이는 유전자형이 비트열인 경우, 특정 유전자좌의 0과 1을 바꾸거나, 숫자인 경우 난수로 바꾸는 방식으로 수행된다. 유전자좌의 위치를 변경하는 방법도 사용된다.
3. 3. 알고리즘 흐름
유전 알고리즘은 여러 개의 해(개체)를 준비하고, 적합도가 높은 개체를 우선적으로 선택하여 교차, 돌연변이 등의 연산을 반복하면서 최적의 해를 탐색하는 방법이다. 각 개체는 유전자 형태로 표현되며, 적합도는 적합도 함수에 의해 계산된다.[7][8]일반적인 유전 알고리즘의 진행 과정은 다음과 같다.
1. 초기 집단 생성: 무작위로 생성된 *N*개의 개체로 구성된 초기 집단(현 세대)을 생성한다.
2. 적합도 평가: 현 세대에 속한 각 개체의 적합도를 평가 함수를 이용하여 계산한다.
3. 선택, 교차, 돌연변이: 다음 세 가지 연산을 확률적으로 수행하여 차세대를 구성한다.
- 선택: 적합도 기반 과정을 통해 현 세대에서 개체를 선택한다. 적합도가 높은 개체가 선택될 확률이 높다.
- 교차: 선택된 두 개체의 유전자를 결합하여 새로운 개체를 생성한다. (예: 아담과 하와)
- 돌연변이: 선택된 개체의 유전자를 임의로 변경하여 새로운 개체를 생성한다. 이는 지역 최적점에 빠지지 않도록 하는 중요한 역할을 한다.
4. 세대 교체: 차세대의 개체 수가 *N*개가 되면, 차세대 전체를 현 세대로 교체한다.
5. 반복: 3~4번 과정을 최대 세대 수 *G*회까지 반복한다.
6. 종료: 최종적으로 현 세대에서 가장 적합도가 높은 개체를 해로 출력한다.
종료 조건은 다음과 같다.[9][10]
- 최소 기준을 만족하는 해결책 발견
- 고정된 세대 수 도달
- 할당된 예산(계산 시간/비용) 도달
- 최고 순위 해결책의 적합도가 정체기에 도달하여 더 나은 결과가 생성되지 않음
- 수동 검사
- 위 조건들의 조합
유전 알고리즘은 평가 함수의 미분 가능성이나 단봉성 등의 정보 없이도 적용 가능하다는 장점이 있다. 그러나, 구성 요소 가설(Building Block Hypothesis)의 타당성에 대해서는 논란이 있다.[11][12][13]
4. 이론
유전 알고리즘은 다른 메타휴리스틱스와 비교했을 때, 주요 탐색 수단인 교차가 국소 탐색이 아니라는 점에서 큰 차이를 보인다. 이 때문에 유전 알고리즘의 유효성에 대한 의문이 제기되기도 했다. 초기에는 실험을 통해 유효성을 검증하는 연구가 많았지만, 1980년대 후반부터는 이론적 분석이 활발해졌다.
SGA는 '''S'''imple '''G'''enetic '''A'''lgorithm(단순 GA)의 약자로, 유전 알고리즘 분석을 단순화한 모델이다. SGA는 다음과 같은 특징을 갖는다.
- 유전자 표현: 0과 1만 사용
- 룰렛 선택
- 1점 교차
- 돌연변이: 유전자좌 1개의 값을 반전
SGA는 분석을 단순화하기 위한 모델이며, 실제 유전 알고리즘은 이보다 복잡하게 구현될 수 있다.
4. 1. 스키마 이론
스키마 이론은 유전자형의 특정 부분 집합(스키마)이 적합도에 미치는 영향을 분석하여 유전 알고리즘의 작동 원리를 설명하는 이론이다. 현재 유전 알고리즘 이론의 근간을 이루고 있다.스키마는 다음과 같이 표현된다.
:H = * * 0 1 * 1 *
여기서 '*' (별표)는 와일드카드로, 0 또는 1이 들어갈 수 있음을 의미한다. 예를 들어, 다음 개체들은 스키마 *H*를 포함한다.
:0 1 '''0''' '''1''' 1 '''1''' 0
:1 1 '''0''' '''1''' 0 '''1''' 0
스키마 이론에서는 '''정의 길이'''와 '''오더'''라는 용어를 사용한다.
- 정의 길이 (δ(H)): 스키마에서 가장 왼쪽의 *가 아닌 문자와 가장 오른쪽의 *가 아닌 문자 사이의 거리. 위의 예에서 δ(H) = 3이다.
- 오더 (O(H)): 스키마에서 *가 아닌 문자의 개수. 위의 예에서 O(H) = 3이다.
'''스키마 정리'''는 특정 세대 *t*에서 스키마 *H*를 포함하는 개체의 수 *m(H, t)*가 주어졌을 때, 다음 세대에서 스키마 *H*를 포함하는 개체의 수 *m(H, t+1)*를 SGA(Simple Genetic Algorithm)에서 다음과 같이 나타낼 수 있다는 정리이다.
:
여기서,
- *f(H)*: 스키마 *H*를 포함하는 개체의 평균 적합도
- : 전체 개체의 평균 적합도
- *l*: 유전자형의 길이
- *pc*: 교차율
- *pm*: 돌연변이율
- pc* >> *pm* 이고, *δ(H)* > *O(H)* 이므로, *O(H)⋅pm*는 무시할 수 있다. 따라서 스키마 정리는 다음 조건을 만족하는 스키마의 수가 지수 함수적으로 증가함을 보여준다.
- 작은 정의 길이 (*δ(H)*)
- 전체 평균보다 높은 *f(H)*
이러한 조건을 만족하는 스키마를 '''빌딩 블록(Building Block)'''이라고 하며, 빌딩 블록을 유지하는 것이 최적해를 찾는 데 중요하다는 가설을 '''빌딩 블록 가설'''이라고 한다.
4. 2. 스키마 정리와 빌딩 블록 가설
스키마 정리는 유전자형의 특정 패턴(스키마)이 적합도에 미치는 영향을 분석하는 이론으로, 현재 유전 알고리즘 이론의 기반이다. 스키마는 다음과 같은 형태로 표현된다.:H = * * 0 1 * 1 *
여기서 '*' (별표)는 와일드카드로, 0 또는 1이 들어갈 수 있음을 의미한다. '*'를 제외한 부분이 일치하는 유전자형을 가진 개체는 "스키마 ''H''를 포함하는 개체"라고 한다. 예를 들어, '0 1 '''0''' '''1''' 1 '''1''' 0', '1 1 '''0''' '''1''' 0 '''1''' 0'는 스키마 H를 포함한다.
스키마 이론에서는 '''정의 길이'''와 '''오더'''라는 용어를 사용한다. 정의 길이는 스키마에서 가장 왼쪽의 별표(*)를 제외한 문자와 가장 오른쪽의 별표(*)를 제외한 문자 사이의 거리로, ''δ(H)''로 표현한다. 위의 예에서 ''δ(H)'' = 3이다. 오더는 스키마 내에서 별표(*)를 제외한 문자의 수로, ''O(H)''로 표현하며, 위의 예에서는 ''O(H)'' = 3이다.
'''스키마 정리'''는 특정 세대 *t*에서 스키마 *H*를 포함하는 개체의 수를 *m(H, t)*라고 할 때, 다음 세대에서 스키마 *H*를 포함하는 개체의 수 *m(H, t+1)*는 SGA(Simple Genetic Algorithm, 단순 유전 알고리즘)에서 다음과 같이 나타낼 수 있다는 정리이다.
:
여기서,
- *f(H)*는 스키마 *H*를 포함하는 개체의 평균 적합도
- 는 모든 개체의 평균 적합도
- *l*은 유전자형의 길이
- *pc*는 교차율
- *pm*는 돌연변이율
이다.
- pc* >> *pm* 이고, *δ(H)* > *O(H)* 이므로, *O(H)⋅pm*는 무시할 수 있다. 따라서 이 정리는 정의 길이 *δ(H)*가 작고 *f(H)*가 전체 평균보다 항상 큰 스키마의 수는 지수 함수적으로 증가함을 의미한다.
이러한 조건을 만족하는 스키마를 유지하면 최적해를 얻을 수 있다는 가설이 '''빌딩 블록 가설'''이며, 이러한 스키마를 '''빌딩 블록(Building Block)'''이라고 한다.
5. 문제점
유전 알고리즘(GA)은 다양한 문제에 적용할 수 있지만, 문제의 특성이나 사용 방식에 따라 효과적으로 탐색하지 못하는 경우가 있다. 자주 발생하는 문제점으로는 초기 수렴, 히치하이킹 등이 있다.
5. 1. 초기 수렴
초기 수렴은 초기 세대에서 우연히 다른 개체보다 적응도가 압도적으로 높은 개체가 발생했을 때, 그 개체의 유전자가 집단 내에 폭발적으로 증가하여 탐색이 상당히 빠른 단계에서 수렴해 버리는 현상이다.[66] 룰렛 선택 설정이 적절하지 않거나, 돌연변이 효과가 제대로 나타나지 않을 때 발생하기 쉽다.대책으로는 룰렛 선택을 사용하는 경우 적절한 설정을 하거나, 적용하는 문제에 맞춰 돌연변이 조작을 변경하거나, 돌연변이율을 높이거나, 또는 집단의 수를 늘리는 등의 설정을 통해 방지할 수 있다. 그러나 명확한 해결책은 없으며, 각 매개변수를 여러 번 반복해서 설정을 바꿔 보는 수밖에 없다.
5. 2. 히치하이킹
히치하이킹은 유전 알고리즘에서 최적해와 일치하는 비트 근처에 있어 최적해 생성을 방해하는 현상을 말하며, 이때 최적해 생성을 방해하는 비트를 히치하이커라고 부른다.[9]예를 들어 최적해가 ~101~ 인 문제가 있을 때, ~111~ 과 ~000~ 라는 두 개체가 교차하여 최적해를 얻는 경우를 생각해 보자. 이점 교차 방식을 사용하면 다음과 같이 교차점이 결정되어 최적해를 얻을 수 있다.
:~1|1|1~ ⇒ '''~101~'''
:~0|0|0~ ⇒ ~010~
이때 유전자형의 길이를 ''l'' 이라고 하면 최적해를 얻을 확률 ''p''는 다음과 같이 계산된다.
:
이 식에서 볼 수 있듯이, ''l''이 길어질수록 최적해를 얻을 확률은 급격히 낮아진다. 즉, ''l''이 길면 대부분의 경우 두 개체는 최적해와 일치하지 않는 비트를 새로운 개체에 물려주게 되어 최적해 생성을 방해한다.
하지만 균일 교차(Uniform Crossover)를 사용하면 히치하이킹 현상을 방지할 수 있다. 균일 교차는 각 요소가 독립적으로 교차하기 때문에, 위 예시에서 다음과 같은 경우로 최적해를 얻을 수 있다.
:~1'''1'''1~⇒'''~101~'''
:~0'''0'''0~⇒~010~
또는
:~'''1'''1'''1'''~⇒~010~
:~'''0'''0'''0'''~⇒'''~101~'''
이때 최적해를 생성하는 확률은 다음과 같다.
:
이 확률은 ''l''의 길이에 영향을 받지 않고 일정하게 유지된다. 따라서 균일 교차는 히치하이킹 문제를 해결하고 유전 알고리즘의 성능을 향상시키는 데 도움을 줄 수 있다.
6. 확장
GA에는 다양한 확장 기법이 존재한다. 여기서는 유명한 몇 가지를 소개한다.
Messy GA(Messy GA)는 빌딩 블록 가설, 특히 정의 길이 δ(H)가 작아야 한다는 약점을 극복하기 위해 Goldberg가 제안한 유전 알고리즘의 확장 기법이다. 유전자 표현은 유전자좌의 위치와 그 값의 쌍으로 표현한다. 여기에 "컷"과 "슬라이스"라는 기법을 사용하여 탐색을 진행한다. Goldberg는 이를 이용하여 GA로는 매우 탐색하기 어려운 함수의 최적해 도출에 성공했다. 그러나 이 기법은 문제에 대한 상당히 자세한 사전 지식이 필요하기 때문에 실제 응용 사례는 거의 없다.
CHC는 1990년 Eshelman에 의해 제안된 GA(유전 알고리즘)의 확장 기법이다. 이 이름은 다음 세 가지의 머리글자를 딴 것이다.
- 2세대 엘리트 선택(Cross generational elitist selection)
- 이종 간 교차(Heterogeneous recombination)
- 대변동 돌연변이(Cataclysmic mutation)
각각 선택, 교차, 돌연변이를 상세히 재검토하여 더욱 효율적인 알고리즘으로 만든 것이다.
분포 추정 알고리즘(Estimation of Distribution Algorithm, EDA)은 유전 알고리즘(GA)이 개체 집합에 대해 교차 및 돌연변이를 수행하여 개체 집합이 진화하는 것과 달리, 개체 생성의 확률 분포를 진화시킨다. 알고리즘의 예로는 집단 기반 증분 학습(Population-based incremental learning, PBIL) 등이 있다.
유전적 프로그래밍(genetic programming; GP)은 J. Koza가 제안한 유전 알고리즘을 확장한 것 중 하나이다. 유전자를 트리 구조로 함으로써 식이나 프로그램 등을 다룰 수 있도록 했다. 공학 분야뿐만 아니라 경제 분야 등에도 널리 활용되고 있다.
7. 응용 분야
유전 알고리즘은 특정 문제를 풀기 위한 알고리즘이라기보다는 문제 해결을 위한 접근 방식에 가깝다. 유전 알고리즘으로 표현 가능한 모든 문제에 적용할 수 있다. 일반적으로 문제가 매우 복잡하여 계산이 불가능할 경우, 유전 알고리즘을 통해 실제 최적해는 아니더라도 최적해에 가까운 답을 얻을 수 있다. 이 경우, 해당 문제에 최적화된 알고리즘보다는 성능이 떨어지지만, 대부분 수용 가능한 수준의 해를 제공한다.
생물의 진화 과정, 즉 자연 선택과 유전 법칙 등을 모방한 알고리즘으로 진화 전략, 유전 프로그래밍 등 다양한 형태의 이론과 기법들이 최근 활발히 연구되고 있다. 유전 알고리즘은 이 중 가장 기본적이고 대표적인 알고리즘으로, 자연과학, 공학 및 인문 사회 과학 분야에서 비선형 또는 계산 불가능한 복잡한 문제를 해결하는 데 널리 응용되고 있다.
- 개미 집단 최적화(ACO): 먹이를 찾는 개미 집단의 행동에서 영감을 얻은 기법이다.
- 담금질 기법(SA): 해를 하나만 사용한다는 점이 가장 큰 차이점이다.
- 미미틱 알고리즘: 지역 탐색 기법과 유전 알고리즘을 결합하여 빠른 시간 안에 좋은 해를 찾는 방법이다.
- 유전 프로그래밍: 교차와 변이를 사용하는 등 유전 알고리즘과 유사하며, 해를 프로그램으로 표현하는 것이 특징이다.
- 진화 연산: 생물의 진화에서 영감을 얻은 기법의 총칭이다. 최근에는 진화 연산에 속하는 기법들의 차이가 점차 줄어들고 있다.
- 진화 전략: 교차를 사용하지 않고 변이에 의존하는 탐색 기법이다.
- 진화 프로그래밍: 변이를 주로 사용하는 기법으로 진화 전략과 유사하다. 초기에는 해를 유한 오토마타로 나타냈고, 현재도 고정된 표현을 사용하지 않는 것이 특징이다.
유전 알고리즘은 데이터(해의 후보)를 유전자로 표현한 "개체"를 여러 개 준비하고, 적응도가 높은 개체를 우선적으로 선택하여 교차 및 돌연변이 등의 연산을 반복하면서 해를 탐색한다. 적응도는 적응도 함수에 의해 주어진다.
이 방법의 장점은 평가 함수의 미분 가능성이나 단봉성 등의 지식이 없어도 적용할 수 있다는 점이다. 필요한 조건은 평가 함수의 전순서성과 탐색 공간이 위상(topology)을 가지고 있다는 것이다. 유전자 표현 방법에 따라 조합 최적화 문제나 NP-난해 문제 등 다양한 문제에 적용할 수 있다.
8. 관련 기법
유전적 프로그래밍(genetic programming; GP)은 J. Koza가 제안한 유전 알고리즘을 확장한 것 중 하나이다. 유전자를 트리 구조로 함으로써 식이나 프로그램 등을 다룰 수 있도록 했다. 공학 분야뿐만 아니라 경제 분야 등에도 널리 활용되고 있다.
9. 한계
유전 알고리즘(GA)은 다양한 문제에 적용할 수 있는 기법이지만, 문제의 특성이나 사용 방식에 따라 효과적으로 탐색하지 못하는 경우가 있다. 여기서는 자주 발생하는 유전 알고리즘의 문제점들을 정리한다.
참조
[1]
서적
Evolutionary algorithms
https://books.google[...]
John Wiley & Sons
[2]
서적
Proceedings of the 2018 International Conference on Computing and Artificial Intelligence
Association for Computing Machinery
2018-03-12
[3]
학술지
Neuroevolutionary representations for learning heterogeneous treatment effects
2023
[4]
학술지
Initialization of Feature Selection Search for Classification (sec. 3)
https://www.jair.org[...]
2022
[5]
서적
Genetic algorithms with multi-parent recombination
[6]
서적
On the Mean Convergence Time of Multi-parent Genetic Algorithms Without Selection
[7]
서적
Handbook of Evolutionary Computation
Institute of Physics Publishing
[8]
서적
Handbook of Natural Computing
Springer Berlin Heidelberg
2012
[9]
서적
Scalable Optimization via Probabilistic Modeling
2006-01-01
[10]
서적
BOA: The Bayesian Optimization Algorithm
http://dl.acm.org/ci[...]
1999-01-01
[11]
서적
Linkage in Evolutionary Computation
2008-01-01
[12]
학술지
On the Taxonomy of Optimization Problems Under Estimation of Distribution Algorithms
2012-11-08
[13]
서적
Proceedings of the 15th annual conference on Genetic and evolutionary computation
2013-01-01
[14]
학술지
An efficient algorithm for function optimization: modified stem cells algorithm
2012-11-19
[15]
간행물
No Free Lunch Theorems for Optimisation
Santa Fe Institute
[16]
서적
Parallel Problem Solving from Nature
[17]
학술지
An Experimental Comparison of Binary and Floating Point Representations in Genetic Algorithms
http://www.cs.umsl.e[...]
2013-07-02
[18]
학술지
HELGA: a heterogeneous encoding lifelike genetic algorithm for population evolution modeling and simulation
[19]
컨퍼런스
Removing the genetics from the standard genetic algorithm
http://www.ri.cmu.ed[...]
[20]
학술지
On the convergence of genetic algorithms – a variational approach
[21]
학술지
Convergence of genetic algorithms
[22]
학술지
Adaptive probabilities of crossover and mutation in genetic algorithms
http://eprints.iisc.[...]
[23]
학술지
Convergence enhanced genetic algorithm with successive zooming method for solving continuous optimization problems
[24]
학술지
Clustering-Based Adaptive Crossover and Mutation Probabilities for Genetic Algorithms
[25]
학술지
New crossover operators using dominance and co-dominance principles for faster convergence of genetic algorithms
[26]
학술지
Flexible networked rural electrification using levelized interpolative genetic algorithm
[27]
웹사이트
Evolution-in-a-nutshell
http://www.thisurlis[...]
[28]
학술지
Messy Genetic Algorithms : Motivation Analysis, and First Results
http://www.complex-s[...]
[29]
웹사이트
Gene expression: The missing link in evolutionary computation
https://www.osti.gov[...]
[30]
PhD
Learning linkage to efficiently solve problems of bounded difficulty using genetic algorithms
http://portal.acm.or[...]
Dept. Computer Science, University of Michigan, Ann Arbour
1997
[31]
학술지
Pareto Optimal Reconfiguration of Power Distribution Systems Using a Genetic Algorithm Based on NSGA-II
http://www.mdpi.com/[...]
[32]
웹사이트
A solar energy system that tracks the sun
https://www.ted.com/[...]
2009-02-02
[33]
웹사이트
Automated Antenna Design with Evolutionary Algorithms
http://ti.arc.nasa.g[...]
[34]
웹사이트
Flexible Muscle-Based Locomotion for Bipedal Creatures
http://goatstream.co[...]
[35]
학술지
Aerodynamic optimisation of a hypersonic reentry vehicle based on solution of the Boltzmann–BGK equation and evolutionary optimisation
https://cronfa.swan.[...]
2017-12
[36]
서적
The Algorithm Design Manual
Springer Science+Business Media
[37]
논문
Computing machinery and intelligence
1950-10-01
[38]
논문
Esempi numerici di processi di evoluzione
[39]
논문
Symbiogenetic evolution processes realized by artificial methods
[40]
논문
Simulation of genetic systems by automatic digital computers. I. Introduction
[41]
서적
Computer Models in Genetics
McGraw-Hill
[42]
서적
Computer Simulation in Genetics
John Wiley & Sons
[43]
뉴스
02.27.96 - UC Berkeley's Hans Bremermann, professor emeritus and pioneer in mathematical biology, has died at 69
http://berkeley.edu/[...]
1996-02-27
[44]
서적
Evolutionary Computation: The Fossil Record
IEEE Press
[45]
논문
Numerical testing of evolution theories. Part II. Preliminary tests of performance, symbiogenesis and terrestrial life
[46]
서적
Evolutionsstrategie
Holzmann-Froboog
[47]
서적
Numerische Optimierung von Computer-Modellen (PhD thesis)
[48]
서적
Numerische Optimierung von Computor-Modellen mittels der Evolutionsstrategie : mit einer vergleichenden Einführung in die Hill-Climbing- und Zufallsstrategie
Birkhäuser
[49]
서적
Numerical optimization of computer models (Translation of 1977 Numerische Optimierung von Computor-Modellen mittels der Evolutionsstrategie
Wiley
[50]
서적
An Approach to Designing an Unmanned Helicopter Autopilot Using Genetic Algorithms and Simulated Annealing
https://books.google[...]
[51]
뉴스
What's the Best Answer? It's Survival of the Fittest
https://www.nytimes.[...]
1990-08-29
[52]
웹사이트
Fifteen years and counting
http://www.futuresma[...]
2009-08-01
[53]
웹사이트
Evolver: Sophisticated Optimization for Spreadsheets
http://www.palisade.[...]
[54]
논문
Benchmarks for Evaluating Optimization Algorithms and Benchmarking MATLAB Derivative-Free Optimizers for Practitioners' Rapid Access
[55]
서적
Evolutionary algorithms for the physical design of VLSI circuits
https://www.ifte.de/[...]
Springer, pp. 683-712, 2003
[56]
서적
BOA: The Bayesian Optimization Algorithm
http://dl.acm.org/ci[...]
1999-01-01
[57]
서적
Hierarchical Bayesian optimization algorithm : toward a new generation of evolutionary algorithms
Springer
2005
[58]
서적
Parallel Problem Solving from Nature, PPSN XI
2010-09-11
[59]
논문
Gene Expression Programming: A New Adaptive Algorithm for Solving Problems
http://www.gene-expr[...]
[60]
서적
Genetic Algorithms and Grouping Problems
John Wiley & Sons Ltd
[61]
논문
Model-Based Search for Combinatorial Optimization: A Critical Survey
2004-10-01
[62]
간행물
A comparison of particle swarm optimization and the genetic algorithm
https://www.mit.edu/[...]
[63]
논문
Automatic Test Case Optimization: A Bacteriologic Algorithm
http://www.irisa.fr/[...]
2005-03-01
[64]
논문
Transforming Geocentric Cartesian Coordinates to Geodetic Coordinates by Using Differential Search Algorithm
[65]
논문
On the Efficiency of Gaussian Adaptation
1991-12-01
[66]
웹사이트
[CEDEC 2008#08]生き物を相手にするようなゲームを作る~遺伝的アルゴリズム
https://www.4gamer.n[...]
Aetas
2008-09-11
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com