유전자 알고리즘은 언제 최적화에 적합한가?


20

유전자 알고리즘은 최적화 방법의 한 형태입니다. 확률 적 구배 하강과 그 파생물은 함수 최적화를위한 최선의 선택이지만 종종 유전자 알고리즘이 여전히 사용됩니다. 예를 들어, NASA의 ST5 우주선의 안테나 는 유전자 알고리즘으로 만들어졌습니다.

ST5 안테나

유전자 최적화 방법이 더 일반적인 경사 하강 방법보다 더 나은 선택은 언제입니까?


7
: 예 +1, 나는 원래 종이 발견 alglobus.net/NASAwork/papers/Space2006Antenna.pdf

답변:


19

유전자 알고리즘 (GA)은 휴리스틱 (heuristics) 패밀리로 , 주어진 도메인에 가장 적합한 옵션은 아니지만 많은 경우에 적절한 대답 을 제공하는 데 경험적으로 우수 합니다.

파생 상품 기반 알고리즘에 대해 언급했지만 파생 상품이없는 경우에도 GA보다 실적이 우수한 파생 상품이없는 최적화 알고리즘이 많이 있습니다. 참조 몇 가지 아이디어에 대한 대답을.

많은 표준 최적화 알고리즘이 공통으로 가지고있는 것 (미분없는 방법도 포함)은 기본 공간이 부드러운 매니 폴드 (아마도 불연속 치수가 있음)이고 최적화 기능이 다소 잘 작동 한다는 가정입니다 .

그러나 모든 기능이 매끄러운 매니 폴드에 정의되어있는 것은 아닙니다. 때로는 그래프 또는 다른 이산 구조 (조합 최적화)에 대해 최적화하려고합니다. 여기에는 전용 알고리즘이 있지만 GA도 작동합니다.

복잡하고 이산적인 구조에 대해 정의 된 기능에 더 많이 접근할수록 더 많은 GA가 유용 할 수 있습니다. 특히 유전자 조작자가 최선을 다하는 표현을 찾을 수있는 경우 (많은 수동 조정 및 도메인 지식이 필요함).

물론 미래는 GA를 모두 잊어 버리고 불연속 공간을 연속 공간매핑 하는 방법을 개발 하고 지속적인 표현에 대한 최적화 메커니즘을 사용할 수 있습니다.


2

그래디언트 디센트가 단일 기준 최적화에 전념 할 때 유전자 방법은 다중 기준 최적화에 적합합니다. 그라디언트 디센트 (gradient descent)는 미분이 존재하고 최적의 솔루션이 하나 일 때 (로컬 미니 마를 제외하고) 최소 기능을 찾을 수있게합니다. 유전 알고리즘은 다중 기준 문제에서 사용될 수 있으며, 초기 집단으로부터 진화 한 각각의 집단에 속하는 연속적인 해법으로 이어진다. 최적화하기위한 값은 개체의 표현형이며 몇 가지 표현형이있을 수 있습니다. 일반적으로, 어느 개인도 동시에 각 표현형의 더 나은 가치를 가지지 않으므로 하나의 솔루션 만이 아닙니다. 최종 모집단의 개인, 즉 최적화의 모든 솔루션은 "Pareto front"의 일부이며 "Pareto rank one"로 표시됩니다. 개인. 이것은 각각의 표현형에 대해 동일한 성능을 갖는 다른 모든 개인에 비해, 적어도 하나의 표현형이 다른 표현형보다 우수하다는 것을 의미한다.


downvote는 괜찮지 만 내가 어디에서 틀렸는 지 설명 할 수 있습니까?
manu190466

5
이 사이트는 문맥과 배경을 제공하는 답변을 소중히 여깁니다. 흥미로운 질문에 대한 유용한 답변 저장소에 추가 할 답변을 제공하는 방법 은이 도움말 페이지 를 참조하십시오 . 답을 설명하는 것도 자신의 이해를 테스트하는 좋은 방법입니다. 예를 들어 Wikipedia 페이지 에서 유전자 알고리즘의 목표로 단일 값의 피트니스 함수를 암시하는 것처럼 유전자 알고리즘이 "다중 기준 최적화에 적합한"방법을 확장하고자 할 수 있습니다 .
EdM

0

어떤 의미에서 최고?

내 경험상 GA는 가장 실용적인 최적화 도구 중 하나입니다. 보다 정확한 알고리즘이 수학적 세계에서 실제 문제를 공식화하기 위해서는 시간과 노력이 필요하지만 GA는 복잡한 규칙과 제약 조건으로 모든 비용 함수를 처리 할 수 ​​있습니다 (GA는 특정 계산이 아니라 실행 방식과 관련이 있습니다). 이 과정은 간단하며 탐색 작업에 대한 많은 접근 방식을 시도 할 수 있습니다.

또한 반복되는 작업에 좋은 향후 실행을 위해 알고리즘에 과거 솔루션을 다시 주입 할 가능성에 감사합니다.

개념적으로, 유전자 알고리즘은 함수의 해시 맵으로 표현 될 수 있으며 Clojure와 같은 함수형 언어는 큰 결과를 매우 빠르게 얻을 수있는 언어이기도합니다.

유전자 알고리즘도 중첩 될 수 있습니다. 하나의 GA의 비용 함수는 GA가 될 수 있습니다! 이 알고리즘은 최신 하드웨어 및 인프라를 활용하여 매우 많은 모집단을 계산할 수 있으므로 간단한 돌연변이 / 선택 작업으로도 여전히 우수한 결과를 얻을 수 있습니다.

최소 파동 함수를 찾는 것과 같은 간단한 문제의 경우에도 GA는 그렇게 나쁘지 않으며 허용 가능한 시간 내에 적절한 정밀도를 달성 할 수 있습니다.

그렇습니다. 분석 솔루션은 더 빠른 실행 시간과 정밀도를 가질 수 있습니다. 그러나 과체중을 생성하는 데 필요한 시간은 종종 기대되는 이점을 제공합니다! 그렇게 할 때 ? 적어도 메타 최적화를 위해 거의 항상 나에게.


이 주장의 주된 원인은 유전자 알고리즘이 블랙 박스 최적화 프로그램이라는 것입니다. 그러나 많은 블랙 박스 옵티마이 저가 있습니다. 이것이 다른 선택보다 나은 이유는 무엇입니까? 또한 GA가 제약 조건을 쉽게 처리 할 수 ​​있다고 생각하지 않습니다. 예를 들어, 4D 세계에서 3D 부분 공간을 제외하고 함수가 정의되지 않으면 확실히 바닐라 GA가 실패합니다.
클리프 AB

@CliffAB 사실 나는 그것에 대해 아무 말도하지 않았으며 아마도 더 반대입니다. GA에서는 핵심 계산에 대해 많은 제어권이 있으며 GA 자체는 일련의 단계와 라이트 순서입니다. 비용 함수를 정의하면 함수에서 쿼리 할 수있는 외부 제약 조건을 포함하여 모든 것을 처리 할 수 ​​있습니다. 내 주요 주장은 : 많은 문제를 처리하고, 프레임 워크와의 호환성에 대해 걱정할 필요가 없으며 (비용을 반환해야 함) 대부분의 비즈니스 사례에서 괜찮은 실제 솔루션을 제시합니다. 최고
Joseph Yourine
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.