Evolutionary Algorithm
진화알고리즘 (EA, evolutionary computation, artificial evolution) 은 생식 (reproduction), 돌연변이 (mutation), 재조합 (recombination) 같은 생물학에서의 진화를 본뜬 메카니즘을 사용하는 어떤 개체군 기반의 조합최적화 알고리즘 (population-based combinatorial optimization algorithm) 을 나타내는 일반적인 용어이다.
진화알고리즘은 다음을 포함한다.
대부분의 이러한 기술들은 정신 (spirit) 면에서는 유사한지만, 그들을 구현할 때와 응용되는 문제영역의 성격에 따라서 상세한 부분에서는 다르다. 진화알고리즘은 일반적으로 공학시스템을 설계하는데에 사용되지만, 최근에는 art, biology, economics, genetics, operations research, robotics, social sciences 등등에 응용되어 왔다. 진화계산의 몇몇 연산자들을 외부의 에이전트 (대개는 인간) 에 적용하는 것은 interactive evolutionary computation 이라고 하며 최근에 알려진 새로운 경향이다.
수학적 최적화도구 (mathematical optimizer) 로서 사용되는 것과는 별개로, 진화 계산과 알고리즘은 진화와 자연선택에 대한 이론을 증명하는 실험 틀로서 사용되어 왔는데, 특히 인공생명 (Artificial Life) 분야의 작업에 사용되어왔다. 생물학적 진화의 모델링에 응용된 진화알고리즘의 기술은 일반적으로 microevolutionary process 의 탐험에 국한되지만, Tierra 와 Avida 같은 컴퓨터 시뮬레이션은 macroevolutionary dynamics를 모델링하려고 시도하였다.
진화알고리즘의 한계는 명확한 유전형-표현형의 구분 (genotype-phenotype distinction) 이 안된다는 것이다. 자연에서, 수정된 알세포 (egg cell) 는 발생 (embryogenesis) 이라는 복잡한 과정을 거쳐 성숙한 표현형 (phenotype) 이 된다. 이러한 간접적 표현 (encoding) 은 유전적 탐색 (genetic search) 을 더 튼튼하게 만드는 (예를들면, 치명적인 돌연변이의 확률을 감소시키는) 것으로 믿어지며, 또한 그 생물의 진화능력 (evolvability) 를 증진시킬 수 있다. 인공발생학 (artificial embryogeny) 또는 인공개발 시스템 (artificial developmental systems) 분야의 최근의 작업은 이러한 관심사에 접근하려고 시도하고 있다. ... Wikipedia : Evolutionary Algorithm
site :
software :
paper :