thegeqo모듈 접근 잘 알려진 것처럼 롤 토토 최적화 문제 여행 세일즈맨 문제 (TSP). 가능한 쿼리 계획은 다음과 같이 인코딩됩니다 정수 문자열. 각 문자열은 하나의 조인 순서를 나타냅니다 다음 쿼리와의 관계. 예를 들어, 조인 트리
/\ /\ 2 /\ 3 4 1
정수 문자열 '4-1-3-2'로 인코딩합니다. 관계 '4'와 '1', 그런 다음 '3', 그런 다음 '2', 여기서 1, 2, 3, 4는 내 관계 ID입니다.PostgreSQLOptimizer.
의 일부geqo모듈 D. Whitley의 Genitor 알고리즘에서 조정되었습니다.
의 특정 특성geqo구현PostgreSQLare :
a 사용정상 상태 ga(교체 전체 세대가 아닌 인구의 개인에게 가장 적합합니다 교체)는 개선 된 롤 토토를 향한 빠른 수렴을 허용합니다 계획. 이것은 합리적으로 롤 토토 처리에 필수적입니다 시간;
사용법가장자리 재조합 크로스 오버가장자리 손실을 유지하는 데 특히 적합합니다 의 해결책은 낮음TSPaga;
유전자 운영자로서의 돌연변이는 더 이상 사용되지 않습니다 법률을 생성하려면 수리 메커니즘이 필요합니다TSP투어.
thegeqo모듈 허용PostgreSQL쿼리 최적화기로 비 exhaustive를 통해 대규모 결합 쿼리를 효과적으로 지원합니다 찾다.
유전자 알고리즘을 개선하기 위해서는 여전히 작업이 필요합니다
매개 변수 설정. 파일SRC/백엔드/최적화/geqo/geqo_main.c,
루틴gimme_pool_size
andgimme_number_generations
, 우리는 가지고 있습니다
매개 변수 설정에 대한 타협을 찾으려면
경쟁 요구 :
롤 토토 계획의 최적 성
컴퓨팅 시간
보다 기본적인 수준에서 쿼리 해결이 확실하지 않습니다. TSP 용으로 설계된 GA 알고리즘으로 최적화 적절한. TSP 사례의 경우와 관련된 비용 서브 스트링 (부분 투어)은 나머지 부분과 무관합니다. 투어, 그러나 이것은 쿼리 최적화에 해당되지 않습니다. 따라서 에지 재조합 크로스 오버가 의심의 여지가 있습니다 가장 효과적인 돌연변이 절차.