사진출처 : https://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/27178/versions/1/previews/html/gaPeaksExample.html


 

 

1. 유전학과  유전 알고리즘 개요

유전 알고리즘은?

1975년 미국 미시간 대학의 John Holland 교수가 세포작용을 연구하던 중 제안하였습니다.

모든 생물은 주어진 다양한 환경 속에서 적응함으로서 살아남는다는 Darwin의 적자생존(Survival of the fittest)의 이론을 기본으로 하고 있습니다.

 생물은 환경에 잘 적응할 수 있다면 생명의 존속과 증식이 가능함

 증식을 할 때에는 자기 자신이 가지고 있는 유전 정보를 자손들에게 전달

 적응도가 낮은 개체는 수명이 짧고, 증식을 할 수 없게 되며, 자연 도태됨

이러한 원리에 기초하여 세대를 거듭해가며 환경에 적응도가 높은 개체가 많아지는 거죠.




예를 들어볼까요?

어느 지역에 선인장 집단이 존재하고 있었습니다. 이 지역의 기온이 올라갈수록 더위에 강한 선인장들은 살아남고 존속과 증식을 이어나가나, 더위에 약한 선인장들은 수명이 짧아지고 도태하게 됩니다. 이러한 환경이 반복되며 점차 더위에 강한 선인장들의 개체가 많아지는 거죠.


 

 

2. 유전 알고리즘(Genetic Algorithm) 구조

앞서 말씀드린 선인장 예로 간단하게 유전 알고리즘 구조를 다음과 같이 나타낼 수 있습니다.

여기서 유전 알고리즘을 대표할 수 있는 연산자들이 있는데요, 선택(Selection), 교대(Crossover), 변이(Mutation)입니다.

 선택(Selection) : 선택 연산자는 집단 중에서 적응도에 따라 단게로 교배를 행하는 개체의 생존 본포를 결정합니다. 적응도가 높은 개체일수록 보다 많은 자손을 남기기 쉽죠.

 교대(Crossover) : 교배 연산자는 부모로부터 유전자를 받아 하나의 개체를 생성하는데요, 이때 교배를 어떻게 하느냐에 따라 새로운 개체의 형태가 달라집니다.

 변이(Mutation) : 변이 연산자는 유전자의 어떤 부분을 강제적으로 변화시키는 것으로, 돌연변이라고 생각하시면 됩니다. 이는 유전자 집단으로서의 다양성을 유지하는데 필요하죠.


+ Recent posts