Postgresql 9.3.25 문서 | ||||
---|---|---|---|---|
PostgreSQL: Tài liệu: 9.3: 배트맨 토토 toán di 배트맨 토토 | PostgreSQL : 문서 : 9.3 : 유전자 사설 토토 사이트 옵티마이저 | 53 장. 유전자 스포츠 토토 최적화 | 무지개 토토 : 문서 : 9.3 : 추가 읽기 |
thegeqo모듈 접근 잘 알려진 것처럼 스포츠 토토 최적화 문제 여행 세일즈맨 문제 (TSP). 가능한 스포츠 토토 계획은 다음과 같이 인코딩됩니다 정수 문자열. 각 문자열은 하나의 조인 순서를 나타냅니다 다음 스포츠 토토와의 관계. 예를 들어, 조인 트리
/\ /\ 2 /\ 3 4 1
정수 문자열 '4-1-3-2'로 인코딩됩니다. 관계 '4'와 '1', 그런 다음 '3', 그리고 '2', 여기서 1, 2, 3, 4에 가입하십시오. 내 관계 ID입니다.PostgreSQLOptimizer.
의 특정 특성geqo구현PostgreSQLare :
a 사용정상 상태 ga(가장 적합하지 않은 개인의 교체 전체 세대 교체가 아닌 인구는 빠르게 허용합니다 개선 된 스포츠 토토 계획에 대한 수렴. 이것은 필수적입니다 합리적인 시간으로 스포츠 토토 처리;
사용법가장자리 재조합 크로스 오버솔루션의 가장자리 손실을 낮게 유지하는 데 특히 적합합니다. 의TSPaga;
유전자 운영자로서의 돌연변이는 수리되지 않도록 더 이상 사용되지 않습니다. 법률을 생성하기 위해 메커니즘이 필요합니다TSP투어.
의 일부geqo모듈입니다 D. Whitley의 Genitor 알고리즘에서 적응.
thegeqo모듈 허용PostgreSQLQuery Optimizer to 비 exhaustive를 통해 대규모 결합 스포츠 토토를 효과적으로 지원합니다 찾다.
thegeqo계획 프로세스 표준 플래너 코드를 사용하여 스캔 계획을 생성합니다. 개인 관계. 그런 다음 가입 계획은 The를 사용하여 개발됩니다 유전 적 접근. 위에서 볼 수 있듯이 각 후보 조인 계획은 다음과 같습니다 기본 관계에 합류 할 순서로 표시됩니다. ~ 안에 초기 단계,geqo코드 무작위로 가능한 조인 시퀀스를 생성합니다. 각각에 대해 고려 된 시퀀스에 가입하면 표준 플래너 코드가 호출됩니다. 해당 조인 시퀀스를 사용하여 스포츠 토토 수행 비용을 추정하십시오. (조인 시퀀스의 각 단계마다 가능한 세 가지 결합이 모두 전략이 고려됩니다. 그리고 모든 초기에 결정된 것들 관계 스캔 계획을 사용할 수 있습니다. 예상 비용은입니다 이러한 가능성 중 가장 저렴합니다.) 시퀀스가 더 낮습니다 예상 비용이 고려됩니다"더 적합"비용이 더 높은 것보다. 유전자 알고리즘은 다음을 폐기합니다 적합하지 않은 후보자. 그런 다음 새로운 후보자가 생성됩니다 더 적합한 후보의 유전자를 결합, 즉 사용하여 알려진 저비용 조인 시퀀스의 무작위로 선택된 부분을 생성합니다 고려할 새로운 시퀀스. 이 과정은 a까지 반복됩니다 결합 시퀀스의 사전 설정 수; 그럼 최고 검색 중 언제라도 발견되는 것은 완성 된 계획.
이 과정은 본질적으로 비 결정적입니다 초기 인구 모두에서 이루어진 무작위 선택 선택 및 후속"돌연변이"OF 최고의 후보자. 선택된 것의 놀라운 변화를 피하기 위해 계획, GEQO 알고리즘의 각 실행은 랜덤 번호를 다시 시작합니다. 전류가있는 발전기geqo_seed매개 변수 환경. 하는 한geqo_seed및 다른 GEQO 매개 변수는 고정 된 상태로 유지되며 동일한 계획은 주어진 스포츠 토토 (및 다른 플래너 입력에 대해 생성 통계). 다른 검색 경로를 실험하려면 시도하십시오 작고 보기 어리석은 동물geqo_seed.
유전자 알고리즘 매개 변수를 개선하기 위해서는 여전히 작업이 필요합니다.
설정. 파일SRC/백엔드/최적화/geqo/geqo_main.c, 루틴gimme_pool_size
andgimme_number_generations
, 우리는 a를 찾아야합니다
두 가지 경쟁을 만족시키기위한 매개 변수 설정에 대한 타협
요구 :
스포츠 토토 계획의 최적 성
컴퓨팅 시간
현재 구현에서 각 후보자의 체력 결합 시퀀스는 표준 플래너의 조인을 실행하여 추정됩니다. 처음부터 선택 및 비용 추정 코드. 그 정도까지 다른 후보자들은 비슷한 조인의 하위 시퀀스를 사용합니다 일의 거래가 반복 될 것입니다. 이것은 크게 만들 수 있습니다 하위 조인의 비용 추정치를 유지함으로써 더 빠릅니다. 문제는 이를 유지하는 데 비해 불합리한 금액의 메모리를 소비하지 마십시오 상태.
보다 기본적인 수준에서 쿼리 해결이 확실하지 않습니다. TSP 용으로 설계된 GA 알고리즘으로 최적화가 적절합니다. TSP 사례에서는 모든 하위 문자열과 관련된 비용 (부분적으로 투어)는 나머지 투어와 무관하지만 이것은 확실히 쿼리 최적화에 해당되지 않습니다. 따라서 의심의 여지가 있습니다 에지 재조합 크로스 오버는 가장 효과적인 돌연변이입니다 절차.