유전자 프로그래밍이란 무엇입니까?
유전자 프로그래밍은 한 컴퓨터 프로그램을 사용하여 진화 알고리즘 기반 방법론을 사용하여 다른 컴퓨터 프로그램을 작성하는 프로세스입니다. 이 프로세스는 종종 프로그래머가 컴퓨터가 수행 할 특정 명령을 작성하는 선형 프로그래밍과 비교됩니다. LISP와 Scheme은 높은 수준의 기능과 유연성으로 인해 이러한 유형의 작업에 가장 일반적인 프로그래밍 언어입니다. 생물학적 진화와 그것의 개념적 유사성의 결과로, 유전자 프로그래밍은 종종 바이오 영감 컴퓨팅의 예로서 인용된다.
유전자 프로그램 (GP)은 수천 개의 프로그램을 생성하고 실행하여 작동하며 가장 효과적인 프로그램을 선택합니다. 예를 들어 GP를 사용하여 사진 스케치를 그리는 프로그램을 만들 수 있습니다. GP가 할 첫 번째 일은 다양한 조합의 컴퓨터 그리기 기능을 사용하는 일련의 프로그램을 만드는 것입니다. 그런 다음 GP는 이러한 각 프로그램을 순서대로 실행하여 각 결과를 이미지 파일로 출력합니다.
GP의 다음 단계는 해당 프로그램 중에서 최고의 프로그램을 선택하는 것입니다. 이 과정은 일반적으로 유전자 프로그래밍에서 가장 어려운 부분입니다. 드로잉 프로그램의 경우, GP는 이미지 비교 소프트웨어를 사용하여 임의의 랜덤 드로잉 중 어느 것이 소프트웨어가 그리려고 시도한 이미지와 가장 유사한지를 결정한다. 임의로 생성 된 프로그램 중에서 GP는 상위 몇 개를 선택하고 나머지는 버립니다. 선택 과정은 체력 평가로 알려져 있으며 일반적으로 유전자 프로그래밍에서 가장 어려운 부분으로 간주됩니다.
최상위 몇 개의 프로그램이 선택되면 GP는이 프로그램을 새로운 프로그램 배치의 기초로 사용합니다. 각각의 새로운 배치를 세대라고합니다. 새로운 세대를 만드는 두 가지 방법은 돌연변이와 교차입니다. Mutation은 기존 프로그램 중 하나를 선택하고 임의로 변경하여 원하는대로 개선합니다. 번식이라고도하는 크로스 오버는 두 가지 최고의 프로그램을 가져 와서 요소를 결합하여 새로운 프로그램을 만드는 방식으로 작동합니다.
GP는 새로운 프로그램 배치를 생성 한 후 실행 및 평가 프로세스를 반복 한 다음 선택, 제거 및 생성 프로세스를 반복합니다. GP는 만족스러운 결과를 가진 단일 프로그램을 찾기 전에 수백 세대를 자주 운영합니다. 이러한 한계에도 불구하고 유전자 프로그래밍은 로봇 공학 및 인공 지능 문제를 포함한 일부 어려운 컴퓨팅 문제를 해결하는 일반적인 방법입니다.