일반적으로 GEP는 GP에서 더 간단합니다. 프로그램에서 다음과 같은 노드를 허용한다고 가정 해 봅시다 : 상수, 변수, +, -, *, /, if, ... GP가있는 각 노드에 대해 다음 작업을 생성해야합니다. - 랜덤 화 - 돌연변이 - 크로스 오버 -뿐만 아니라 아마도 다른 유전 연산자
하나의 동작을 구현하는 데 필요한 같은 각 노드에 대한 GEP에서
: 직렬화 (C 또는 Java에서 더블 등) 숫자의 배열을, 그리고 반환 마디. Java 나 Python과 같은 언어로 객체 deserialization을 닮았습니다 (차이점은 프로그래밍 언어의 직렬화는 바이트 배열을 사용한다는 것입니다. 여기서는 숫자 배열을 사용합니다). 이 'deserialize'연산조차도 프로그래머가 구현할 필요는 없습니다. 자바 또는 파이썬 직렬화와 마찬가지로 일반적인 알고리즘으로 구현할 수 있습니다.
이 단순성은 최상의 솔루션을 찾기가 어려울 수 있지만 다른 측면에서는 프로그래머가 작업을 덜 필요로하며 더 간단한 알고리즘이 더 빠르게 실행될 수 있습니다 (최적화하기 쉽고 CPU 캐시에 더 많은 코드와 데이터가 들어가고, 등등). 그래서 저는 GEP가 약간 더 훌륭하다고 말할 것입니다. 물론 확실한 대답은 문제에 달려 있으며, 많은 문제들에 대해서는 그 반대가 사실 일 수 있습니다.
자세한 답변을 보내 주셔서 감사합니다. 매우 감사. – Jelle
이 답변이 올바르지 않습니다. 데카르트 GP는 클래식 GP와 다릅니다. 직교 GP는 간접적 인 표현 (GEP와 유사)을 가지고 있으며, 고전적인 GP 트리와 유사한 그래프를 작성하더라도 트리 기반이 아닙니다. – rll