성능 향상을 위해 유전자 알고리즘 병렬 처리를 해왔지만 유전 알고리즘을 최적화하는 데 일반적으로 사용되는 기술이 무엇인지 궁금합니다.유전자 알고리즘 최적화?
답변
적합도 값을 자주 다시 계산하므로 (알고리즘 실행에 따라 인구의 다양성이 감소 함) GA 성능을 향상시키는 좋은 전략은 적합성을 계산하는 데 필요한 시간을 줄이는 것입니다.
세부 정보는 구현에 따라 다르지만 이전에 계산 된 적합도 값은 종종 해시 테이블과 함께 효율적으로 저장 될 수 있습니다. 이러한 종류의 최적화로 계산 시간이 크게 단축 될 수 있습니다 (예 : "IMPROVING GENETIC ALGORITHMS PERFORMANCE BY HASHING FITNESS VALUES" - RICHARD J. POVINELLI, XIN FENG은 GA에 대한 해시 적용이 복잡한 실제 문제에 대해 50 % 이상 성능을 향상시킬 수 있음을보고합니다).
핵심 포인트는 충돌 관리입니다. 해시 테이블의 기존 요소를 덮어 쓰거나 스키마 (예 : 선형 프로브)를 채택 할 수 있습니다.
후자의 경우 충돌이 탑재됨에 따라 해시 테이블의 효율성이 선형 검색의 효율성으로 저하됩니다. 누적 충돌 수가 해시 테이블 크기를 초과하면 더 큰 해시 테이블을 만들고 더 작은 해시 테이블의 요소를 더 큰 해시 테이블로 복사해야합니다.
복사 단계을 생략 할 수 있습니다. GA가 실행될 때 다양성이 감소하므로 제거 된 요소가 많이 사용되지 않고 가장 자주 사용되는 염색체 값이 신속하게 다시 계산됩니다 (해시 테이블이 다시 채워집니다). 가장 많이 사용되는 키 요소 값).
내가 한 일은 적합성 계산의 수를 제한하는 것입니다. 예를 들어, 풍경이 시끄럽지 않은 경우, 즉 피트니스의 재 계산으로 매번 동일한 답변이 나오는 경우 재 계산하지 않고 단순히 답을 캐시하십시오.
또 다른 접근법은 메모리 연산자를 사용하는 것입니다. 운영자는 솔루션의 '메모리'를 유지 관리하고 해당 메모리에서 최상의 솔루션이 GA 인구에 포함되어 있는지 확인합니다. GA 실행 중에 좋은 해결책으로 메모리가 최신 상태로 유지됩니다. 이 접근법은 필요한 적합성 계산 횟수를 줄이고 성능을 향상시킬 수 있습니다.
http://johnnewcombe.net/blog/gaf-part-8/ http://johnnewcombe.net/blog/gaf-part-3/
:나는 여기에이 물건의 몇 가지의 예를
- 1. 신경망 최적화/유전자 알고리즘
- 2. 신경망을위한 유전자 알고리즘 사용
- 3. 세포 유전자 알고리즘 - 세포질 유전자 알고리즘에서 부모
- 4. 유전자 알고리즘 소개
- 5. 유전자 알고리즘 토너먼트 선택
- 6. 유전자 알고리즘 이진 표현
- 7. JAVA 유전자 알고리즘 초기화
- 8. 유전자 알고리즘 인코딩
- 9. 유전자 알고리즘 염색체 생성
- 10. 유전자 알고리즘의 핵심 알고리즘
- 11. 유전자 알고리즘 SVM 이후
- 12. 유전자 알고리즘 크로스 오버 작업
- 13. 깊은 복사 및 유전자 알고리즘
- 14. 유전자 알고리즘 타임 테이블 인코딩?
- 15. 유전자 알고리즘 : 룰렛 휠 선택
- 16. 유전자 알고리즘 - 새로운 세대 생성하기
- 17. 유전자 알고리즘 개인 대 염색체
- 18. Matlab의 외부 피트니스 기능을 가진 유전자 알고리즘
- 19. 최적화 알고리즘
- 20. 알고리즘 최적화
- 21. 내쉬 균형 멀티 목적 유전자 알고리즘 자바
- 22. 유전자 알고리즘 신세대 기하 급수적으로 증가
- 23. 유전자 알고리즘, 큰 개체 대 작은 개체
- 24. 파이썬리스트 인덱스가 범위를 벗어났습니다 - 유전자 알고리즘
- 25. 부정적인 적합성 값을 다루는 유전자 알고리즘
- 26. 파이썬 3.x를위한 유전자 알고리즘 모듈?
- 27. MATLAB 유전자 알고리즘 솔버 복잡한 입출력
- 28. 유전자 알고리즘 염색체의 유전자를 정수 배로 제한
- 29. matlab에 유전자 알고리즘 어떻게 적합성 함수로 분류 정확도를 사용
- 30. 유전자 알고리즘 도구 상자에서 여러 목적 함수를 최적화하는 방법