<시리즈> 첨단컴퓨터의 세계(170)

우리가 접하는 우주는 한없이 넓고 복잡하다. 그에 못지 않은 것이 소위 인간이라는 소우주일 것이다. 모든 생물의 개체는 DNA라는 것으로 이루어져 있으며 그들의 종류나 배열의 다른 점이 서로 다른 종(종)으로 구별되는 요인이 된다.

생물의 발달에 대해 창조론과 진화론의 양대주장이 맞서고 있다. 다윈의 이론은 많은 생물개체들간의 경쟁에 의한 환경의 적응으로 인해 좀 더 나은 개체들이 종족을 이어간다는 소위 "적자생존"이론이 그 배경을 이루고 있다.

이러한원리를 컴퓨터에 적용하여 보다 지능적인 판단을 가능케 하는 노력이 진행되고 있는데 이것이 곧 유전자 알고리듬이다. 유전자 알고리듬은 1970년 대 초반에 미국 미시간대학의 존 홀란드와 그의 제자들 그리고 동료들에 의해 개발되었으며, 자연적인 선택과 유전학적인 메커니즘에 근거한 탐색 알고 리듬을 채택한다. 그것은 다윈의 적자생존설에서 보는 바와 같이 환경에 가장 적합한 개체들이 생존하는 원리를 이용하였다.

유전자 알고리듬에서의 방법은 다른 전통적인 최적화 탐색방법들과 4가지 면에서 크게 다르다.

첫째, 작동면에서는 전통적인 방법은 변수들 자체를 이용하는데 비해 유전자 알고리듬에서는 변수 집합의 코딩으로 작동된다는 점이 우선 다르다.

둘째, 전통적인 방법에서는 하나의 점을 상대로 변화하는데 비해 유전자 알 고리듬에서는 점들의 집단을 통한 탐색을 추구한다.

셋째, 이용정보면에서 전통적인 방법들은 미분이나 그에 따른 보조적인 지식 을 사용하나 유전자 알고리듬 방법에서는 특정한 목적에 적합한 목적함수를 사용한다. 넷째 전이규칙의 차이다. 전통적인 방법에서는 결정적인 규칙을 사용하는데비해 유전자 알고리듬에서는 확률적인 규칙을 사용한다는 점이다.

유전자 알고리듬은 알파벳상에서의 유한 길이의 스트링(String)으로 표현되는데 통상 0과 1로 이루어진 스트링을 사용한다. 이진수를 십진수로 바꾸어서 우리가 사용하고자 하는 목적에 적합한 것인지를 쉽게 알 수 있기 때문이다. 유전자 알고리듬에서의 연산은 오퍼레이터라고 불리는 세가지 방법으로 이루어진다. 즉 자기복제(Reproduction), 교차(Crossover), 돌연변이(Mutation) 이다. 최근에는 이 세가지 말고도 추가적인 오퍼레이터들이 사용되기도 한다. 자기복제란 각각의 스트링들이 그들의 목적함수값에 따라 높은 적합도를 가진 스트링들이 선택되어 다음 세대로 그대로 복제되는 것이며, 교차란 스트링을 쌍으로 구성하여 스트링안에 있는 유전자 정보의 일부를 서로 교환하여 새로운 스트링을 생성하게 되는 방법이다. 돌연변이란 스트링 안에 있는 유전자의 돌연한 변화로 스트링의 일부가 변형된 새로운 유전정보를 가지는 스트링을 만드는 것이다.

유전자 알고리듬을 구현하는 일반적인 순서는 다음과 같다.

1단계에서는 모집단(Population)의 염색체들을 초기화하고 생물의 유전정보 를 가지고 있는 염색체에서의 변수를 부호화한다. 이 경우 유한개의 이진수 를 할당하여 초기값을 가진 모집단을 만든다.

2단계에서는 모집단에 있는 각 염색체를 평가한다. 각 스트링을 계산하여 목적함수에 대한 적합도를 평가한다.

3단계에서는 현 모집단의 염색체들을 자기복제, 교차, 돌연변이 등을 적용시켜 새롭게 생성된 염색체들을 만든다.

4단계에서는 새롭게 만들어진 염색체들을 평가하여 보다 높은 적합도를 가진것들로 새로운 모집단을 만든다.

5단계에서는 우리가 평가하고 싶은 횟수만큼 되었으면 가장 좋은 염색체들이 선택되어 프로그램이 끝나게 되고 그렇지 않은 경우에는 3단계로 돌아가서반 복적인 작업을 계속한다.

그러나 이러한 방법은 일반적인 경우이고 다른 방법으로 작동시키는 연구자 도 있으며 오퍼레이터를 필요에 따라 자기가 정의하여 사용하는 경우도 많다.


브랜드 뉴스룸