2014-07-11 6 views
0

현재 유전자 알고리즘을 연구 중입니다. "왜 유전 알고리즘은 의사 결정 트리와 같은 다른 기계 학습 기술보다 많은 메모리를 필요로합니까?"라는 질문이 있습니다. 나는 인터넷 검색으로도 답을 찾을 수 없다. 누구든지 답을주고 줄 수 있습니까?왜 유전 알고리즘은 다른 기계 학습 기술보다 많은 메모리를 필요로합니까?

+1

유전자 알고리즘은 시뮬레이션과 그 중 많은 부분을 실행합니다. 하나씩 (표준이 아닌) 하나의 자식을 생성하지 않는 한, 파일에 쓰지 않는 한 많은 수의 메모리가 메모리에 저장됩니다. 이러한 자손에 대한 시뮬레이션 실행은 매우 집중적 일 수 있습니다. 특히 테스트 할 많은 기능이있는 경우 특히 그렇습니다. – JDong

+0

[Wikipedia article] (http://en.wikipedia.org/wiki/Genetic_algorithm)에 있습니다. "유전 알고리즘이 복잡성으로 잘 확장되지 않는다"로 시작하는 "제한 사항"의 두 번째 글 머리 기호 단락을 참조하십시오. 그 후에 문장이 답이됩니다. –

답변

1

유전 알고리즘은 어려운 최적화 문제에 대한 해결책을 "진화"하기 위해 자연 선택 과정을 모방합니다. 일반적으로 알고리즘은 먼저 임의의 "개인"(즉, 해결하려는 문제에 대한 솔루션)을 생성하고 피트니스 기능으로 "피트니스"를 계산하여 작동합니다. 더 잘 맞는 개체는 생존하기 위해 선택되며 차세대 개체를 생산하기 위해 "번식"을 통해 "DNA"를 교환 할 수 있습니다. 이 프로세스는 정지 조건에 도달 할 때까지 반복되며, 이는 달성 된 수준의 적합성 또는 최대 세대 수에 도달 할 수 있습니다. 피트니스 기능은 일반적으로 개인의 "특성"을 모두 처리하고 적합성을 출력해야하므로 (매우 스칼라 일 수도 있음) 매우 복잡한 기능입니다. 많은 문제에서 알고리즘의 복잡성의 관점에서는 불가능하므로 피트니스 근사가 대신 사용됩니다. 어느 쪽이든, GA의 반복적 인 특성, 적합성 함수의 복잡성, 주어진 순간에 수많은 개인이 RAM으로 표현된다는 사실은 까다로운 알고리즘을 만듭니다.

0

시뮬레이션 된 어닐링과 같은 다른 기술은 시간과 메모리에서 더 적은 자원을 필요로합니다. 시뮬레이션 어닐링의 특정 경우에는 고유 한 연산자로 변이를 사용하는 요소 만 사용합니다. SA의 경우 메모리는 일반적으로 문제가되지 않습니다. 계산 시간은 문제의 특성에 따라 분명히 조절됩니다.

GA는 유연성이 뛰어나지 만 SA는 리소스 부족으로 많은 문제에 잘 작동하는 좋은 기술입니다.

0

유전 알고리즘이 더 많은 메모리를 필요로하는 가장 큰 이유는 솔루션 전체를 유지해야하기 때문입니다. 힐 클라이밍, 금식 검색, 빔 검색 및 시뮬레이션 어닐링과 같은 다른 검색 방법은 한 번에 하나의 솔루션 만 처리합니다. 예를 들어 솔루션에 1MB의 RAM이 필요하다면 인구 규모가 100 인 GA는 솔루션 모집단을 나타내는 데 100MB의 RAM이 필요합니다.

Treker가 언급했듯이 모집단의 모든 솔루션을 평가해야하는 경우에도 추가 메모리 비용이 추가 될 수 있습니다.