내 블로그에 링크를 추가하는 것은 내 의도는 아니지만 실제로 의미하는 바를 명확히 할 다른 방법은 없습니다. 이 기사는 상당히 길며 세 부분으로되어 있습니다 (1, 2, 3). 궁금한 점이 있다면 읽을 가치가 있습니다.코드 박테리아 : 진화하는 수학적 행동
오래 전 (5 년 이상) "수학적 박테리아"를 생성 한 파이썬 프로그램을 프로그래밍했습니다. 이 박테리아는 간단한 연산 코드 기반의 유전자 코드를 가진 파이썬 객체입니다. 숫자로 피드를 보내고 코드 실행에 따라 숫자를 반환 할 수 있습니다. 유전자 코드를 무작위로 생성하고 미리 정의 된 기대 값과 유사한 결과를 산출하는 객체에 환경 선택을 적용합니다. 그런 다음 복제하고 돌연변이를 도입하여 진화 시키도록했습니다. 결과는 매우 흥미 롭습니다. 유전자 코드는 기본적으로 훈련 데이터 세트와 다른 값에 대해서도 간단한 방정식을 풀 수있는 방법을 기본적으로 배우기 때문입니다.
이제이 물건은 장난감 일뿐입니다. 낭비 할 시간이 있었고 호기심을 만족시키고 싶었습니다. 그러나 연구의 측면에서 무언가가 만들어 졌다고 가정합니다 ... 저는 여기서 바퀴를 재발 명하고 있습니다. 내가 프로그래밍 한 것과 같은 in-silico 박테리아를 만들기위한보다 심각한 시도에 대해 알고 있습니까?
사실 이것은 "유전자 알고리즘"이 아닙니다. 유전 알고리즘은 진화/선택을 사용하여 주어진 점수 함수에 대한 매개 변수의 벡터를 향상시키는 것입니다. 이것은 다른 종류입니다. 주어진 점수 함수에 대해 코드을 매개 변수가 아닌 최적화합니다.
아니요, 이것은 꽤 분명히 조지아입니다. 스코어링 함수 (코드가 원하는 출력을 생성하는지 여부에 관계없이)에 대해 매개 변수 (실행할 코드의 opcode 표현)를 최적화합니다. –
물론, 코드를 매개 변수로 생각하면 ... 당신은 완전히 맞습니다. –
물론 유전자 알고리즘 (GA)의 특성화이지만이 전문화는 올바르게 유전학 프로그래밍 (GP)으로 알려져 있습니다. 아래에 설명되어 있습니다. – MaD70