다양성 유지
-
유전 프로그래밍의 진화 압력을 조절하는 전략적 설계 기법DNA Programming 2025. 5. 1. 13:12
1. 진화는 선택에서 시작된다유전 프로그래밍(Genetic Programming, GP)은 생물학적 진화 원리를 기반으로 하여 문제 해결 프로그램을 자동으로 생성하는 알고리즘이다. 이 구조는 무작위로 생성된 수많은 프로그램 개체 중에서 더 나은 성능을 가진 것들을 선택하고, 그 구조를 교차 및 돌연변이를 통해 다음 세대로 전달하는 방식으로 작동한다. 이때 어떤 개체가 선택되고, 어떤 개체가 도태될지를 결정하는 힘을 우리는 ‘진화 압력(Selection Pressure)’이라고 부른다.진화 압력은 GP의 전반적인 흐름을 결정짓는 가장 중요한 요소 중 하나다. 적합도가 높은 개체만 지속적으로 선택될 경우 빠르게 수렴하게 되지만, 반대로 선택이 너무 분산되면 진화는 정체되거나 무의미한 방향으로 흐를 수 있다...
-
유전 프로그래밍에서 프로그램 수렴이 진화 과정에 미치는 영향DNA Programming 2025. 4. 30. 18:10
1. 진화는 항상 개선되는가?유전 프로그래밍(Genetic Programming, GP)은 무작위성을 기반으로 시작하지만, 세대를 거듭할수록 점차 더 나은 해답을 향해 진화하는 알고리즘이다. GP는 트리 구조로 표현된 프로그램들을 평가하고, 더 높은 성능을 보이는 구조를 선택하여 새로운 세대를 생성하는 방식으로 작동한다. 이 과정은 이론적으로는 계속해서 성능이 개선되는 방향으로 진행된다.그러나 현실에서는 GP가 일정 시점 이후 개체들 간의 유전적 다양성을 상실하고, 모든 프로그램이 유사한 구조로 수렴하는 현상이 발생하곤 한다. 이 현상을 ‘프로그램 수렴(Convergence)’이라고 부르며, 이는 진화 알고리즘에서 종종 탐색 능력을 상실하고 정체 상태에 빠지는 원인으로 작용한다.이 글에서는 유전 프로그래..